我得到了以下熱鍵映射:Vim中打開當前文件夾中團結
nnoremap <leader>f Unite file -path=~/Workspace
這個偉大的工程,但是,我希望讓這個路徑等於當前文件夾我在(這將與工作目錄分開)。
任何人都知道我可以做到這一點嗎? :S
我得到了以下熱鍵映射:Vim中打開當前文件夾中團結
nnoremap <leader>f Unite file -path=~/Workspace
這個偉大的工程,但是,我希望讓這個路徑等於當前文件夾我在(這將與工作目錄分開)。
任何人都知道我可以做到這一點嗎? :S
如何使用:
:UniteWithBufferDir file
或
:UniteWithCurrentDir file
(取決於你想要什麼)
我完全不理解_Unite_,並給出了一個通用答案。但是,這似乎是一個確切的解決方案! – sidyll
可以使用expand()
功能在沒有預期的文件名的地方使用%:p:h
(這些擴展的文件名參數,而不是其他人一樣出現在命令中發生了什麼)
:echo expand('%:p:h')
但是你不能直接映射。這是需要建立「上即時」的命令,所以你可以使用:execute
建立並執行計算的表達式:
nnoremap <leader>f :exec "Unite file -path=" . expand('%:p:h')
⚠️@ RobinHeggelundHansen請檢查其他答案以獲取更合適的解決方案,我會保留我的,因爲它是「Vim通用」,以防您或未來的瀏覽器,需要知道這種技術。 – sidyll
團結允許動態參數使用backtick
,作爲團結幫助文檔記載:
You don't have to use |:execute| for dynamic arguments.
You can use evaluation cmdline by ``.
Note: In the evaluation, The special characters(spaces, "\" and ":")
are escaped automatically.
>
:Unite -buffer-name=search%`bufnr('%')` line:forward:wrap<CR>
你的情況
因此,映射將是:
:nnoremap <leader>f :Unite file -path=`expand('%:p:h')`
你試過%:P:H爲當前文件夾? – gaetanoM
我有,似乎把'-path ='後面的所有內容當作一個字符串來處理。 –
@RobinHeggelundHansen我注意到了一些事情:(1)你在'Unite'開始時不需要':'嗎? (2)如果地圖末尾沒有「」,則必須手動按Enter鍵。這是期望的行爲? –
sidyll