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

Я изучаю vim, и я только что узнал о методах. До этого я нашел полезным иметь все файлы исходного кода, над которыми я работаю, на своих вкладках. Когда я узнал о "глобальных" (заглавных) знаках, я подумал, что это отличный способ переключиться на вкладку, на которой уже открыт выделенный файл, и быстро перейти к нужному месту. Тем не менее, я узнал, что переключение на метку в другом файле просто изменяет файл, отображаемый текущей вкладкой, и это испортит настройку моих вкладок. Есть ли способ заставить метки работать с вкладками так, как я хочу?

Ответ 1

Проблема заключается в том, что команды mark-jumping предназначены для перехода к значению в текущем окне. Сначала вам нужно переключиться в новое окно, используя :sbuf или :tabnext или CTRL+W W. Если вы установили switchbuf=useopen,usetab, то сначала использовать :sbuf <otherfile>, чтобы перейти на другую вкладку, где открыт ваш файл. Но 'A не создаст для вас новое окно (или повторное использование существующего на другой вкладке).

Возможно, вы можете создать сопоставление для ' и `` which uses getpos() , setpos() ,: sbuf , and switchbuf`, чтобы перейти к существующему окну на другой вкладке, но это будет связано с написанием страницы vimscript.

См. :help switchbuf и :help getpos() и :help setpos().

Ответ 2

Вкладки не могут быть лучшим способом сделать то, что вы пытаетесь сделать. Когда файл открыт, он не обязательно открыт только на одной вкладке. Он открывается в буфере, который представляет собой концепцию, не привязанную к вкладке.

Фактически, вы можете открыть один и тот же буфер на нескольких вкладках (или даже на нескольких панелях на одной вкладке). Вкладка больше похожа на окно в один или несколько ваших открытых буферов.

Лучше узнать, как переключаться между буферами на текущей вкладке или панели. Просто предложение.