Как я могу переназначить номер буфера в VIM? - PullRequest
15 голосов
/ 10 февраля 2010

Я думал, что vim обладает всеми возможностями, пока не захотел избавиться от буферов в списке и повторно использовать их для чего-то другого. Например, если у меня есть

1 "f1.h"
2 "f2.h"
3 "f3.h"
4 "f1.cpp"
5 "f2.cpp"
6 "f3.cpp"

и я хочу заменить f1.h - f3.h чем-то другим, но в той же последовательности буферов:

1 "n1.h"
2 "n2.h"
3 "n3.h"
4 "f1.cpp"
5 "f2.cpp"
6 "f3.cpp"

Я не могу понять, как это сделать. Я могу сделать «1,3bd» и удалить буферы 1-3, или даже «1,3bw» и стереть их, но не вижу способа повторно использовать эти цифры без перезапуска vim. Подтверждает это vim-буфер faq на http://vim.wikia.com/wiki/Vim_buffer_FAQ.

Но я не хочу верить, что у vim действительно есть это ограничение, неужели нет никакого способа сделать это изнутри vim?

Ответы [ 3 ]

6 голосов
/ 11 февраля 2010

Вы не можете переназначить номера буфера в одном сеансе. Лучше всего взглянуть на альтернативы vimscript.

Один обозреватель буфера, который обрабатывает сортировку по самым последним используемым файлам (и может удалять буферы): Обозреватель буферов / Браузер .

На vim.org есть множество других сценариев переключения буферов, которые отвечают их различным потребностям авторов. Или же вы можете свернуть свои собственные с некоторыми сопоставлениями.

Я придумал это для Джанго.

http://code.djangoproject.com/wiki/UsingVimWithDjango#Mappings

Это дает мне быстрый доступ двумя / тремя нажатиями клавиш к 20 стандартным именованным файлам относительно каталога приложения. Вы можете придумать что-то для своего проекта по этим направлениям.

Мои отображения \1, \2, \3 и т. Д., Поэтому числовая парадигма все еще там.

Я также сопоставил \vr для ~ / .vimrc и \br для ~ / .bashrc .

Главное, что это может и должно быть очень эффективным процессом.

3 голосов
/ 07 сентября 2016

Вот ленивый способ сделать это (не требует изучения чего-то нового):

  • Сохранить сеанс в файл в текущем рабочем каталоге или где бы вы ни работали:
:mksession Session.vim
  • Редактировать Session.vim. Найти список открытых буферов (строки, начинающиеся с badd).

  • Переставьте строки по своему вкусу.

  • Закрыть vim.

  • Запустите vim, используя флаг -S и файл сеанса:

$> gvim -S Session.vim

Ваши буферы будут последовательно перенумерованы в порядке их размещения.

0 голосов
/ 10 февраля 2010

Я бы рекомендовал вместо этого использовать вкладки (из vim 7). Вы можете свободно перемещать их с помощью tabm и открывать новые с помощью tabe или tabnew. Плюс, это более очевидно, что происходит. Вы также можете запустить vim с несколькими открытыми вкладками, используя -p (IIRC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...