2015-04-23 16 views
5

Tôi đang sử dụng Vim làm trình soạn thảo chính/IDE cho tất cả các dự án Django của tôi. Sử dụng YouCompleteMe, syntastic và một vài plug-in khác. Kinh nghiệm thật tuyệt vời.Cần một số lời khuyên vim về việc chuyển sang python3

Tôi đã quyết định bắt đầu tất cả các dự án mới với python3 khi thế giới đang chuyển sang Py3K. Nhưng vim không chơi đúng với cả hai phiên bản của python.

Tôi được biên dịch bằng cả hai phiên bản của python.

vim --version | grep python 
+cryptv   +linebreak  +python/dyn  +viminfo 
+cscope   +lispindent  +python3/dyn  +vreplace 

YouCompleteMe không hỗ trợ python3. jedi-vim làm việc với cả hai phiên bản nhưng tôi không chỉ làm đúng.

Thường không có bất kỳ plugin nào tôi có thể gọi bất kỳ lệnh py/py3 nào. Nhưng cho phép jedi-vim nó tự động gọi hệ thống python2.

Tôi đang sử dụng Vundle làm trình quản lý plugin vim.

Nếu bạn vui lòng chia sẻ vimrc/các cấu hình/giải pháp khác để sử dụng vim cho phát triển python3 (hoặc cả hai phiên bản) sẽ rất hữu ích cho tôi.

Cảm ơn.

+0

Có điều gì Django cụ thể cho câu hỏi này? (Ví dụ, YouCompleteMe có thêm chức năng để hỗ trợ các dự án Django hay gì đó không?) Nếu không, bạn nên xóa thẻ; bạn muốn thu hút câu trả lời từ mọi người là chuyên gia về Python 3.x và vim, ngay cả khi họ không biết gì về Django. (Nhân tiện, tôi đã thêm thẻ 'python-3.x' cho bạn, mà bạn chắc chắn muốn.) – abarnert

+0

Cảm ơn. Tôi đã xóa thẻ django. – moonstruck

+0

Bạn chỉ sử dụng điều này để phát triển python3? Bạn có bất kỳ plugin nào thực sự yêu cầu python3 không? Hãy chắc chắn rằng bạn đọc ': help python-2-and-3', có những trường hợp (khi biểu tượng va chạm trong trình thông dịch) làm cho trình thông dịch thứ hai không tải được. (Chỉ có thông dịch viên đầu tiên được gọi sẽ được tải). Có vẻ như bạn chỉ thực sự cần hỗ trợ python (2) trong câu hỏi. – FDinoff

Trả lời

5

Khi người khác chỉ ra trong nhận xét, bạn không cần thay đổi nhiều về cấu hình Vim để chuyển sang Python3. Những gì bạn cần làm là xác định các plugin sử dụng (các) Python được nhúng, tìm hiểu chúng hỗ trợ cả Python2 và Python3 và yêu cầu chúng thích Python3, và loại bỏ các plugin chỉ hoạt động với Python2.

Đối với các plugin Tôi đang sử dụng:

  • gundo: let g:gundo_prefer_python3 = 1
  • Jedi: let g:jedi#force_py_version = 3
  • syntastic: let g:syntastic_python_python_exec = 'python3', và cài đặt các phiên bản Python3 của tất cả con cờ
  • python-mode: let g:pymode_python = 'python3'
  • YouCompleteMe: không hoạt động với Python3.

Ngoài ra, tốt đẹp để có nếu bạn có kế hoạch để chỉnh sửa file VimL với pypy3 lệnh: cài đặt tuyệt vời SyntaxRange, và thêm video này vào after/syntax/vim.vim:

call SyntaxRange#Include('\C\v<py\%(thon)?3?\s+\<\<\s*[A-Z]{3,}\zs$', '\C\v^[A-Z]{3,}$', 'python')

+0

Cảm ơn bạn đã giới thiệu plugin của mình! Nhưng không hỗ trợ 'syntax/vim.vim' được xây dựng sẵn trong các khối Python (2/3) đã được (cấu hình thông qua' g: vimsyn_embed')? –

+0

@Ingo Karkat: Tôi không biết về điều đó. Rõ ràng tôi có một plugin can thiệp vào nó, đó là lý do tại sao tôi không nhận thấy nó phải làm việc theo mặc định. Ok, tôi đã chỉnh sửa câu trả lời của mình. – lcd047

Các vấn đề liên quan