Как должен работать параметр «switchbuf»?

10

Недавно я обнаружил эту опцию switchbufи попытался ее использовать, но не могу сказать, не понимаю ли она, как она должна работать, или она на самом деле не работает на моем Vim.

О различных возможных значениях, документ говорит:

useopen Если включено, перейдите к первому открытому окну, которое
              содержит указанный буфер (если он есть).
usetab Как «useopen», но также учитывайте окна на других вкладках.

Затем я использовал set switchbuf=useopen,usetabи следующие команды в новом экземпляре vim:

  • Откройте первый буфер :e file1
  • Разделить экран :split
  • Откройте второй буфер :e file2
  • Вернитесь к первому буферу :e file1(я также использовал :bN)

Последние команды для перехода в первый буфер открывают его во втором разделении. Из того, что я понимаю из документа, команды должны поместить курсор в первое разделение, где буфер уже открыт благодаря useopen. Также поведение такое же, когда я пытаюсь использовать те же команды с вкладками вместо разделений.

  • Это ожидаемое поведение?
  • Если да, не могли бы вы объяснить, что должен делать этот вариант?
  • Если нет, я знаю, что мне придется отлаживать свой, .vimrcно, может быть, есть общие настройки, которые мешают switchbuf?
statox
источник

Ответы:

10

'switchbuf'учитывается только командами быстрого исправления (например :cc) и командами разделения буфера (например :sb).

Не влияет :bufferи на другие «обычные» команды буфера.

romainl
источник
1
А ну понятно. Как сказано в первой This option controls the behavior when switching between buffers.и только в нескольких строках, упоминаются команды быстрого исправления, и sbя подумал, что это дополнение к обычным командам буфера. Спасибо!
statox