vim+;fzf.vim-在:文件中指定项目根目录
我的问题是关于with的用法 我有一个键映射,它在项目根目录下打开vim+;fzf.vim-在:文件中指定项目根目录,vim,fzf,Vim,Fzf,我的问题是关于with的用法 我有一个键映射,它在项目根目录下打开:Files,如下所示 function Guess() return projectroot#guess() endfunction nnoremap <leader>t :Files Guess()<CR> nnoremap t:ProjectRootExe文件 但问题是它干扰了set autochdir。除非我使用:e/:sp/:vsp强制新会话,否则当前目录将保持与以前的目录相同 因此,我考
:Files
,如下所示
function Guess()
return projectroot#guess()
endfunction
nnoremap <leader>t :Files Guess()<CR>
nnoremap t:ProjectRootExe文件
但问题是它干扰了set autochdir
。除非我使用:e/:sp/:vsp
强制新会话,否则当前目录将保持与以前的目录相同
因此,我考虑将directory作为:Files path的第二个参数,如下所示
function Guess()
return projectroot#guess()
endfunction
nnoremap <leader>t :Files Guess()<CR>
函数猜测()
返回projectroot#guess()
端功能
nnoremap t:Files Guess()
但是由于一些我无法理解的明显原因,我无法让这个用法正常工作。如何在vim映射中指定它应该将命令与函数输出相结合
我想要的是:要调用的_Guess()
的文件输出。Vim的求值规则与大多数编程语言不同。您需要使用:执行,以计算变量(或表达式);否则,它是字面意义上的;i、 Vim使用函数名本身作为参数
nnoremap <leader>t :execute 'Files ' . Guess()<CR>
这就是我最后使用的nnoremap t:execute'Files'ProjectRootGuess()
进行grepping的原因,我使用的是从fzf.vim命令中的一个问题中获得的-nargs=*Rag\call fzf#vim#ag(,extend(s:with_git_root(),{'down':'~40%}))