Янки все объявления функций

Что-то, что мне часто приходится делать, это убедиться, что у меня есть прототипы для всех моих функций в моем C-коде в верхней части файла. Какой способ быстро выбрать все объявления функций в файле .c с помощью vi / vim, чтобы я мог их выдернуть и вставить в начало файла?

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

  • Настроить vim's: сделать, чтобы переключаться или открывать вкладки при ошибке
  • Может ли vim редактировать удаленный файл с правами root?
  • Откройте файл, полученный в результате команды в vim
  • Как я могу отобразить приглашение режима вставки слева при использовании zsh с плагином в режиме vi?
  • Невозможно получить vim для распознавания unicode
  • Как написать любой Unicode-ключ без предварительно запрограммированного ключа для него в kbd?
  • Копировать / вставить через vim без X
  • Довольно печатать в VIM?
  • One Solution collect form web for “Янки все объявления функций”

    Начните чуть выше первой функции и перейдите к открывающей скобке с помощью ]M Теперь вы можете перейти к следующему с ]}]M ( ]} = закрывающая скобка, затем ]M снова), которая немного длинновато, поэтому сопоставьте это с f-ключом:

     :nmap <F9> ]}]M 

    Если вы используете отступы стиля «goldilocks», например:

     void foo (int bar) { 

    Это приведет вас к той же строке, что и подпись, если предположить, что все это на одной строке. Если вы используете немного более сумасшедшие, но гораздо более распространенные стили K & R, Allman или GNU, вы будете одной строкой вниз, и в этом случае вы действительно хотите:

     :nmap <F9> ]}]Mk 

    k перемещается на одну строку вверх. В первой функции yank строка в именованный буфер, я буду использовать «p» для прототипа, так что "pyy ( yy для« yank line »). В последующих функциях вы хотите добавить в этот буфер путем капитализации имя: "Pyy .

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

     :nmap <F9> ]}]Mk"Pyy 

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

    После того, как вы приобретете все из них, вы можете вставить этот буфер с помощью "pp – второй p для« буфера вставки ». Если вы используете стиль goldilocks, вам теперь необходимо :s/ {$/;/ the lines.

    Linux и Unix - лучшая ОС в мире.