Использование переменных в команде оболочки vim - PullRequest
22 голосов
/ 05 августа 2011

Как мне использовать переменную в команде оболочки vim (сделанной с !) в vimscript? Например, что-то вроде этого: (просто пример, а не то, что я действительно пытаюсь сделать)

function Ls(dir)
    !ls a:dir
endfunction

1 Ответ

27 голосов
/ 29 октября 2011

Используйте команду execute. Все, что после него, является выражением, которое преобразуется в строку, которая затем выполняется как команда, введенная вами самим.

function Ls(dir)
    execute '!ls ' . a:dir
endfunction

Это говорит: «Оцените выражение '!ls ' . a:dir и затем выполните его». Переменная a:dir раскрывается, точка объединяет две строки в '!ls whatever', а затем выполняется, как если бы вы ее набрали.

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