Как найти и установить переменную среды $ EDITOR?


28

Когда я использую ipython или ipython3, я могу использовать команду% edit, чтобы открыть редактор для написания моих скриптов на python. Моя проблема в том, что по умолчанию используется редактор vim, и я действительно не понимаю, как использовать этот редактор. Я хотел бы изменить редактор на nano или gedit. Я думаю, чтобы остаться с терминалом, я бы предпочел изменить его на нано-редактор.

Когда я набираю "изменить?" Команда в терминал ipython говорит:

% edit запускает хук редактора IPython. Версия этого обработчика по умолчанию настроена на вызов редактора, указанного в переменной среды $ EDITOR. Если это не найдено, по умолчанию в Linux / Unix будет vi, а в Windows - в блокноте. Смотрите конец этой строки документации, чтобы узнать, как изменить редакторский хук.

Затем, когда я вижу конец этой строки документации, я вижу это:

Изменение стандартного хука редактора:

Если вы хотите написать свой собственный редактор, вы можете поместить его в файл конфигурации, который вы загружаете во время запуска. Хук по умолчанию определен в модуле IPython.core.hooks, и вы можете использовать его в качестве исходного примера для дальнейших изменений. Этот файл также содержит общие инструкции о том, как установить новый хук для использования после его определения.

Извините, что такой новичок, но я заблудился здесь. Я не уверен, как добраться до модуля IPython.core.hooks или просто установить переменную окружения $ EDITOR в nano.

Какие-либо предложения?

Ответы:


38

Вы можете установить $EDITORпеременную с помощью этой команды:

export EDITOR="/usr/bin/nano"

Это определит переменную EDITORдля текущего сеанса и передаст ее в среду всех его дочерних процессов. Чтобы установить его постоянно, вы должны определить его в одном из файлов конфигурации системы. Самый высокий уровень, на котором вы можете это сделать, это установить его /etc/environment. Это определяет это глобально:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EDITOR="/usr/bin/nano"

Проверьте, что переменная определена:

$ echo $EDITOR
/usr/bin/nano

Примечание редактора: часто предпочтительнее помещать переменные окружения в свои собственные ~/.profile, что намного легче исправить, если что-то пойдет не так.


Я добавил строку 'EDITOR = "/ usr / bin / nano"' в мой файл / etc / environment, но, похоже, он не работает. Нужно ли перезагружаться?
Willoczy

Теперь перезагрузите вашу систему и настройки вступят в силу.
Данатела

начать новый сеанс, и все готово!
Луис Сиквот

3
Вам не нужно перезагружаться, чтобы изменения вступили в силу, просто запустите source /etc/environmentпосле редактирования файла.
Cremefraiche

@ Боюсь, это неправильно. Это не файл сценария, поэтому вы не можете его "найти". Это было бы правильно для других общих конфигурационных файлов, таких как .profile. Лучшее, что вы можете сделать, это выйти из системы и войти обратно. Это единственный раз, когда файл читается. Прочитайте этот короткий раздел: help.ubuntu.com/community/…
Хаггра

18

Добавить строку

export EDITOR=nano

к вашему ~/.profileи ~/.bashrcкак на следующей картинке. Вы не в кавычкиnano

введите описание изображения здесь

а потом беги

source ~/.profile 
source ~/.bashrc

по запросу после внесения изменений .profileи .bashrcвступления изменений в силу.

введите описание изображения здесь

Теперь %editв ipythonраскроет nano.

~/.bashrc будет вызван для interactive + non-loginshell

тогда как ~/.profileбудет вызваноinteractive + login shell

В вашем случае достаточно просто добавить его ~/.bashrcвместо ~/.profile.


1
.bashrcдолжен использоваться только для специфичных для Bash настроек (например, параметров оболочки, псевдонимов и т. д.), в то время как .profileдолжен использоваться для установки переменных среды, таких как EDITOR(которые используются такими программами, как sudoedit, gitи т. д.). См. Unix.stackexchange.com/a/3085/22812 и unix.stackexchange.com/a/42765/22812
Энтони Дж - правосудие для Моники
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.