Режим совместимости с 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. Поэтому я очень быстро приноровился, и в старый режим возвращаться не желаю :)