2011-06-05 930 views
7

Tengo una lista de expresiones regulares que me gustaría ejecutar en mis archivos de código C. Son cosas sencillas de formato y me ahorrarían problemas mientras mi código es revisado.Ejecutando un conjunto de expresiones regulares en VI

Aquí están

Esto quita 2 o más líneas en blanco en una sola línea en blanco

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

este complemento espacio faltante al final del comentario por ejemplo,/* bla */a/* bla bla */

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

este complemento falta de espacio en el inicio del comentario por ejemplo/bla bla/a/* bla */nota que ignora/**

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

elimina las líneas en blanco después de abrir corsé {

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

elimina las líneas en blanco antes llave de cierre}

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

en los comentarios añade un espacio después de la coma si falta TODO lanza y error E16 si no coincide ningún patrón

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

Los he guardado en un archivo llamado fix.txt. ¿Hay alguna manera de poder ejecutarlos desde VI uno tras otro? algo así como

:run fix.txt ? 

Respuesta

6

Tienes que ejecutar:

:source fix.txt

Ver :help :source.

0
" 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> 
+0

Debe usar 'nnoremap'. – ZyX

Cuestiones relacionadas