代码之家  ›  专栏  ›  技术社区  ›  Dread

在NERDTree中保存文件

  •  0
  • Dread  · 技术社区  · 7 年前

    :w /home/username/notes/file.txt
    

    有没有办法使用NERDTree选择文件夹并保存当前文档?如果没有,那么避免像我上面所做的那样键入路径的最佳方法是什么?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ingo Karkat    7 年前

    我会用NERDTree的 cd 将目录更改为目标目录的命令;然后,您只需使用 :w file.txt 在那个目录中。

    或者,您可以使用自定义映射扩展插件,将当前文件规范/路径拉入寄存器。然后可以将内容插入 :write <C-R>{register} . 将以下内容放入文件 ~/.vim/nerdtree_plugin/yank_mapping.vim :

    function! NERDTreeYankCurrentNode( modifiers )
        let l:node = g:NERDTreeFileNode.GetSelected()
        if l:node != {}
            let l:contents = fnamemodify(l:node.path.str(), a:modifiers)
            call setreg(v:register, l:contents, 'v')
    
            " It's helpful to print the contents, too.
            echomsg l:contents
        endif
    endfunction
    function! NERDTreeYankCurrentNodeFilename()
        return NERDTreeYankCurrentNode(':t')
    endfunction
    function! NERDTreeYankCurrentNodeAbsoluteFilespec()
        return NERDTreeYankCurrentNode(':p')
    endfunction
    function! NERDTreeYankCurrentNodePathspec()
        return NERDTreeYankCurrentNode(':p:h')
    endfunction
    function! NERDTreeYankCurrentNodeRelativeFilespec()
        return NERDTreeYankCurrentNode(':~:.')
    endfunction
    
    
    call NERDTreeAddKeyMap({
    \   'key': 'yr^',
    \   'callback': 'NERDTreeYankCurrentNodeFilename',
    \   'quickhelpText': 'yank file name of current node in the passed register'
    \})
    call NERDTreeAddKeyMap({
    \   'key': 'yr>',
    \   'callback': 'NERDTreeYankCurrentNodeAbsoluteFilespec',
    \   'quickhelpText': 'yank full absolute filespec of current node in the passed register'
    \})
    call NERDTreeAddKeyMap({
    \   'key': 'yr<',
    \   'callback': 'NERDTreeYankCurrentNodePathspec',
    \   'quickhelpText': 'yank full absolute pathspec of current node in the passed register'
    \})
    call NERDTreeAddKeyMap({
    \   'key': 'yy',
    \   'callback': 'NERDTreeYankCurrentNodeRelativeFilespec',
    \   'quickhelpText': 'yank filespec relative to CWD of current node in the passed register'
    \})