Что такое запись Vim и как ее можно отключить?

761

Я продолжаю видеть recordingсообщение в нижней части окна gVim 7.2.

Что это такое и как мне его выключить?

vehomzzz
источник
55
Чтобы полностью отключить запись vim, добавьте map q <Nop>в свой файл .vimrc.
Джои Адамс
4
Я не могу поверить, что ты хочешь выключить запись! Я бы показал действительно раздражающее всплывающее окно "Вы уверены?" если кто-то просит отключить его (или, возможно, хотел бы указать параметры, которые дает обновление Windows 10).
0xc0de
Связанный: Как выйти из редактора Vim?
Питер Мортенсен

Ответы:

1056

Вы начинаете запись, q<letter> и вы можете закончить, набрав еще qраз.

Запись является действительно полезной функцией Vim.

Он записывает все, что вы печатаете. Затем вы можете воспроизвести его, просто набрав @<letter>. Поиск записи, перемещение, замена ...

Одна из лучших особенностей Vim IMHO.

yogsototh
источник
109
Как видно из других мест, за ним следует регистр. По-настоящему крутой (и, возможно, не интуитивно понятной) частью этого является то, что это те же регистры, которые используются такими вещами, как delete, yank и put. Это означает, что вы можете вытянуть текст из редактора в регистр, а затем выполнить его как команду.
Каскабель
68
Еще одна вещь, на которую стоит обратить внимание: вы можете нажать любое число перед @, чтобы воспроизвести запись, которая, например, (100 @ <letter>) будет воспроизводить ваши действия 100 раз
Tolga E
7
Вы можете добавить его позже, отредактировав регистр с помощью put / yank. Но я не знаю, почему вы хотите включить или выключить запись как часть макроса. («q» ни на что не влияет при вводе в режиме вставки.)
anisoptera
3
@Wade "- он называется регистром по умолчанию.
Каскабель
4
and how to turn offбыл также вопрос
n611x007
103

Типа, :h recordingчтобы узнать больше.

                           * q *  * запись * 
q {0-9a-zA-Z "} Запись напечатанных символов в регистр {0-9a-zA-Z"}
                        (прописные буквы для добавления). Команда ' q ' отключена
                        во время выполнения регистра , и он не работает внутриотображение . {Vi: нет записи}

Q                        Останавливает запись . (Примечание о реализации: « д », что
                        Остановка записи не сохраняется в реестре , если
                         это не было результатом сопоставления ) {Vi: нет записи}


                                                        * @ *
@ {0-9a-z ". = *} Выполнить содержимое регистра {0-9a-z". = *} [Количество] 
                        раз. Обратите внимание, что регистр ' % " (имя текущего
                        файл) и ' # ' (имя альтернативного файла) нельзя
                        используемый. Для " @ = " вам предлагается ввести
                         выражение . Результат выражения тогда
                        казнены. Смотрите также | @: |. {Vi: только именованные регистры}
ephemient
источник
31

Набор текста qзапускает запись макроса, и запись останавливается, когда пользователь нажимает qснова.

Как упоминал Джои Адамс, чтобы отключить запись, добавьте следующую строку .vimrcв свой домашний каталог:

map q <Nop>
mitchus
источник
11
Только ответ о «как отключить» часть вопроса. Что ж, это делает запись недоступной, фактически отключая ее - по крайней мере, никто не ожидает, что у vi будет отдельный поток для этого кода, я полагаю, включая меня.
n611x007
25

Как уже говорили другие, это запись макросов, и вы выключаете ее с помощью q. Вот хорошая статья о том, как и почему это полезно.

JeffH
источник
15

Это означает, что вы находитесь в режиме записи макроса. Этот режим вводится путем ввода, qза которым следует имя регистра, и может быть завершен путем qповторного ввода .

Джон Милликин
источник
Это фактически введено, печатая, qсопровождаемый любым именем регистра, которое является 0-9, az, AZ, и ".
ephemient
3
На самом деле это q {0-9a-zA-Z "} - вы можете записать макрос в любой регистр (названный цифрой, буквой,"). Если вы действительно хотите его использовать ... вы выполняете содержимое регистра с помощью @ <register>. Смотрите, :help qи :help @если вы заинтересованы в его использовании.
Каскабель