Представьте, что вы хотите процитировать слово ниже. Если |
это позиция курсора, вы можете легко заключить слово в кавычки cw""<Esc>P
из обычного режима.
|below
Я хочу добиться того же поведения в режиме командной строки. У меня вопрос, как я могу сказать в режиме командной строки, что я хочу набрать <Esc>
. Я пробовал :norm cw""<Esc>P
и некоторые другие варианты, но я просто получаю ""<Esc>P
вместо "below"
.
Все еще связанный с этим, я хотел бы знать, как я могу сделать команды Ctrl типа режима командной строки. Например, я мог бы cw"<C-r>""<Esc>
вместо этого цитировать вышеупомянутое слово . Но тогда мне понадобится командная строка для ввода <C-r>
для меня. Как я могу это сделать?
command-line
Гонсалу Рибейро
источник
источник
<C-x><C-e>
в readline для редактирования командной строки$EDITOR
, у вас есть<C-f>
в Vim, чтобы открыть окно командной строки. См:help cmdline-window
.Ответы:
<C-v>
это то, что вы ищете. Он позволяет вводить буквенные символы (например, литералEsc
вместо строки «Esc»), не требуя экранирования чего-либо.отображается как:
и будет делать то, что вы хотите (т. е. процитировать слово). Вы также можете использовать это с другими
<C-?>
отображениями. Например, ваш второй запрос:отображается как:
И приведет к тому же, что и выше. Там нет необходимости включать дополнительные
Esc
в конце.источник
Это связано с тем, что специальные клавиши вроде
<Esc>
не переводятся вnormal
команды и обрабатываются так же, как вы нажали <Esc>. Чтобы исправить это, вы можете использоватьexec
команду. Вот так:Обратите внимание, что перед кавычками необходимо ставить обратную косую черту и
<Esc>
, и использование одинарных кавычек вместо двойных не будет работать.источник
"\<C-{insert key}>"
Режим командной строки отличается; Вы не можете использовать те же (обычный режим) команды редактирования там. Вы можете найти список команд на
:help c_CTRL-V
.Теперь есть окно командной строки (
:help command-line-window
), в которое можно войти какq:
из обычного<C-F>
режима, так и из режима командной строки. В этом окне вы можете использовать все обычные команды и сопоставления, так что это будет вариант 1.Вариант 2 - это специальные отображения для режима командной строки. Как я уже сказал, вы не можете использовать подход через
:normal
et al. Ключом к их определению является:help c_CTRL-\_e
отображение, которое «оценивает [s] {expr} и заменяет [s] всю командную строку результатом». Вот простой пример, который корректно работает только в конце командной строки:источник