Сила bash для использования .vimrc в режиме vi

Bash может быть настроен для работы в режиме vim. Однако мой .vimrc больше не используется. В частности, мое отображение j j на Esc больше не работает. Я должен нажать Esc, чтобы выйти в режим вставки. Как сообщить bash использовать мой файл .vimrc?

Ответ 1

Вы ищете режим bash - vi (это только: режим ввода vi для bash и не имеет ничего общего с vi или vim).

Он имеет отношение к readline/inputrc, насколько я знаю, чтобы вы могли видеть, можете ли вы

  • свяжите ключи bash way
  • from ~/.inputrc

ссылки:

Последняя ссылка содержит несколько более продвинутый пример .inputrc для использования с bash:

# Edit options before rerunning previous command, eg: ls a b c -> ls -al a b c
"\e-": "\C-p\C-a\M-f "

# Cycle thru completions.
"\e/": menu-complete

# glob patterns without executing, eg: 'rm *x'
"\ee": glob-expand-word

# Vim style history search
"\e[A": history-search-backward
"\e[B": history-search-forward

"\e[C": forward-char
"\e[D": backward-char

# Two escapes clear command line.
"\e\e": "\C-a\C-k"

Ответ 2

@see определенно имеет самый прямой ответ. НО, если вы предпочитаете не вмешиваться в .inputrc, по крайней мере два других варианта

  • v, который принимает любые команды, которые вы написали до сих пор, или ничего вообще, в редактор, определенный в вашем .bash_profile (используйте эту строку: EDITOR=/usr/bin/vim). save и quit выполняет команду. EDIT: это должно быть выполнено из обычного режима, поэтому вам все равно придется нажать ESC, чтобы попасть туда:(

  • fc, что является удобной командой "fix command" . подробнее об этом в man bash. EDIT: этот тип, который вы вводите в режиме вставки.

Ответ 3

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

В вашем .inputrc файле поместите

установить ключ-клавиатуру vi-insert

"jj": "\ e"

Вам нужно принудительно перечитать ваш .inputrc файл. Это можно сделать, закрыв терминал и снова открыв его. Для длительных экспериментов с .inputrc файлом, поэтому вам не нужно выходить из системы, а затем снова вставлять это:

"\ C-x\C-r": re-read-init-file

Затем вы можете использовать Control-x, control-r для перезаписи файла инициализации и не иметь выхода и обратно.

Ответ 4

в вашем .bashrc:

set -o vi

vim для bash