#shell #vim #zsh #urxvt
#оболочка #vim #zsh #urxvt
Вопрос:
Я только что видел видео, где парень выполнял некоторые команды, а затем ему нужно было отредактировать команду, которую он в данный момент вводил в консоли.
Казалось, что он использовал какой-то ярлык, и строка, которую он набирал, появлялась в буфере vim, готовая к редактированию и выполнению.
Я использую zsh, и мои терминалы на выбор — termite и urxvt. Мне было интересно, как это сделать.
- Обязательно ли использовать плагин или это можно сделать простым способом?
- Зависит ли это от используемого терминала или я могу просто использовать оболочку (zsh)
Заранее благодарю вас
Комментарии:
1. Вы можете использовать
fc
команду в bash или zsh, если хотите отредактировать последнюю введенную команду в редакторе, но, к сожалению, она не откроет введенную в данный момент команду.
Ответ №1:
Я предполагаю, что вы имеете в виду, set -o vi
на Bash. Это откроет Vim для редактирования текущего буфера терминала.
$ export EDITOR=vim
$ set -o vi
$ aaa bbb ccc ## then, type [ESC] and [v], it'll &o to vim buffer.
Zsh не открывает Vim, если выполняются вышеуказанные команды.
Но вместо этого она имитирует vim на терминале, и я думаю, что во многих случаях этого достаточно.
Насколько я знаю, Zsh по умолчанию не поддерживает такое поведение, как Bash.
Я нашел похожее обсуждение в reddit, и оно может вам помочь.
Комментарии:
1. Вопрос заключается в
zsh
. Ноbash
также имеет функциональность, которую запрашивает OP:readline
имеет функциюedit-and-execute-command
; по умолчанию она привязана кC-x
C-e
.2. @&re-san Она не открывается
vim
; библиотека Readline предоставляет среду редактирования, подобную vim.zle
,zsh
редактор строк, также предоставляетvi
подобный режим редактирования.
Ответ №2:
Итак, есть два способа сделать то, что сработало для меня.
1.) Откройте текущую команду в редакторе vim
Перейдите в свой ./zshrc
файл и добавьте:
export EDITOR=vim
plu&ins=(
# ...all your other plu&ins
vi-mode
)
Введите команду, нажмите ESC
, чтобы перейти в командный режим, а затем нажмите v
, чтобы открыть vim.
2.) Используйте команды vim, не выходя из сеанса терминала. Для этого добавьте set -o vi
в свою ~/.zshrc
конфигурацию.