![OS X + Vim:在 NerdTree(Vim)中打开文件夹的 Finder](https://linux22.com/image/1332210/OS%20X%20%2B%20Vim%EF%BC%9A%E5%9C%A8%20NerdTree%EF%BC%88Vim%EF%BC%89%E4%B8%AD%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%20Finder.png)
我用书呆子树我虔诚地使用 MacVim 插件,发现自己经常想在 Finder 中打开文件夹来处理文件。例如,我想预览和复制一些图像。
有没有一种快速的方法可以做到这一点,而不需要更改当前目录? 我最理想的情况是:
- 将光标移至所需文件夹
- 按“某个键”
- 文件夹在查找器中打开。
答案1
现在,NERDTree 已将其作为fs_菜单.vim插件。事实上,此功能仅适用于 Mac:
if has("gui_mac") || has("gui_macvim") || has("mac")
call NERDTreeAddMenuItem({'text': '(r)eveal in Finder the current node', 'shortcut': 'r', 'callback': 'NERDTreeRevealInFinder'})
call NERDTreeAddMenuItem({'text': '(o)pen the current node with system editor', 'shortcut': 'o', 'callback': 'NERDTreeExecuteFile'})
call NERDTreeAddMenuItem({'text': '(q)uicklook the current node', 'shortcut': 'q', 'callback': 'NERDTreeQuickLook'})
endif
导航到 NERDTree 视图中的某个节点,键入m
以调出 fs 菜单,然后o
打开当前节点。目录将在新的 Finder 窗口中打开,文件将在你设置为该文件类型的默认编辑器的应用程序中打开。
这是完成的赞美打开命令:
function! NERDTreeExecuteFile()
let treenode = g:NERDTreeFileNode.GetSelected()
if treenode != {}
call system("open '" . treenode.path.str() . "'")
endif
endfunction
答案2
打开文件夹的 shell 命令是
$ open /path/to/folder
在 Vim 函数中,可以像这样调用此命令:
let g:mypath = /path/to/folder
execute "silent !open " . g:mypath
NERDTree 的文档有一个简单易懂的例子:
call NERDTreeAddKeyMap({
\ 'key': 'foo',
\ 'callback': 'NERDTreeCDHandler',
\ 'quickhelpText': 'echo full path of current node',
\ 'scope': 'DirNode' })
function! NERDTreeCDHandler(dirnode)
call a:dirnode.changeToDir()
endfunction
你可以使用上面几行列出的全局对象:
g:NERDTreePath
g:NERDTreeDirNode
g:NERDTreeFileNode
g:NERDTreeBookmark