texto - vim tutorial
¿Cómo puedo insertar un carácter de pestaña real en Vim? (2)
Cuando tengo mi vimrc aquí:
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab
set smarttab
Y tengo el complemento supertab instalado. Cada vez que estoy en el modo de inserción, presiono la pestaña, muestra la autocompletación, pero a veces me gustaría insertar un carácter de tabulación real en una cadena literal como. Entonces, ¿qué quiero decir cada vez que presiono tabulación entre comillas dobles literalmente, debería ingresar un verdadero carácter de tabulación?
@Samnang: tengo una configuración similar a la tuya; desafortunadamente, la respuesta de Jason no funcionó, para mí.
Esta es una solución alternativa:
- Sustituye algunos caracteres (por ejemplo, un backtick: `) o caracteres (por ejemplo, una cadena alfanumérica única: zzz) donde quieras tu (s) pestaña (s)
Seleccione el texto (modo Visual) y haga una búsqueda / reemplazo,
:''s/`//t/g
Respuesta actualizada, inspirada en el comentario de @ Cyryl1972.
Inserte la pestaña al principio de todas las líneas (tenga en cuenta también: no es necesario seleccionar líneas, para ninguno de los siguientes códigos, como se incluye en la parte de la expresión que coincide con la línea):
:1,$s/^//t/1/
Pestaña inerte después de los primeros 10 caracteres en todas las líneas:
:1,$s/^/(./{10}/)//1/t/
Explicación - primera parte:
:1,$ Match from line 1 to end of file
^(.{10} Collect (preserve) all text from beginning of line to position 10
(you need to escape the parentheses, /( and /), as well the FIRST
(left) curly brace, only: /{ -- as it, { , appears to have special
meaning in regex when used for this purpose
Explicación - segunda parte:
/1 Add back the preserved text
/t Insert a tab
... y el resto de la línea también se restaura automáticamente.
Línea actual, solo:
:s/^//t/1/
Ejemplo: inserte la pestaña en la posición 10 (0-indexado) en las líneas 2-4:
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
:2,4s/^/(./{10}/)//1/t/
1234567890abcdefghij
1234567890 abcdefghij
1234567890 abcdefghij
1234567890 abcdefghij
1234567890abcdefghij
Referencias ():
- Reemplaza el personaje en una posición específica con otro personaje usando la expresión regular, Vim
- ¿Cómo agrego un personaje en una posición específica en una cadena?
Referencias (otras):
Mientras está en modo de inserción o modo de comando (el indicador :
en la parte inferior del editor), escriba CTRL + V y luego TAB .
El uso de CTRL + V señala a Vim que debe tomar el siguiente carácter literalmente. Incluso en modo insertar.
ACTUALIZAR:
Como señaló Herbert Sitz, si gVim está en modo Windows (predeterminado), debe usar CRTL + Q en lugar de CTRL + V.