Как вставить текущий рабочий каталог vim в команду - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь создать ярлык, который автоматически соединяет область видимости с моим текущим рабочим каталогом в vim.

Для тех, кто заинтересован, сценарий использования подключается к 'figwheel-sidecar.repl-api с помощью плагина Tim 100 Pope fireplace.vim.

Вот моя лучшая попытка:

nnoremap <leader>cfr :Connect nrepl://localhost:7002 getcwd()<cr>

Большая часть этого проста, но сегмент getcwd() текущей команды не работает. Что я могу использовать вместо него, чтобы всякий раз, когда я нажимал <leader>cfr, он расширялся до следующего:

:Connect nrepl://localhost:7002 path/to/working/directory<cr>

n.b. Еще лучше было бы также найти команду, которая динамически расширяется до корня проекта (ближайший каталог с файлом .git).

1 Ответ

0 голосов
/ 25 июня 2018

Создайте свою команду с помощью :execute, тогда функция будет вызываться правильно:

nnoremap <leader>cfr :exe 'Connect nrepl://localhost:7002' getcwd()<cr>

Для расширения до вашего git root вы можете использовать:

git rev-parse --show-toplevel

Так что простоНазовите это с system() вместо getcwd().Хорошей идеей было бы обернуть trim() вокруг, чтобы удалить новую строку:

nnoremap <leader>cfr :Connect nrepl://localhost:7002
                            \ trim(system('git rev-parse --show-toplevel'))<cr>

Обратите внимание, что trim() - это Vim 8+.Если по какой-либо причине вы используете более старую версию, используйте systemlist() вместо:

systemlist('git rev-parse --show-toplevel')[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...