2011-09-17 38 views
11

Quiero resaltar las líneas que quiero aplicar sangría/sangría inversa y aplicar sangría con la pestaña y la pestaña Mayús, respectivamente.Vim - Aplicar sangría a varias líneas con la pestaña

" for command mode reverse tab 
nmap <S-Tab> << 
" for insert mode reverse tab 
imap <S-Tab> <Esc><<i 
" for command mode multiple line reverse tab(doesn't work) 
nmap <Tab> i< 
" for insert mode multiple line reverse tab(doesn't work) 
imap <Tab> < 

" for command mode tab 
nmap <Tab> >> 
" for command mode multiple line tab(doesn't work) 
nmap <Tab> i> 
" for insert mode multiple line tab(doesn't work) 
imap <Tab> > 

Esto es lo último que necesito antes de estar dispuesto a usar vim como mi editor principal.

+1

Entonces? ¿Cuál es el problema exactamente? –

Respuesta

22

Para seleccionar y resaltar el texto, es necesario start using visual mode, (que suele hacer esta golpeando v) y seleccione el texto con el estándar motions (como h, j, k y l).

Para crear asignaciones para su uso en visual mode necesita :vmap ...

:vmap <Tab> > 
:vmap <S-Tab> < 

Pero, ¿por qué necesita para crear un mapeo para esto?

En visual mode, < desplazará las líneas seleccionadas hacia la izquierda y > hacia la derecha.

A veces es mejor aprender las teclas Vim (o incluso Vi), y luego puede usar cualquier instalación, no solo la de su .vimrc.

Por ejemplo, usted ha puesto:

imap <Tab> < 

Esta es una mala idea. Esto hará que sea más difícil para que inserte un caracter de tabulación en el texto (incluso ctrl +i no funcionará como yo esperaría), y cada vez que escriba pestaña va a insertar un < .

Edición feliz!

+0

Si uso mi mouse para resaltar, uso mi mano derecha. < and > están ambos en el lado derecho del teclado. También es por hábito ya que todos los editores que he usado hicieron esto. – deadghost

+1

@ user894091: ¿El * mouse *? ¿Has intentado usar el * teclado *? Descubrirás que puedes ir mucho más rápido de esa forma (¡con un poco de práctica)! – Johnsyweb

+0

Su recomendación es bastante buena. Voy a deshacerme de lo más destacado con el paradigma del mouse y la pestaña. ¿Sigues usando la tecla de tabulación para sangría de una sola línea o te has desconectado a> para eso también? – deadghost

5

En el modo de inserción se puede usar el control - d y de control - t para eliminar/añadir un guión (respectivamente).

Por lo tanto, reemplazar

imap <Tab> < 

con

imap <Tab> <c-d> 

y

imap <Tab> > 

con

imap <Tab> <c-t> 

En el modo visual puede resaltar un bloque y después haga clic en < o >, pero si desea que sea pestaña y cambio - pestaña, puede establecer con vmap como que tiene hecho para los demás.

+3

Eso sigue siendo una mala idea. ¿Cómo se inserta un carácter de tabulación? – Johnsyweb

+1

@Johnsyweb ① Quiero insertar un carácter de tabulación al menos dos órdenes de magnitud con menos frecuencia que quiero usarlo como un comando. ② Cuando haces lo que (o cualquier otro personaje que tengas ligado a algo) puedes usar ' + v ' para insertar una pestaña literal (o lo que sea). – Caleb

1

ponga esto en su .vimrc que es lo que quiere

:map <Tab> > 
:imap <Tab> <Esc> > 
:vmap <Tab> >gv 
:map <S-Tab> < 
:imap <S-Tab> <Esc> < 
:vmap <S-Tab> <gv 

GV después de los vmaps mantendrá sus aspectos más destacados. el mapa y los imaps te permitirán insertarlos en otros modos. No es como un compañero de texto, pero está llegando :)

Cuestiones relacionadas