9 ответов:
слово предостережения: "w не означает писать, но для wipeout!"
еще из руководств:
:bd
выгрузить буфер [N] (по умолчанию: текущий буфер) и удалить его из список буферов. Если буфер был изменен, это не удается, если только когда [!] указано, что в случае изменения потерянный. Файл остается незатронутый.
Если вы знаете, что делаете, вы также можете использовать :bw
:bw
Как |:bdelete|, но на самом деле удалить буфер.
Если это не очевидно из предыдущих ответов:
:bd закрыть текущий буфер. Если вы не хотите, чтобы захватить список буферов.
проверьте свой идентификатор буфера с помощью :буферы
вы увидите список буферов там, как
1 a.php 2 b.php 3 c.phpЕсли вы хотите удалить b.php из буфера
:2bwЕсли вы хотите удалить/закрыть все буферы
:1,3bw
вместо того, чтобы просматривать вывод команды :ls и удалять (выгрузить, стереть..) буфер, указав его номер, я нахожу, что использование имен файлов часто более эффективно.
например, после того, как я открыл пару .файл txt, чтобы освежить мои воспоминания о некоторых тонкостях.. скопируйте и вставьте несколько строк текста, чтобы использовать их в качестве шаблона.. так далее. Я бы набрал следующее:
:bd txt <Tab>отметим, что соответствующая строка не должна быть в начале файла имя.
выше отображается список имен файлов, которые соответствуют "txt" в нижней части экрана и сохраняет команду :bd, которую я изначально набрал, нетронутой, готовой к завершению.
вот пример:
doc1.txt doc2.txt :bd txtя мог бы вернуться к биту " txt " и ввести имя файла, которое я хочу удалить, но там, где это становится действительно удобным, мне не нужно: если я нажму клавишу Tab во второй раз, Vim автоматически завершит мою команду с первым матч:
:bd doc1.txtесли я хочу избавиться от этого конкретного буфера мне просто нужно нажать Enter.
и если буфер, который я хочу удалить, оказывается вторым (третьим.. так далее.) матч, мне нужно только продолжать нажимать клавишу Tab, чтобы сделать мой: BD цикл команд по списку матчей.
естественно, этот метод также может быть использован для переключения на данный буфер с помощью таких команд, как :b.. :сурьма.. так далее.
этот подход особенно полезен, когда "скрытые" Опция Vim установлена, потому что список буферов может быстро стать довольно большим, охватывая несколько экранов и затрудняя определение конкретного буфера, который я ищу.
чтобы максимально использовать эту функцию, вероятно, лучше всего прочитать следующий файл справки Vim и соответствующим образом настроить поведение завершения командной строки Tab, чтобы он наилучшим образом соответствовал вашему рабочему процессу:
:help wildmodeповедение, которое я описал выше, является результатом следующей настройки, которую я выбрал для ради последовательности, чтобы эмулировать завершение bash:
:set wildmode=list:longest,fullв отличие от использования номеров буферов, достоинством этого подхода является то, что я обычно помню, по крайней мере, часть данного имени файла, позволяющего мне напрямую ориентироваться на буфер, а не сначала искать его номер с помощью команды :ls.
использование:
:ls- перечислить буферы:bd#n- чтобы закрыть буфер, где #N-номер буфера (используйтеls, чтобы получить его)примеры:
удалить буфер 2:
:bd2
вы можете сопоставить следующий и предыдущий функциональные клавиши тоже, что делает велоспорт через буферы ветер
map <F2> :bprevious<CR> map <F3> :bnext<CR>от моего vimrc
как о
vim -O a aтаким образом, вы можете редактировать один файл слева и перемещаться по всему реж справа... Просто мысль, а не решение...
[EDIT: это было глупое предложение с того времени, когда я не знал Vim достаточно хорошо. Пожалуйста, не используйте вкладки вместо буферов; вкладки-это "макеты окон" Vim]
может быть, переключиться на использование вкладок?
vim -p a/*.phpоткрывает те же файлы во вкладках
gtиgTпереключать вкладки вперед и назад
:qзакрывает только текущую вкладку
:qaзакрывает все выходы и
:taboзакрывает все, кроме текущей вкладка
те, кто использует плагин навигации по буферу или дереву, например Buffergator или NERDTree, должны будут переключать эти расщепления перед уничтожением текущего буфера - иначе вы отправите свои расщепления в wonkyville
Я использую:
"" Buffer Navigation " Toggle left sidebar: NERDTree and BufferGator fu! UiToggle() let b = bufnr("%") execute "NERDTreeToggle | BuffergatorToggle" execute ( bufwinnr(b) . "wincmd w" ) execute ":set number!" endf map <silent> <Leader>w <esc>:call UiToggle()<cr>где "
NERDTreeToggle" в этом списке то же самое, что ввести:NERDTreeToggle. Вы можете изменить эту функцию для интеграции с вашей собственной конфигурацией.
Comments