Редактор Vim - оболочка zsh ipython magic %ed не может найти редактор

Я пытаюсь использовать магию% ed в IPython, чтобы использовать vim в качестве редактора.

  • вим установлен
  • ipython и ipython qtconsole работают
  • zsh является последним, обновленным с моей установкой oh-my-zsh

Я экспортировал свои предпочтения в zsh

$ echo "export EDITOR=/usr/bin/vim" >> ~/.zshrc

$ echo "export VISUAL=/usr/bin/vim" >> ~/.zshrc

Однако, когда я запускаю IPython, а затем вызываю магию %ed, она терпит неудачу.

In [1]: %ed
IPython will make a temporary file named: /tmp/ipython_edit_pu4Yql.py
Editing.../bin/sh: 1: mvim: not found
WARNING: Could not open editor

Как заставить это работать?


person sayth    schedule 05.03.2016    source источник


Ответы (1)


Попробуйте использовать конфигурацию профиля IPython как средство указания editor. Сделать это:

Во-первых, сгенерируйте файлы конфигурации по умолчанию:

$ ipython profile create

Затем найдите файл ~/.ipython/profile_default/..._config.py для редактирования. Например, на IPython 2.4.1,

$ vim ~/.ipython/profile_default/ipython_config.py

Найдите закомментированный параметр .editor, снимите комментарий и установите для него значение vim. Например, в IPython 2.4.1 это будет выглядеть так

c.TerminalInteractiveShell.editor = 'vim'

Теперь вы обнаружите, что при запуске IPython вы можете %ed вызвать vim:

$ ipython
Python 2.7.11+ (default, Feb 22 2016, 16:38:42)
Type "copyright", "credits" or "license" for more information.

IPython 2.4.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: %ed
IPython will make a temporary file named: /tmp/ipython_edit_Tze8Ur/ipython_edit
_gghQG5.py
Editing... done. Executing edited code...
It works
Out[1]: 'print "It works"\n'

In [2]:

Объяснение

man ipython:

ФАЙЛЫ

IPython использует различные файлы конфигурации, хранящиеся в профилях IPYTHONDIR. Чтобы сгенерировать файлы конфигурации по умолчанию и начать настройку IPython, выполните «создание профиля ipython» и отредактируйте файлы «*_config.py», расположенные в IPYTHONDIR/profile_default.

IPYTHONDIR по man ipython:

ИПИТОНДИР

Это место, где IPython хранит все свои файлы конфигурации. По умолчанию используется $HOME/.ipython, если IPYTHONDIR не определен.

Вы можете увидеть вычисленное значение IPYTHONDIR с помощью ipython locate.

Также я упоминаю версию, потому что в некоторых версиях настройки кажутся разными, для 2.4.1 настройка называется:

c.TerminalInteractiveShell.editor = ...

В то время как в ответе, данном в текстовом редакторе настройки IPython, этот параметр был назван по-другому:

c.IPythonWidget.editor = ...

Поскольку между версиями они кажутся разными, после создания файлов конфигурации по умолчанию проверьте и посмотрите, как они написаны в вашей версии IPython, и действуйте соответственно.

person clarity123    schedule 05.03.2016