Запуск набора регулярных выражений в VI - PullRequest
7 голосов
/ 05 июня 2011

У меня есть список регулярных выражений, которые я хотел бы запустить в моих файлах кода C. Они просто форматируют и избавят меня от проблем, пока мой код проверяется.

Вот они

это удаляет 2 или более пустых строки в одной пустой строке

:%s/\n\{3,}/\r\r/e

это добавить пропущенный пробел в конце комментария, например / / бла-бла * / to / * бла-бла * /

:%s/\([^ *]\)\*\//\1 \*\//gc

это добавить пропущенный пробел в начале комментария, например / / 1011 * бла-бла / to / * бла-бла * / обратите внимание, что он игнорирует / **

:%s/\/\*\([^  *]\)/\/\* \1/gc

удаляет пустые строки после открывающей фигурной скобки {

:%s/{\s*$\n\{2,}/{\r/gc

удаляет пустые строки перед закрытием фигурной скобки}

:%s/\n\{2,}\(\s*\)}/\r\1}/gc

в комментариях добавляет пробел после запятой, если отсутствуют броски TODO, и ошибку E16, если ни один из шаблонов не соответствует

:g/\/\*/ ,/\*\// s/,\([^ ]\)/, \1/gc

Я сохранил их в файле с именем fix.txt. Есть ли способ, которым я могу запустить их изнутри VI один за другим? что-то вроде

:run fix.txt ?

Ответы [ 2 ]

6 голосов
/ 05 июня 2011

Вы должны выполнить:

:source fix.txt

См. :help :source.

0 голосов
/ 05 июня 2011
" put this function in your vimrc file and call them with <leader>f 
" to more information read :help leader
" also read :help keepjumps
fun! FixSourceCode()
  :%s/\n\{3,}/\r\r/e
  :%s/\([^ *]\)\*\//\1 \*\//gc
  :%s/\/\*\([^  *]\)/\/\* \1/gc
  :%s/{\s*$\n\{2,}/{\r/gc
  :%s/\n\{2,}\(\s*\)}/\r\1}/gc
  :g/\/\*/ ,/\*\// s/,\([^ ]\)/, \1/gc
Endfun
nmap <silent> <leader>f :keepjumps call FixSourceCode()<cr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...