Подтвердить что ты не робот

Рекомендации относительно рабочего процесса IPython + MacVim

Я только что нашел IPython, и я могу сообщить, что я глубоко влюблен. И привязанность была немедленной. Я думаю, что это дело превратится во что-то прочное, как тот, который у меня есть с экраном. Ipython и экран, оказывается, лучшие друзья, поэтому это треугольная драма. Чисто платонические, заметьте.

Причина, по которой IPython попадает мне в мягкие пятна, очень важна, потому что мне обычно нравятся командные подсказки, и особенно * вдохновленные nix подсказки с вдохновением от ksh, csh (да, chs - монстр, но в качестве подсказки это спортивные партии действительно хороших функций), bash и zsh. И IPython действительно чувствует себя как дома для * nix prompt rider. Смешивание системной оболочки и питона также очень хорошая идея. Плюс, конечно, IPython помогает при решении загадок Python Challenge. Бесценный даже.

Теперь я тоже люблю Вима. С тех пор, как я узнал, что вил в те дни не вернулся. И я нахожусь на Mac, когда у меня есть выбор. Теперь я хотел бы приклеить свой рабочий процесс IPython + MacVim. Что я сделал до сих пор, так это то, что я запускаю Ipython, используя:

ipython -e "open -a MacVim"

Таким образом, когда я редактирую IPython, он запускает MacVim с загруженным файлом/модулем. Может выглядеть немного так:

In [4]: %run foo #This also "imports" foo anew
hello world

In [5]: edit foo
Editing... done. Executing edited code... #This happens immediately
hello world

In [6]: %run foo
hello SO World

OK. Я думаю, что это можно улучшить. Может быть, есть способ связать IPython с MacVim? Пожалуйста, поделитесь своим опытом. Конечно, если вы используете TextMate или какой-либо другой редактор fav, мне тоже интересно. Возможно, некоторые из уроков являются общими.

4b9b3361

Ответ 1

Я использую Linux, но считаю, что этот совет можно использовать и в OS X. Я использую экран GNU для отправки команд IPython из Vim, как рекомендовано этот совет. Вот как я это делаю:

Сначала вы должны открыть терминал и запустить сеанс экрана под названием "ipython" или что угодно, а затем запустить IPython:

$ screen -S ipython
$ ipython

Затем вы должны поместить это в свой .vimrc:

autocmd FileType python map F5 :w<CR>:!screen -x ipython -X stuff $'\%run %:p:h\n'<CR><CR>

Затем, когда вы нажмете F5, он покажет, что Screen выполнит команду "% run file" внутри созданного ранее "ipython" , где файл - ваш текущий буфер в Vim.

Вы можете настроить это, чтобы выполнить команду, которую вы хотите в IPython, от Vim. Например, я использую это:

autocmd FileType python map <F5> :w<CR>:!screen -x ipython -X stuff $'\%reset\ny\n\%cd %:p:h\n\%run %:t\n'<CR><CR>

Выполняется% reset (отвечая "да" на приглашение), затем перейдите в каталог, в котором находится текущий буфер в vim, а затем% запустите файл. Это особенно полезно, если у вас активен% pdb в IPython.

Не забывайте, что вам нужна активная сеанс экрана под названием "ipython" с запущенным IPython.

Если вам нравится Emacs. хорошая поддержка для IPython.

Ответ 2

Теперь эти вопросы устарели, но только для справки - если вы используете IPython 0.11 с включенным ZeroMQ, посмотрите vim-ipython (более старая версия которого поставляется с 0.11).

Используя этот плагин, вы можете отправлять строки или целые файлы для выполнения IPython, а также возвращать объектную интроспекцию и завершение слов  в Vim, как то, что вы получаете: object?<enter> и object.<tab> в IPython.

Взгляните на два скринкаста этого плагина в действии на этот пост.

Ответ 3

В файле ipythonrc.ini в вашем домашнем каталоге измените редактор на MacVim.

Ответ 4

У меня была такая же проблема. После эксперимента это мое решение: если вы поместили MacVim.app в /Applications и mvim в ваш путь, в ~/.ipython/ipythonrc измените строку

editor 0

к

editor mvim --remote-tab-wait-silent

Я думаю, вам нужно оставить MacVim открытым в фоновом режиме. Вы также можете использовать флаг -f. Посмотрите этот поток из группа Google MacVim.