Многие приложения предлагают "vi mappings"; часто они ограничены обычной навигацией (hjkl
) и простыми операциями редактирования (<C-w>
, <C-u>
). Эти приложения на самом деле не работают с vi / Vim; они просто предлагают аналогичные привязки клавиш. Наиболее полная поддержка, которую я видел, находится в «плагинах vi» для IDE, таких как Eclipse, которые предлагают настройку с помощью команд :map
. Однако все это не соответствует полному синтаксису Vimscript, доступному в вашем ~/.vimrc
, и всем плагинам, которые вы, возможно, установили.
Как уже отмечали другие, лучшее, что вы можете достичь, это восстановить простые переназначения из вашего ~/.vimrc
путем определения соответствующих привязок клавиш zsh (и поддерживать их синхронизированными, когда вы адаптируете или добавляете некоторые из них).
Альтернатива: запуск внешнего Vim
Другой способ вернуть эффективность редактирования - это использовать Vim для редактирования командной строки. В частности, я не знаю о zsh, но Bash предлагает команду fc
для предыдущей командной строки, может редактировать текущую (в режиме set -o vi
) через <Esc>v
, а также предлагает привязку к edit-and-execute-command
для режима вставки, настраивается в ~/.inputrc
:
$if Bash
# Ctrl-F Invoke the editor on the current command line.
# Like c_CTRL-F in Vim.
# Related: fc does the same for the _previous_ command.
Control-f: edit-and-execute-command
$endif
Я полагаю, что по крайней мере некоторые из этих опций также доступны в zsh. Единственным недостатком является то, что запуск и выход из Vim вводит некоторую задержку и дополнительные клавиши для ввода, так что это имеет смысл только для более сложных изменений более длинных командных строк.