В bash, используя режим vi, если я нажму Esc, vмоя текущая командная строка открывается в редакторе, указанном в, $EDITOR
и я могу редактировать ее в полноэкранном режиме, прежде чем «сохранить» команду, которая будет возвращена в оболочку и выполнена.
Как я могу добиться аналогичного поведения в Zsh? Удар vв командном режиме приводит к тому, что звонок не имеет видимого эффекта, несмотря на установленную EDITOR
переменную среды.
edit-command-line
«виджет» вам потребуется что - то вродеautoload edit-command-line; zle -N edit-command-line
в одном из ваших ЗШ файлов инициализации (см раздел Функции ZLE вzshcontrib
документации ).bindkey -M vicmd v
настраивает.<ESC>
чтобы перейти в командный режим из режима вставки и затемv
в визуальный режим (Meta-v
то же самое), или простоv
если вы уже находитесь в командном режиме. Если вы используете режим Emacs, типичное связываниеC-x C-e
.bindkey -M vicmd ' ' edit-command-line
Если вы предпочитаете сочетания клавиш Emacs:
источник
^x^e
Связывания , как представляется, по умолчанию с текущим .oh-мой-Zsh , что крайне приятно.editor
модуль загружен.Вы можете использовать
fc
для редактирования последней команды в истории. Это не то же самое, что редактирование той же команды, но быстрое нажатие на клавишу Enter делает вашу текущую команду последней командой в истории.источник
Это полная конфигурация, которую я добавил к своему,
~/.zshrc
чтобы получить то же поведение от bash:источник
editor
модуль был загружен и /vi
илиvim
выбран для командного режима.