Сохранить файл в NERDTree

Вот как я сейчас сохраняю файл в Vim, если хочу сохранить в подпапке:

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

Есть ли способ использовать NERDTree, чтобы выбрать папку и сохранить текущий документ? Если нет, то как лучше всего не указывать путь, как я делал выше?

1 ответ

Решение

Я бы использовал NERDTree's 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'
\})
Другие вопросы по тегам