Как установить «args» в список файлов текущего буфера - PullRequest
1 голос
/ 14 октября 2010

В текущем буфере у меня есть список путей к файлам (по одному на строку).Я хочу установить "args" для этого списка файлов.

Как я могу это сделать?Спасибо.

Ответы [ 2 ]

1 голос
/ 14 октября 2010

Попробуйте эту серию команд: ggVGJ"ayy:args, затем нажмите Ctrl-R, а затем

Объяснение : ggVGJ объединит все строки в одну строку. "ayy вернет новую строку в регистр a. :args (filenames) установит аргументы, а Ctrl-r, a сбросит содержимое регистра a в команду, которую вы в настоящее время вводите.

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

0 голосов
/ 14 октября 2010
:execute "args ".join(map(getline(1, line('$')), 'fnameescape(v:val)'))<CR>

Объяснение: getline(1, line('$')) вернет список строк в текущем буфере (от первой (1) до последней (line('$')) строки, map(getline(1, line('$')), 'fnameescape(v:val)') будет экранировать все имена файлов, если они содержат пробелы или другие специальные символы, join(...) присоединится к результирующему списку, вставив пробел между каждыми двумя элементами списка, затем он будет передан команде args с помощью execute.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...