我正在尝试创建一个快捷方式,该快捷方式会自动将作用域内的repl连接到我在vim中的当前工作目录。
对于有兴趣的人,用例使用Tim Pope的'figwheel-sidecar.repl-api
插件连接到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
文件的最近目录)的命令。
答案 0 :(得分:0)
使用:execute
构建命令,然后将调用该函数
正确地:
nnoremap <leader>cfr :exe 'Connect nrepl://localhost:7002' getcwd()<cr>
要扩展到git根目录,可以使用:
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]