Pregunta

Una de las grandes fortalezas de Vim es objeto a seleccionar , oferta la manipulación rápida de palabras dentro de contenido, párrafos y delimitadores surtidos.

Por ejemplo,

vi{

seleccionará todo dentro de un par de llaves {}.

¿Hay alguna funcionalidad equivalente para la selección de un aquí documentar o heredoc:

<<<HTML
    ....
    ....
HTML;

Sobre la base de La respuesta de ErichBSchulz me ocurrió la siguiente para un heredoc interno de selección:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j

?<<<<CR>w    " find beginning tag (after <<<)
*k           " find matching end tag and go up 1 line
V            " enter visual mode
?<<<<CR>j    " find beginning tag and go down 1 line
¿Fue útil?

Solución

Pensando en los mensajes anteriores y tratando de tomar un paso más cerca. Éste no es fiable al 100% (es decir, se romperá si la etiqueta de inicio ocurre dentro del heredoc pero algo como:

?<<< "find begining
w    " go to starting tag
*    " find starting tag
v    " enter visual mode (could use Upper V to do an 'ambientish' object select 
n    " find end tag
e    " optional include end tag

Editar: Ken ha mejorado la secuencia que el anterior, por lo que le sugiero que utilice su mejor asignación de clave para una heredoc 'interior' seleccionar:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j

(esto se basa en heredocs estilo php)

Otros consejos

Para seleccionar heredoc de I suelen colocar el cursor en la primera línea, sobre la heredoc identificador y presione V *

V se iniciará una selección de línea, y * va a iniciar una búsqueda, ir a la siguiente coincidencia del identificador, al final de la heredoc ...

A heredoc <<'' terminado por una línea en blanco es fácil, si ya está en el inicio (?<<^M^M):. Selecciona v} de aquí hasta la línea de vacío

Por lo demás, en su ejemplo de lo mejor que puedo pensar es v/^HTML.

No es este plugin que te permite definir sus propios objetos de texto.

http://www.vim.org/scripts/script.php ? SCRIPT_ID = 2,100

Me imagino que sería bueno para definir una manera que se podría decir 'yih' (tirón en heredoc) por lo que no tiene que ir explícitamente al principio.

Tenga en cuenta que no he engañado un poco con esto por mí mismo.

Si lo que desea es seleccionar una imagen visual que pudiera.

 nnoremap <leader>ih ?HTML<cr>V/HTML<cr>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top