2009-11-07 2 views
26

Возможно ли запустить внешнюю команду и сохранить ее вывод в регистре?VIM: сохранить выход внешней команды в регистр

  • :redir работы для бывших команд, а не для внешних команд (AFAIK)
  • :r ! запускает внешнюю команду, но непосредственно вставляет выход в текущего буфера

ответ

35

нашел ответ благодаря пользователю на список ВИМ использование рассылки:

:let @a = system("ls -l")

Чтобы выполнить команду с файлом под курсором в качестве аргумента:

:let @a = system("ls -l " . shellescape(expand('<cfile>')))

+2

Разумно использовать 'shellescape()' функцию при построении команд оболочки. В этом примере ': let @a = system (" ls -l ". Shellescape (expand ('')))'. – jamessan

+1

Хорошая точка, обновляющая ответ –

Смежные вопросы