2012-04-23 15 views
9

Uwielbiam używać bpythona, ale w Rubim jest klejnot o nazwie interactive_editor, który umożliwia połączenie Vi (m) z powłoką Ruby, co znacznie ułatwia proces rozwoju. Dobre wprowadzenie do interactive_editor: http://vimcasts.org/episodes/running-vim-within-irb/Python Interpreter Shell with Vi (m) integration possible?

Czy istnieją jakieś narzędzia (takie jak interactive_editor dla Ruby) dostępne do połączenia powłoki Python z Vi (m)?

+0

err, Pry ma już wbudowane funkcje 'interactive_editor', zdajesz sobie sprawę, że to prawda? [patrz tutaj] (https://github.com/pry/pry/wiki/Editor-integration) – horseyguy

+0

Pragmatyczne rozwiązanie może polegać na przestrzeganiu zaleceń tutaj podanych - http://stackoverflow.com/questions/6636124/how- do-i-make-vi-edit-mode-work-in-irb-when-using-rvm To jest tak, jeśli chcesz, aby powiązania klawiszy interpretera Pythona były zgodne z VI – arcseldon

Odpowiedz

11

Można mieć okiem na vim-ipython vim wtyczki:

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

Wymaga to zainstalowania skorupę ipython (ale polecam robić to w każdym razie, jak dodaje dużo funkcjonalność standardowa powłoka Pythona).

Jeśli nie chcesz instalować ipython, proponuję zaglądając do wtyczki ConqueShell dla vim:

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

pozwala Ten uruchomieniu muszle wewnątrz vim. Po zdobyciu vim-ball wystarczy, że uzyskasz powłokę Pythona bezpośrednio w vimie. Musisz to zrobić.

+0

Wielkie dzięki, właśnie to szukałem dla. – StandardNerd

+0

ConqueTerm wygląda niesamowicie, +1 – Sam

1

nie mogłem dostać vim-ipython do pracy, więc zrobiłem to rozwiązanie .vimrc, która współpracuje z 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 

z nowego ekranu Vima i zainstalowane ConqueShell typu :ConqueTermSplit python. Teraz wróć do oryginalnego okna (skrót to <C-w><S-w>) i wpisz trochę kodu Pythona.

Aby wysłać linię pod kursorem do tłumacza, naciśnij <leader>m. Mam przywódcę zmapowanego na przecinek, więc to całkiem prosty ruch. Aby wysłać blok kodu, zaznacz niektóre linie w trybie wizualnym i wykonaj <leader>m. Działa to w ten sam sposób.

Aby powrócić do skryptu, <leader>n przechodzi do wiersza bezpośrednio po tym, co właśnie wykonałeś. Jako dodatkową korzyść można również użyć tego polecenia, aby szybko przejść z okna do okna.

EDYCJA (2-20-2015): Jeśli używasz ipython jako interpretera, musisz uruchomić automatyczną funkcję wcięcia, aby zachować formatowanie dla niektórych bloków kodu. Twoje zdrowie!