Как я могу заставить vim показывать текущий класс и метод, который я редактирую

15

Кто-нибудь знает, возможно ли (или известно о существующем скрипте или плагине vim), который может создать «строку состояния», которая отображает имя текущего класса и метода (или функции), который я редактирую?

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

dcrosta
источник

Ответы:

7

Этот скрипт помещает имя текущей функции в строку заголовка и / или строку состояния. Он использует ctags для генерации списка тегов для текущего файла и предполагает, что тег, предшествующий расположению курсора, является именем текущей функции. Поскольку он использует ctags, его можно настроить для работы с различными языками, даже структурированными текстовыми файлами. На практике это хорошо работает, но имеет некоторые ограничения. Если ничего другого, это может дать вам отправную точку для взлома.

garyjohn
источник
6

Это будет работать, если вы установите плагины авиакомпании и tagbar . Эти два плагина интегрируются автоматически, и в строке состояния отображается текущая функция. Если вы хотите иметь полную иерархию объектов (например, class + method), вам необходимо настроить это в вашем .vimrc:

let g:airline#extensions#tagbar#flags = 'f'  " show full tag hierarchy

Возможно, вам придется настроить файл тегов для панели тегов, чтобы определить текущую позицию кода, если вы еще не используете ctags. Если вы еще не знаете об этом, вот краткое введение в ctags .

Карл Бартел
источник