VIM. C. В теле какой функции расположен курсор?


masterx - Posted on 14 Октябрь 2008

Изучая чужие исходники на С, иногда, курсор попадает в большую функцию не помещающуюся целиком в терминальном окне.
Требуется: максимально быстро определить в пределах какой функции находится курсор.
Варианты действий:
1.

  • Прыжок к заголовку функции
    [[[/code]
  • Прыжок назад в исходную позицию [code]''

2.
Берём из атачмента скрипт и записываем его в ~/.vim/plugin:

% cp Cfname.vim.txt ~/.vim/plugin/Cfname.vim

Получаем следующие горячие клавиши:

  • ff - В командной строке показывается прототип функции
  • fb - Прыжок к началу функции
  • fe - Прыжок в конец функции
  • ft - Прыжок в позицию, в которой курсор находился до fb и fe
  • fs - Включает новый статусбар, на котором (в режиме онлайн) отображается имя функции, в теле которой находится курсор. Данная фича заставляет очень сильно тормозить Vim, при редактировании больших файлов
  • fd - Отключает предыдущую фичу.
P.S. Скрипт изначально украден отсюда. Но там он, покамест, с багами, и работает во многих случаях некорректно. Поэтому , рекомендую воспользоваться исправленным скриптом из аттача.

ВложениеРазмер
Cfname.vim_.txt6.85 кб
0
Ваша оценка: Ничего

Скрипт не понимает, как минимум, c++ методов. А так штука полезная наверное, если код plain c.

К сожалению, есть несколько ситуаций в которых скрипт и в С ведет себя несовсем адекватно. Я уже "пристыдил" девелопера :) Он пока не ответил. Постараюь сам довести скрипт до ума.

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.