Пользовательская команда Vim: запустить команду в оболочке, а затем команду в vim - PullRequest
0 голосов
/ 07 октября 2019

Я пишу простую команду для операции, которую я довольно часто выполняю в vim:

command! EslintFix !./node_modules/.bin/eslint --fix %

Это изменит файл, над которым я сейчас работаю, поэтому я 'Я хотел бы перезагрузить файл в той же команде, но я не уверен, как выполнить команду оболочки с командой Vim e%, чтобы перезагрузить текущий файл. Если я напишу это:

command! EslintFix !./node_modules/.bin/eslint --fix % | e%

В конечном итоге Vim запустит e% в оболочке вместо Vim.

Как я могу написать такую ​​команду, как эта, гдеЯ хочу выполнить что-то в оболочке с последующим выполнением команды Vim?

1 Ответ

2 голосов
/ 07 октября 2019

Вариант № 1 (с использованием system()):

command! EslintFix call system('./node_modules/.bin/eslint --fix ' . fnameexpand('%:p:S')) | e%

Вариант № 2 (с использованием execute):

command! EslintFix execute '!./node_modules/.bin/eslint --fix %' | e%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...