11 ответов:
вы можете использовать этот скрипт из vim.org:
http://www.vim.org/scripts/script.php?script_id=1071
просто положите его на ваш
.vim/pluginсправочник, а затем использовать:BufOnlyкоманда для закрытия всех буферов, кроме активного. Вы также можете отобразить его в другом месте, которое вам нравится в вашем.vimrc.источник на Github (через зеркало vim-скриптов):https://github.com/vim-scripts/BufOnly.vim/blob/master/plugin/BufOnly.vim
Я делаю это
:w | %bd | e#мой любимый, если я просто хочу, чтобы мой текущий буфер открылся и закрыл все остальные.
как это работает: сначала запишите изменения текущего буфера, затем закройте все открытые буферы, а затем снова откройте буфер, в котором я был в настоящее время. В Vim, the
|связывает выполнение команд вместе. Если ваш буфер обновлен выше может быть сокращен до:%bd | e#
основываясь на ответе хуананруиса.
внесите небольшое изменение в буфер, который вы хотите сохранить, затем
:1,1000bdкоманда
bd(buffer delete) не удаляет буферы с несохраненными изменениями. Таким образом, вы можете сохранить текущий (измененный) файл в списке буферов.редактировать: Пожалуйста, обратите внимание, что это также приведет к удалению вашего NERDTreeBuffer. Вы можете получить его обратно с :NERDTree
закрытие всех открытых буферов:
silent! execute "1,".bufnr("$")."bd"закрытие всех открытых буферов за исключением текущего:
function! CloseAllBuffersButCurrent() let curr = bufnr("%") let last = bufnr("$") if curr > 1 | silent! execute "1,".(curr-1)."bd" | endif if curr < last | silent! execute (curr+1).",".last."bd" | endif endfunctionдобавить эту функцию, чтобы
.vimrcи вызвать его с помощью:call CloseAllBuffersButCurrent().удобство карты:
nmap <Leader>\c :call CloseAllBuffersButCurrent()<CR>
здесь плагин что делает именно это и немного больше!
проверить закрыть-буферов.ВИМ
Как насчет просто:
ctrl-w o
(СПАСИБО https://robots.thoughtbot.com/vim-splits-move-faster-and-more-naturally)
мне нравится
1,100bd(предложено juananruiz), который, кажется, работает для меня.добавил
quit!к моему отображению, чтобы дать мнеnnoremap <leader>bd :1,100bd<CR> nnoremap <leader>bdq :1,100bd<CR>:q!<CR>это убивает все буферы и выключает Vim, что я искал в основном.
Comments