Як знайти та встановити змінну середовища $ EDITOR?


27

Коли я використовую ipython або ipython3, я можу використовувати команду% edit, щоб відкрити редактор для запису моїх скриптів python. Моя проблема полягає в тому, що редактор за замовчуванням vim, і я не знаю, як користуватися цим редактором. Що я хотів би зробити, це змінити редактор на нано або gedit. Я думаю, щоб залишитися з терміналом, я вважаю за краще змінити його на наноредактор.

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

% edit запускає гачок редактора IPython. Версія цього гака за замовчуванням встановлена ​​для виклику редактора, визначеного змінною середовища $ EDITOR. Якщо цього не знайдено, він буде встановлений за замовчуванням vi під Linux / Unix та блокнот під Windows. Про те, як змінити гачок редактора, перегляньте в кінці цього документу.

Потім, коли я бачу кінець цієї доктрини, я бачу таке:

Зміна гака редактора за замовчуванням:

Якщо ви хочете написати власний гачок редактора, ви можете помістити його у файл конфігурації, який ви завантажуєте під час запуску. Гак за замовчуванням визначений у модулі IPython.core.hooks, і ви можете використовувати його як вихідний приклад для подальших модифікацій. Цей файл також містить загальні вказівки щодо встановлення нового гака для використання після його визначення.

Вибачте, що я такий новачок, але я загубився тут. Я не впевнений, як потрапити на модуль IPython.core.hooks або просто встановити змінну середовища $ EDITOR на нано.

Будь-які пропозиції?

Відповіді:


37

Ви можете встановити $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, але, схоже, він не працює. Чи потрібно перезавантажувати?
Віллоцці

Тепер перезавантажте систему та буде застосовано налаштування.
Данатела

почніть нову сесію, і ви закінчите!
Луїс Сікуот

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

@cremefraiche Боюся, що це неправильно. Це не файл сценарію, тому ви не можете його "джерело". Це було б правильно для інших поширених файлів конфігурації, таких як .profile. Найкраще, що ви можете зробити - це вийти з системи та увійти назад. Це єдиний раз, коли файл читається. Прочитайте цей короткий розділ: help.ubuntu.com/community/…
Haggra

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.