Назад | Перейти на главную страницу

Как установить среду оболочки «vi» по умолчанию

Я бы хотел использовать vi (set -o vi может сделать трюк) по умолчанию в моей оболочке вместо emacs, но я не хочу помещать его в сценарии запуска bash.

Зачем? Потому что я работаю инженером по верификации и использую несколько учетных записей пользователей, которые также довольно часто переустанавливаются. Изменение профиля по умолчанию также не является ответом, потому что некоторые программы создают свой собственный домашний каталог (независимо от профиля по умолчанию).

РЕДАКТИРОВАТЬ: Я знаю, что вы дали мне несколько способов сделать это при запуске или в любое время, но я действительно хочу изменить это где-нибудь в системе и сделать это по умолчанию, возможно ли это?

На самом деле, если подумать, это довольно интуитивно понятно, хотя и не так очевидно, как может показаться на первый взгляд. Следующая команда даст вам то, что вы хотите:

ssh -t somehost "bash -i -o vi"

Это запустит интерактивную оболочку в режиме vi. Давайте разберемся с этим. ssh -t somehost подключается к хосту (очевидно) и открывает сеанс tty. "bash -i -o vi" делает две вещи. Во-первых, он запускает bash в интерактивном режиме, то есть в оболочке, которую вы обычно получаете при входе в систему. Это читается в профилях bash и т. Д. И выводит вас на приглашение. Второй аргумент, -o vi, включает параметры оболочки, в частности режим vi.

Чтобы использовать это в реалистичной среде, вы, вероятно, захотите сделать что-то вроде следующего (адаптируя путь к bash или выбранной вами оболочке):

function ssh_vi { ssh -t $1 "bash -i -o vi" }

И называется ...

$ ssh_vi mysite.com

Надеюсь это поможет!

Вроде бы только изменениями конфигурации это сделать невозможно.
Одним из возможных решений является изменение и перекомпиляция библиотеки "readline".

Похоже, вы хотите, чтобы Putty запустила за вас скрипт. Посмотри на ExtraPutty. или Киттис автоматическая команда.

Может быть, я просто не понял проблемы, но мне это не кажется проблемой: типичные системы GNU делать иметь глобальный /etc/inputrc config, не так ли? vi режим для readline(3) можно включить, добавив:

set editing-mode vi

к нему, конечно.

bash $ export EDITOR = vi все программное обеспечение, которое ищет эту переменную, будет использовать vi, которое вы можете записать как есть в .bashrc, поэтому каждый раз при запуске экрана будет использовать его

Ответ:

  1. Отредактируйте файл оболочки. * Rc (.bashrc .kshrc)

  2. Добавить строку
    установить -o vi

  3. Исходный файл профиля оболочки (.bash_profile / .profile) source ./.bash_profile

  4. Проверьте
    set -o | egrep -w "(vi | emacs)"