Quiero usar expresiones regulares de Perl en la línea de comando de vim. Por ejemplo, para poner en mayúscula las palabras de la línea actual, puede escribir:
:s/(\w+)/\u$1/g
Respuesta1
Puede filtrar cualquier línea o rango de líneas a través de un comando externo en vim, usando !. Por ejemplo, puedes hacer:
:.!perl -pe "s/(\w+)/\u\1/g"
que filtrará la línea actual a través de ese comando perl. (Aquí :
para ingresar al modo de línea de comando, y lo .
que sigue significa la línea actual; también puede especificar un rango de líneas o %
para todo el archivo, etc.)
Si desea utilizar los patrones de sustitución integrados de vim, lo más cerca que estará es usar la opción "muy mágica" de vim, \v, así:
:s/\v(\w+)/\u\1/g
ver :help pattern
y :help substitute
para más detalles. No creo que "muy mágico" sea idéntico a los patrones de Perl, pero está muy cerca. De todos modos, siempre puedes usar Perl si te sientes más cómodo con él, como se indicó anteriormente.
Respuesta2
También puedes usar:
/\v"your regex"
en lugar de:
/"your regex"
Respuesta3
No, no puedes usar expresiones regulares de Perl de esa manera. Para obtener ayuda para aprender los equivalentes de Vim para los componentes de expresiones regulares de Perl, consulte
:help perl-patterns
Sin embargo, puede utilizar Perl como filtro externo como lo explica frabjous. También puede ejecutar comandos Perl dentro de Vim usando la interfaz Perl, si su Vim fue compilado con esta +perl
característica. Ver
:help if_perl.txt
Respuesta4
Utilizar eleregex.vimenchufar. Es muy útil y no he tenido problemas con él.