有沒有辦法在Vim的NERDtree插件中複製文件的路徑?使用NERDtree Vim插件複製路徑文件
更好:是否有一些插件可以使Sublime Text的插件SideBarEnhancements執行相同的操作?
有沒有辦法在Vim的NERDtree插件中複製文件的路徑?使用NERDtree Vim插件複製路徑文件
更好:是否有一些插件可以使Sublime Text的插件SideBarEnhancements執行相同的操作?
NERD_tree帶有自己的擴展系統;只要把下面的代碼片段到~/.vim/nerdtree_plugin/yank_mapping.vim
:
call NERDTreeAddKeyMap({
\ 'key': 'yy',
\ 'callback': 'NERDTreeYankCurrentNode',
\ 'quickhelpText': 'put full path of current node into the default register' })
function! NERDTreeYankCurrentNode()
let n = g:NERDTreeFileNode.GetSelected()
if n != {}
call setreg('"', n.path.str())
endif
endfunction
當然,你可以適應默認鍵(yy
)和寄存器("
;使用+
爲剪貼板)。
偉大的提示,** Ingo **!它可以工作,但是有一些方法可以從項目根目錄複製路徑而不是'/ home'? – 2013-07-24 20:56:52
@TárcioZemel:你是說,相對於項目根目錄的路徑?您可以通過內置的'fnamemodify()'函數(在上面的'setreg()'調用中)對其進行轉換。 – 2013-07-25 06:32:36
太好了,就是這樣!我剛把這行改成了'call setreg(''',(fnamemodify(n.path.str(),':。')))'和魔法發生了! 再次謝謝! – 2013-07-25 17:36:46
這是我發現NERDTree一個快速谷歌:CopyPath
但它聽起來就像你正試圖使VIM到崇高的文本。與大多數文本編輯器相比,Vim在文本編輯方面往往有着截然不同的理念。在我個人看來,使用vim總比反對它好。這是Drew Neil Vimcasts的一個不錯的帖子,解釋了benefit to split explorers。
可能更多的vim插入路徑的方式是使用文件完成。在插入模式下,您可以通過按<c-x><c-f>
來觸發該完成,然後通過<c-p>
和<c-n>
(分別爲上一個和下一個)的菜單進行操作。如果您想要插入當前的緩衝區路徑,您可以通過%
寄存器將其粘貼,例如"%p
或在插入/命令行模式下按<c-r>%
。
如需更多幫助,請參見:
:h ins_completion
:h i_CTRL-R
:h quote%
:h registers
我猜你真正需要的是這樣的崇高插件上下文菜單?
這是與NERDTree內置。
只需在您突出顯示的節點上點擊m
,您就會看到一個新窗口,彈出詢問您想要執行的操作。基本功能是:添加,刪除,移動,複製。
還有一個插件可讓您搜索(使用grep),無論是單個文件還是整個目錄突出顯示。
NERDTree還爲您在該上下文窗口中輕鬆構建的任何自定義操作提供了API。
還有(l)列表選項,這可能是什麼被問到關於 – valk 2016-08-30 13:15:51
請編輯您的問題來解釋a)ST插件的功能和b)爲什麼Vim中的等效功能不適合該法案。另外,複製後你想用這個文件名做什麼?將它插入當前緩衝區?將它粘貼到另一個程序中?謹防XY問題。 – romainl 2013-05-04 05:46:23