texto salir insertar editar curso con como comando borrar vim

salir - Ejecute un comando dentro de Vim desde la línea de comando



insertar texto vim (3)

Esto funciona:

gvim -c "set et|retab|wq" foo.txt

set et (= set expandtab ) garantiza que los caracteres de las tab reemplazados con la cantidad correcta de espacios (de lo contrario, la retab no funcionará).

Normalmente no lo uso, pero vim -c ... también funciona

EDITAR:

La solución dada anteriormente supone que la tabulación predeterminada de 8 es apropiada. Si, por ejemplo, se desea una tabulación de 4, use la secuencia de comandos "set ts=4|set et|retab|wq" .

¿Hay alguna forma de ejecutar un comando Vim en un archivo desde la línea de comando?

Sé que lo opuesto es verdad así:

:!python %

Pero, ¿y si quisiera :retab un archivo sin abrirlo en Vim? Por ejemplo:

> vim myfile.c :retab | wq

Esto abrirá miarchivo.c, reemplazará las pestañas con espacios, y luego guardará y cerrará. Me gustaría encadenar esta secuencia a un solo comando de alguna manera.

Sería algo como esto:

> vim myfile.c retab | wq


No es una respuesta directa a su pregunta, pero si desea reemplazar las pestañas con espacios (o hacer cualquier otra búsqueda / reemplazo de expresiones regulares) para obtener una lista de archivos, puede usar sed search / replace in situ:

sed -i ''s//t/ /g'' foo1.txt foo2.txt

o

ls *.txt | xargs sed -i ''s//t/ /g''

(En este ejemplo, estoy reemplazando cada carácter de tabulación con tres espacios).

NOTA: la bandera -i significa operar en el lugar.

De la página del hombre sed :

-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if extension supplied)


Tienes varias opciones:

  • -c "commands" : ejecutará comandos Ex a medida que los ingresó en la línea de comando.
    En su ejemplo: vim myfile -c ''retab | wq'' vim myfile -c ''retab | wq'' . Esto es lo que sugirió Firstrock.

  • -S "vim source file" : fuente de script vim dado
    (como ejecutar vim -c "source ''vim source file''" ):

    Si tiene un archivo script.vim contenga:

    retab wq

    Entonces puedes usar vim myfile.c -s script.vim (la extensión en realidad no importa)

  • -s "scriptin file" : reproducirá el contenido del archivo ya que contiene comandos de modo normal : si tiene script.txt contenga:

    :retab ZZ

    con un final de líneas que consiste en un único carácter ^M (por ejemplo, usted guardó el script usando :set fileformat=mac | w ), entonces puede ejecutar: vim myfile.c -S script.txt ( ZZ es otra forma de salir vim y guardar el archivo actual).
    Tenga en cuenta que puede grabar esos scripts con vim my_file -W script.txt , pero sufre un error si usa gvim (la GUI).