Как сделать, чтобы zsh подсказывал режим vi, используя мой .vimrc? - PullRequest
0 голосов
/ 30 августа 2018

Мне очень нравится Vim, и я определил множество комбинаций клавиш, чтобы сделать редактирование текста более простым и легким. И поскольку в приглашении zsh есть режим vi, в котором используются конфиги по умолчанию для vi, мне было интересно, можно ли сказать zsh, что нужно использовать vi, как настроено в .vimrc.

Идеи, кто-нибудь?

1 Ответ

0 голосов
/ 31 августа 2018

Многие приложения предлагают "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 вводит некоторую задержку и дополнительные клавиши для ввода, так что это имеет смысл только для более сложных изменений более длинных командных строк.

...