2010-02-24 7 views
6

Tengo dos comandos de búsqueda/reemplazo que me encuentro ejecutando en vim con bastante frecuencia para limpiar el código html y poder copiarlo y pegarlo en línea. Los comandos son:VIM: cómo agregar el comando buscar/reemplazar a vimrc y asignar a un acceso directo

:%s!<!\&lt;!g 
:%s!>!\&gt;!g 

quería una manera de que pudiera trazar ambos comandos para ejecutarse juntos ... he hecho un poco la búsqueda de cómo utilizar los comandos :map en vimrc, sin embargo, no puedo ver cómo combinar las dos líneas en un solo comando que se ejecuta con una sola pulsación de tecla (o una sola secuencia de trazos).

Gracias!

Respuesta

10

Usted puede poner los comandos en una sola línea separadas con una barra.

:%s!<!\&lt;!g|%s!>!\&gt;!g 

Pero tendrá que escapar de ella en el comando map

:map <F3> :%s!<!\&lt;!g\|:%s!>!\&gt;!g<CR> 
+0

Esto es casi correcto. En Vim, el segundo comando no se ejecutará si el primer comando comete errores (lo que sucederá si el primer comando no encuentra coincidencia). Para suprimir este comportamiento, agregue una bandera 'e' de la siguiente manera:': map :% s! ! \ >! Ge ' – pjb

0

No lo he probado, pero ¿no puedes ponerlo en la misma línea, separado por "<CR>"?

1
:map <F3> :%s!<!\&lt;!<cr>:%s!>!\&gt;!<cr>  

, por supuesto, se puede sustituir por cualquier tecla que desea

+0

Esto no funcionó si tenía un par de seguidas ... por ejemplo: '>>>' solo reemplazaría al primero y luego pasaría a la siguiente línea. – thornomad

+1

Eso es solo porque falta el modificador 'g'. – nickd

+0

Ah, lo siento, estoy demasiado acostumbrado a tener 'set gdefault' en mi .vimrc –

1

Si está utilizando esta búsqueda/patrón a entidades codificar HTML sustituir, es posible que desee revisar la unimpaired plugin. Entre otras cosas, esto proporciona accesos directos para encoding and decoding cadenas XML, URL y C.

3
 
:TOhtml 

creará un nuevo buffer que contiene el tampón anterior HTML-izada, incluyendo escape de entidad (y resaltado de sintaxis, si tuviera que permitió). Consulte :h TOhtml para obtener más información.

Cuestiones relacionadas