Использование Vim Register в режиме Ex - PullRequest
11 голосов
/ 09 марта 2010

Потенциально 2 вопроса в одном. Я хотел бы знать, как ссылаться на регистр в режиме Ex.

Например, я редактирую файл и хочу сохранить файл с добавленной к нему меткой времени (или просто датой).

Я знаю, что могу установить регистр на значение вывода команд оболочки, используя:

:let @a = system("date +\"%Y-%m-%d\"")

Есть ли возможность разыменовать этот регистр и вставить его значение в команду Ex? Что-то вроде:

:w testfile.<value of "a register>

Было бы неплохо скопировать в системный буфер обмена и вставить их, но в будущем было бы неплохо сделать это более общим / программным способом для построения других команд.

Ответы [ 2 ]

12 голосов
/ 09 марта 2010

Есть два подхода к этому, но, вероятно, ни один из них не совсем то, что вы хотите.

  1. Используйте <CTRL-R>a для вставки содержимого в текущую командную строку. См. :help c_CTRL-R для получения дополнительной информации.

  2. Используйте exe, чтобы разрешить вставку переменных в выражение. См :help :exe и :help 41.3.

    :exe 'w testfile.' . @a
    
1 голос
/ 09 марта 2010

Предполагая регистр "а", вы можете набрать:

<CTRL-R>a, который будет вводить значение регистра inline в этой точке. Это также можно использовать в режиме вставки.

...