[英]vim + fzf.vim - specify project root in :Files
我的問題是關於在fzf.vim中使用vim- projectroot
我有一個打開的鍵映射:Files
項目根目錄下的:Files
是這樣的
nnoremap <leader>t :ProjectRootExe Files<CR>
但是問題是它干擾了set autochdir
。 除非我用:e/:sp/:vsp
強制進行新的會話,否則當前目錄與以前的目錄相同。
所以我想到將目錄作為這樣的:Files path
的第二個參數
function Guess()
return projectroot#guess()
endfunction
nnoremap <leader>t :Files Guess()<CR>
但是由於顯而易見的原因,我無法弄清楚我無法使用該用法。 如何在vim映射中指定它將命令與函數輸出結合在一起?
我想要的是:Files output_of_Guess()
被調用。
Vim的評估規則與大多數編程語言不同。 您需要使用:execute
來評估變量(或表達式); 否則,將按字面意思使用; 即Vim使用函數名稱本身作為參數。
nnoremap <leader>t :execute 'Files ' . Guess()<CR>
映射的替代方法是使用:help :map-expr
; 基本上是:execute
內置到:map
的變體中:
nnoremap <expr> <leader>t ':Files ' . Guess() . "\<lt>CR>"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.