Регистрация Vim в режиме Ex
Потенциально 2 вопроса в одном. Я хотел бы знать, как ссылаться на регистр в режиме Ex.
Например, я редактирую файл, и я хочу сохранить файл с меткой времени (или просто datestamp реально), добавленной к ней.
Я знаю, что могу установить регистр на значение вывода команд оболочки, используя:
:let @a = system("date +\"%Y-%m-%d\"")
Есть ли возможность разыменовать этот регистр и вставить его значение в команду Ex? Что-то вроде:
:w testfile.<value of "a register>
Копирование в системный буфер обмена и вставку было бы неплохо, но сделать это более универсальным/программным способом для создания других команд в будущем было бы неплохо.
Ответы
Ответ 1
Есть два подхода к этому, но, вероятно, не то, что вы хотите.
-
Используйте <CTRL-R>a
для вставки содержимого в текущую командную строку. См. :help c_CTRL-R
для получения дополнительной информации.
-
Используйте exe
, чтобы разрешить вставлять переменные в выражение. См. :help :exe
и :help 41.3
.
:exe 'w testfile.' . @a
Ответ 2
Предполагая регистр "a", вы можете ввести:
<CTRL-R>a
, который будет вводить значение register inline в этой точке. Это также можно использовать в режиме вставки.