Режим совместимости с vi в bash и zsh
По умолчанию, в bash и zsh включен режим совместимости с emacs. Т.е.
такие же клавиатурные сочетания как в нём. Например ctrl-a для перехода
в начало строки, или ctrl-e для перехода в конец строки и т.д.
(Подробнее например тут). Почему-то, мало кто
знает, что там так же есть режим совместимости с vi (не путать c vim.
Различия есть. Особенно для опытных vim'еров). Т.е.после запуска
терминала сразу попадаем в insert mode в котором вводим команду. Нажав
на esc переходим в командный режим. В нём работает большинство команд
vi. Например поиск по / или удаление слова dw и многие другие.
Использовать так:
set -o vi
В терминале в котором выполнили будет включен режим совместимости с vi. Если открыть новый и закрыть тот, в котором ввели, то вернётся старый режим.
Чтобы использовать этот режим постоянно, в случае с zsh надо добавить
следующее в ~/.zshrc
:
bindkey -v
В случае с bash, надо создать файл ~/.inputrc
и добавить в него:
следующее:
set editing-mode vi
set keymap vi
Многие могут сказать что это не удобно. Возможно это и так, но мне удобнее vim like управление чем emacs. Поэтому я очень быстро приноровился, и в старый режим возвращаться не желаю :)