Как изменить имя буфера vim

26

Можно ли изменить имя буфера в vim?

В частности, я использую Conque Shell для открытия оболочек в vim (каждая оболочка находится в буфере) и с несколькими оболочками, я вижу:

10: bash - 1
11: bash - 2

в моем списке буферов. Я хотел бы переименовать эти буферы с более значимыми именами (например, «mercurial» вместо «bash - 2»). Является ли это возможным?

Бартелеми
источник
Почему вы хотите изменить имя буфера? @Barthelemy
Pie

Ответы:

36

Вы можете использовать :file newnameдля изменения имени буфера.

От :help :file_f:

Устанавливает текущее имя файла в {name}. Необязательно! избегает усечения сообщения, как с :file.
Если у буфера действительно было имя, это имя становится alternate-fileименем. Незаполненный буфер создается для хранения старого имени.

Томас Фемель
источник
3
Спасибо. Но для меня это было удивительно, потому что я не мог найти эту команду, используя различные поиски Google.
Бартелеми
2
важно отметить, что это в основном меняет путь сохранения файла. Я надеялся на что-то вроде именования окон на экране, но это не сработало
JonnyRaa
2

Переименуйте текущий буфер с помощью :file <new-name>(или :f <new-name>):

:f[ile][!] {name}

Устанавливает текущее имя файла в {name}. Необязательный !позволяет избежать усечения сообщения, как с :file. Если у буфера действительно было имя, это имя становится именем альтернативного файла . Незаполненный буфер создается для хранения старого имени.

Рори О'Кейн
источник
1

Если в буфере уже есть имя файла, имя файла :fileне изменится, а будет изменено только альтернативное имя файла. Вам нужно очистить имя буфера, :0f[ile]чтобы иметь возможность его установить.

:e foo

:0f
:file bar
jonallard
источник