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


Понравилась статья? Поделись с друзьями!




Комментарии на этом сайте требуют включенного Javascript в вашем браузере. Вероятно, ваш браузер не поддерживает Javascript, или он был отключен по каким-то причинам. Если вы хотите прокомментировать пост, или просто почитать комментарии, то пожалуйста, включите Javascript или попробуйте открыть эту страницу другим браузером.