OS X + Vim:在 NerdTree(Vim)中打开文件夹的 Finder

OS X + Vim:在 NerdTree(Vim)中打开文件夹的 Finder

我用书呆子树我虔诚地使用 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

相关内容