Обсудим команды для окна предпросмотра — есть такая возможность в Вим.
В Вим есть особые виды окон, например окно справки. Если оно открыто и вы запросили новую справку, она откроется в том же окне. И специальные команды для него есть. Например, helpclose.
Ещё особым является окно истории команд.
А есть окно предпросмотра. Технически это просто окно, но у него свое поведение и свои команды. Оно обычно маленькое и его цель — дать возможность посмотреть, что в другом файле (заголовочном, например). Курсор остается в том окне, где был, а закрыть окно предпросмотра можно, не переходя в него. Это и есть предпросмотр. Но при необходимости все можно: и перейти в окно, и работать там.
На каждой вкладке оно может быть только одно, и открытое используется повторно. Его высота равна previewheight (по умолчанию 12 строк) и эта высота не меняется при открытии/закрытии других окон (выставлен флаг winfixheight).
Закрыть окно можно как обычно, но есть и специальные команды: <C-W>z, <C-W><C-Z>, :pclose. Все делают одно и то же: закрывают окошко предпросмотра. Это удобно, потому что можно закрыть именно его, а не что-нибудь другое по запарке, и можно закрыть без перемещения курсора в него. Не отрываясь от работы.
Если у вас есть список тэгов, то можно не переходить на тэг, а посмотреть его в окне предпросмотра: команда :ptag, которой надо указать имя искомого (обычно функции, или класса, иногда переменной). Можно не указывать имя, а использовать то, что под курсором: <C-W>}. Повторитель задает высоту окна, преодолевая previewheight. Это очень полезно, потому что часто надо просто увидеть определение, и больше оно не нужно.
Можно просто просмотреть какой-то файл, без тэгов: pedit. Открывает файл по имени, можно указать кодировку и прочие настройки.
Можно указать и команду, которую надлежит выполнить. Обычно при открытии файла это не нужно — откроешь и сделаешь — но здесь это полезно. Команды указаны после знака + (а опции вроде кодировки — после ++). Пример (не просто открыть, но и найти что надо):
:pedit +/my_function source_code.f
Команда psearch ищет шаблон в файле и открывает найденную строку (и несколько строк до и после) в окне предпросмотра. Шаблон обрамлен косыми чертами /.../, которые можно опустить, если ищется целое слово. Можно указать восклицательный знак, тогда шаблон ищется внутри комментариев. Без него комментарии игнорируются — осторожно! Это касается всех поисковых команд. Что такое комментарии — можно настроить.
Можно указать диапазон строк, чтобы искать только в них.
Попробуйте такую автокоманду (из Справки):
:au! CursorHold *.[ch] nested exe "silent! psearch " . expand("<cword>")
Она покажет в окошке предпросмотра (которое можно держать все время открытым) слово, на котором задержался курсор. Время задержки указано в опции updatetime. Ключевое слово nested допускает выполнение других автокоманд. А silent! подавит сообщение об ошибке, если поиск не удался.
Отключить эту автокоманду можно как обычно: :au! CursorHold
Удачи, коллеги!