Я изучаю 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
Вкладки не могут быть лучшим способом сделать то, что вы пытаетесь сделать. Когда файл открыт, он не обязательно открыт только на одной вкладке. Он открывается в буфере, который представляет собой концепцию, не привязанную к вкладке.
Фактически, вы можете открыть один и тот же буфер на нескольких вкладках (или даже на нескольких панелях на одной вкладке). Вкладка больше похожа на окно в один или несколько ваших открытых буферов.
Лучше узнать, как переключаться между буферами на текущей вкладке или панели. Просто предложение.