vodka sangria refresco preparar preparada peruana ingredientes con como casera casa argentina vim

sangria - Vim: sangría con un espacio(sin espacios de ancho de cambio)



sangria preparada refresco (6)

La sangría predeterminada de los comandos de sangría VIM por espacios de ancho de cambio

p.ej

>> Indent line by shiftwidth spaces << De-indent line by shiftwidth spaces

¿Hay alguna forma de sangrar con uno o n (donde n! = Ancho de cambio) espacio (s)?

Una forma de hacerlo es seleccionar verticalmente una columna en el bloque con Ctrl+V , luego, I para insertar verticalmente y luego escribir un space y <Esc> . Pero hay una manera mejor?


Coloque marcas (''a'' y ''b'') entre el código que desea sangrar:

<position cursor at top of block> m a <position cursor at bottom of block> m b

Realice un comando de reemplazo de modo que cada carácter de nueva línea entre sus marcas se reemplace por el número de espacios deseados (en este ejemplo, 2 espacios):

:''a,''bs/^/ /g


No estoy seguro de que haya una mejor manera. Pero, hay algunas maneras en que podrías hacerlo (que de todos modos puedo pensar) ...

Su solución Visual Block

Como dijo: presione Ctl-V seleccione las líneas que desea, presione I para insertar e ingrese la cantidad de espacios.

Buscar

Similar a lo anterior pero un poco más flexible: puede usar con el comando vip ''seleccionar párrafo'', o cualquier rango realmente: presione v o vip o lo que tenga que seleccionar el rango, y el tipo :s/^/{n spaces} donde {n espacios} es el número de espacios que desea insertar.

Es un poco más detallado, pero funciona bastante bien para casi cualquier rango. Diablos, si quisieras hacer todo el archivo, podrías hacer Ctl-A o lo que tienes (dependiente del sistema operativo) y aplicar sangría a todo el archivo (o simplemente omitir todo el modo visual y simplemente hacerlo en modo comando ... como en :1,$s/^/{n spaces}

Tenga en cuenta que no tiene que incluir la tercera barra en s /// ya que no está poniendo etiquetas al final.

Global

Tal vez quieras solo sangrías que coincidan con algún patrón. Diga ... Todas las líneas que contienen foo. No hay problema: escriba :g/foo/s/^/{n spaces}

Global es especialmente útil si se trata de secciones de varias líneas con un patrón similar. Puede escaparse al terreno de modo normal y seleccionar las líneas que desea y :g/foo/norm Vjj:s/^/{n spaces}Ctl-V{Enter} sangría en consecuencia:: :g/foo/norm Vjj:s/^/{n spaces}Ctl-V{Enter} . Poco más complicado con ese Ctl-V{Enter} adicional Ctl-V{Enter} al final, pero útil bajo ciertas circunstancias.

Use tabstop y shiftwidth

Sí, si lo haces mucho, lo haré :set ts=2 y :set et y :set sw=2 y usa >> y << todas formas ...

Hacer una función

De acuerdo, así que aún no es lo suficientemente breve y por alguna razón necesitas hacer esto mucho y no puedes soportar jugar con las configuraciones de sw , et y ts . No hay problema, solo escribe una función rápida y dale un mapeo de localleader :

function! AddSpace(num) range let s:counter = 0 let s:spaces = '''' while s:counter < a:num let s:spaces .= '' '' let s:counter = s:counter + 1 endwhile execute a:firstline .'',''. a:lastline .''s/^/''. s:spaces endfunction :map <LocalLeader>i :call AddSpace(3)Ctl-V{enter}

Tal vez solo saber más de una forma de hacerlo es mejor que solo saber uno. Después de todo, a veces la mejor solución depende del problema :)


Para cambiar el número de caracteres de espacio insertados para la sangría, use la opción shiftwidth :

:set shiftwidth = <number>

Mire aquí para más details .

También puede agregar eso a su archivo .vimrc .



Tuve que degradar por un número determinado de espacios, amount , dentro de un script de vim. Esto funcionó:

let sw_setting = &shiftwidth set shiftwidth=1 exe "normal v" . amount . "<" let &shiftwidth = sw_setting

Un efecto secundario es que restablece la última selección del modo visual. En su lugar, es posible que desee editar la línea exe... de modo que ejecute "<<" veces repetidas en modo normal. Es decir: en lugar de normal v3< , normal <<<<<< , si la amount es 3.


Sangra un bloque de código en vi por tres espacios con modo Visual Block:

  1. Seleccione el bloque de código que desea sangrar. Haga esto usando Ctrl + V en modo normal y flecha abajo para seleccionar texto. Mientras está seleccionado, ingrese ":" para dar un comando al bloque del texto seleccionado.

  2. Lo siguiente aparecerá en la línea de comando :''<,''>

  3. Para establecer la sangría en 3 espacios, escriba le 3 y presione enter. Esto es lo que aparece:: :''<,''>le 3

  4. El texto seleccionado se sangra inmediatamente a 3 espacios.

Sangra un bloque de código en vi por tres espacios con modo Visual Line:

  1. Abra su archivo en VI.
  2. Pon el cursor sobre algún código
  3. Estar en modo normal, presione las siguientes teclas:

    Vjjjj:le 3

Interpretación de lo que hizo:

V significa comenzar a seleccionar texto.

jjjj flechas hacia abajo 4 líneas, resaltando 4 líneas.

: le dice a vi que ingresará una instrucción para el texto resaltado.

le 3 significa sangría texto resaltado 3 líneas.