2016-06-14 9 views
0

Мне было интересно: можно ли написать содержимое переменной (в моем случае, последний поиск) в файл с командой?Vim: как добавить содержимое переменной в файл?

Я попытался следующие:

:echo @/ >> /tmp/foo.txt 
:@/w /tmp/foo.txt 

Но это не сработало. Любая идея о том, как правильно это сделать?

+0

': echo />>/tmp/foo.txt', но ... почему вы хотите это сделать? – romainl

+0

Что вы подразумеваете под ''? Почему вы добавляете специальную комбинацию клавиш внутри команды? Кстати, ваша команда не работает так, как принято буквально: 'E15: Недопустимое выражение: />>/tmp/foo.txt' Эта команда является частью более крупного проекта: мне нужно передать некоторые вещи во внешнюю программу – fstab

+0

'' означает «нажмите ctrl + r». См. ': H c_ctrl-r'. – romainl

ответ

3

Альтернативное решение предложения romane заключается в использовании команды redir, которая перенаправляет сообщения в файл. Как описано в :help redir,

сообщения, которые представляют собой выходные данные команд записываются в этот файл, до тех пор, пока перенаправление заканчивается.

Чтобы добавить содержимое регистра поиска, выполнить следующую последовательность команд:

redir >> /tmp/foo.txt 
echo @/ 
redir END 

Эта последовательность может быть превращена в функцию и/или использоваться в качестве ключевого отображения.