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