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

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

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

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.

  • Использование grep для перечисления определенных строк из файла
  • Как выделить текущую строку и курсор в .vimrc?
  • Какова точка режима виртуальной замены в Vim?
  • Сопоставление слов, содержащих символы за пределами a-zA-Z
  • sed регулярное выражение ведет себя иначе, чем в vim и perl?
  • Применение изменения к каждой строке?
  • Установка VIM с поддержкой Python локально без sudo
  • Как получить хвост -f с цветным выходом с помощью vim?
  • Почему vim не применяет эти цветовые переменные в моей конфигурации?
  • создание плагинов vim
  • Vim printoptions не будет принимать два варианта одновременно
  • Как вставить переменную vimscript и строку в vim искать и заменять
  • Linux и Unix - лучшая ОС в мире.