2012-04-23 32 views
9

Tôi thích sử dụng bpython nhưng trong Ruby có một viên đá quý được gọi là interactive_editor, có thể kết hợp Vi (m) với vỏ Ruby làm cho quá trình phát triển thoải mái hơn nhiều. Giới thiệu tốt về interactive_editor: http://vimcasts.org/episodes/running-vim-within-irb/Python Interpreter Shell với Vi (m) tích hợp có thể?

Có công cụ nào (như interactive_editor cho Ruby) có sẵn để kết hợp vỏ Python với Vi (m) không?

+0

err, Pry có các tính năng của 'interactive_editor' được tích hợp sẵn, bạn nhận ra điều này đúng không? [xem tại đây] (https://github.com/pry/pry/wiki/Editor-integration) – horseyguy

+0

Một giải pháp thực dụng có thể là làm theo lời khuyên được đưa ra ở đây - http://stackoverflow.com/questions/6636124/how- do-i-make-vi-chỉnh sửa-mode-work-in-irb-khi-sử dụng-rvm Đây là nếu bạn chỉ muốn các ràng buộc khóa thông dịch python để phù hợp với VI – arcseldon

Trả lời

11

Bạn có thể có một cái nhìn tại vim-ipython vim plugin:

https://github.com/ivanov/vim-ipython

này đòi hỏi bạn phải cài đặt shell ipython (nhưng tôi khuyên bạn nên làm điều này anyway vì nó bổ sung thêm rất nhiều chức năng cho vỏ trấu chuẩn).

Nếu bạn không muốn cài đặt ipython, tôi khuyên bạn nên có một cái nhìn tại các plugin ConqueShell cho vim:

http://www.vim.org/scripts/script.php?script_id=2771

này cho phép bạn chạy vỏ trong vim. Khi bạn đã có được quả bóng vim, tất cả những gì bạn cần làm là

:ConqueTerm python 

để lấy vỏ trăn trực tiếp trong vim.

+0

Cảm ơn rất nhiều, đó là chính xác những gì tôi đang tìm kiếm cho. – StandardNerd

+0

ConqueTerm trông tuyệt vời, +1 – Sam

1

tôi không thể có được vim-ipython để làm việc, vì vậy tôi làm giải pháp vimrc này làm việc với ConqueShell:

imap <silent> <leader>m <Esc>Vy<C-w><C-w>p 
nmap <silent> <leader>m Vy<C-w><C-w>p 
vmap <silent> <leader>m y<C-w><C-w>p 
imap <silent> <leader>n <Esc><C-w><S-w>']0j 
nmap <silent> <leader>n <C-w><S-w>']0j 

Từ một màn hình Vim mới và cài đặt ConqueShell, gõ :ConqueTermSplit python. Bây giờ trở lại cửa sổ ban đầu (phím tắt là <C-w><S-w>) và nhập vào một số mã Python.

Để gửi dòng dưới con trỏ tới trình thông dịch, hãy bấm <leader>m. Tôi có người đứng đầu lập bản đồ cho dấu phẩy, vì vậy đó là một chuyển động khá đơn giản. Để gửi một khối mã, hãy đánh dấu một số dòng trong chế độ trực quan và thực hiện <leader>m. Nó hoạt động theo cùng một cách.

Để quay lại tập lệnh, <leader>n chuyển đến dòng ngay lập tức sau những gì bạn vừa thực hiện. Là một lợi ích phụ, bạn cũng có thể sử dụng lệnh này để di chuyển nhanh chóng từ cửa sổ này sang cửa sổ khác.

EDIT (2-20-2015): Nếu bạn đang sử dụng ipython làm trình thông dịch, bạn cần chạy %autoindent để tắt tự động thụt lề để duy trì định dạng cho một số khối mã. Chúc mừng!

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