Как переключиться в буфер, где файл с заданным именем открыт в Vim?

#vim

#vim

Вопрос:

Есть ли в Vim функция, которая переключится в буфер? Например, если я знаю, что у меня есть TODO.txt файл, открытый в каком-то окне на какой-то вкладке, я хотел бы перейти на эту вкладку и сфокусировать это окно. Возможно ли это?

Ответ №1:

set swb=useopen,usetabe установит make :sb [number] или :sb [pattern] переключится на открытое окно на любой вкладке.

Комментарии:

1. Hrm… Либо все изменилось в 7.3 (я на 7.2), либо swb не совсем делает то, что я хочу. В 7.2, похоже, что swb проверяется только при переходе к ошибкам и использовании quickfix и прочего. Когда у меня есть set swf=useopen,usetab , запуск :b foo по-прежнему заменяет текущее окно соответствующим буфером foo .

2. @David Wolever, вы абсолютно правы. Вы должны использовать :sb вместо :b . Я исправил сообщение.

Ответ №2:

Я считаю, что это :drop filename

Комментарии:

1. Хммм… Закрыть, хотя для этого требуется полный путь к файлу, что в некотором роде отстой, если у вас открыта куча файлов (где, как, с буферами, вы можете довольно легко заполнить табуляцию).

Ответ №3:

Я использую

  :buf TODO
  

вам нужна уникальная идентифицирующая часть имени файла буфера. Вы можете использовать табуляцию-завершение, хотя 🙂

О, IC, только что отметил, что вы хотите активировать соответствующую вкладку. Sry