Supongamos que tengo el siguiente texto (el cursor está en el medio de la primera palabra "comenzar".
blah blah blah blah stuff stuff stuff
\\\begin{tabular}
{
|p{0.25\textwidth}
|p{0.2\textwidth}
|p{0.5\textwidth}
|}
\hline
Item & Type & Notes\\\hline
Text text text text text text text text &
Text text text text text &
Text text text text text text text text text text text text text text text text text
text text text text text text\\\hline
Installation instructions &
.txt / .html / TBD &
Installation help should be conspicuous but not the central item\\\hline
\end{tabular}
blah blah blah more stuff more stuff
Quiero cortar la mesa y moverla a otro lugar. Las líneas son en realidad mucho más largas, por lo que se ajustan varias veces y no puedo determinar fácilmente cuántas líneas quiero cortar.
Escribo d 2 / a r } / e ⏎ para eliminar hasta el segundo partido del "ar}" se detiene en la 'e'nd del patrón.
Pero esto se agarra desde el medio de la palabra 'comenzar' hasta el final de donde quiero cortar. Me gustaría tomar líneas completas y siento que debería haber un atajo para esto en menos de 6 teclas. No estoy usando Latex-VIM porque no me gusta mi instalación estándar de Windows de GVIM, así que no, no puedo (por lo que sé) agarrar fácilmente del \begin
al \end
. Me encantaría demostrar que estoy equivocado en eso.
Sí, esta pregunta es potencialmente un cruce de sitios de StackExchange, incluidos Tex, StackOverflow y Unix. Siéntase libre de sugerir un mejor sitio para preguntar esto.
V/ar}<CR>nx
debería hacer el trabajo.Respuestas:
Con un comando Ex:
Descompostura:
:{range}command{address}
..
pero se puede omitir como aquí, y terminamos con una coincidencia de patrones\end
.d
las líneas en ese rango.Con una combinación de búsqueda y marcas contextuales:
Descompostura:
\e
.d
elija desde aquí hasta la línea de la posición del cursor anterior.Con modo visual:
Descompostura:
\e
.d
elija las líneas en la selección.Variación del método anterior con un comando Ex en lugar de un comando de modo normal:
Descompostura:
\e
.:
, el'<,'>
rango se inserta automáticamente.d
elija las líneas en la selección.fuente
/\\e/;/\\e
entonces la segunda solución se convierte en/\\e/;/\\e<CR>d''
la tercera solución,v/\\e/;/\\e<CR>Vd
etc. La;
compensación lamentablemente no funciona en un rango. Deberías probar la sugerencia de benjifisher, es realmente genial.:,/\\e//\\e/d
.Esta es una de las características que obtienes con el complemento matchit, parte de la distribución vim estándar. Para fines de prueba, haga esto de manera interactiva; si te gusta, puedes hacerlo desde tu archivo vimrc:
Después de esos dos comandos (ya sea interactivamente o durante el inicio como parte de su archivo vimrc)
y luego, con el cursor en cualquier lugar
\begin{tabular}
, useV%
para seleccionar todo el entorno. No estoy seguro de si lo considerará un error o una característica, pero esto incluirá líneas enteras, lo que significa que obtendrá el "\\" al principio.Esto también debería manejar entornos anidados y líneas comentadas, correctamente.
Casualmente, el mantenedor de matchit.vim es el mismo que el mantenedor del ftplugin estándar para tex.
fuente
\begin{tabular}
línea, selecciona a}
. Si el cursor está en una línea como\node [block] (start) ...
en el medio de la palabranode
, se selecciona desde el cursor al]
..:setf tex
, presionando%
con el cursor en\\\begin{tabular}
saltos a la correcta\end{tabular}
$VIMRUNTIME/macros/
. Cuando me refiero al ftplugin "estándar" para tex, me refiero al que viene en la distribución vim estándar.%
, que es anulado por el complemento matchit. Por favor, preste atención al orden de los comandos en mi respuesta.