rtor delete commands cheats all linux bash vim

linux - delete - ¿Por qué no "historia | vim "¿trabajo?



vim shortcuts (3)

Quiero usar el Vim para ver el resultado del history (no en el shell). Creo que la history | vim history | vim funcionará (use el resultado del history como la entrada de vim ), pero regresa con:

$history | vim Vim: Warning: Input is not from a terminal Vim: Error reading input, exiting... Vim: Finished.

¿Alguien puede explicar esto?


Al conectarse a vim , está cambiando la secuencia de entrada estándar. Como vim es un programa interactivo, requiere que la entrada estándar sea la consola.

Si desea ver en vim, debe decirle que está leyendo el archivo de stdin (proporcionando el argumento - ):

history | vim -

Alternativamente, podrías usar más o menos :

history | more history | less

Estos dos últimos son preferibles. Si ingresas en vim , verá que tu "archivo" tiene modificaciones, por lo que no puedes salir con un comando straight :q . En su lugar, debe forzar la renuncia por :q! , que es un poco torpe

Por otro lado, puede salir más o menos simplemente escribiendo q . Eche un vistazo a la página de manual para estos dos programas. Los usarás mucho.

Según lo recomendado por Russell Silva en los comentarios, puede abrir vim en modo de solo lectura cuando lee de stdin. Solo proporcione el argumento -R . Entonces puede salir normalmente sin necesitar la anulación:

history | vim -R -



Esto me sucedió tratando de enviarlo a la consola de fondo (&)

Un script utilizado:

... vi "$file" & ... # change to just: vi "$file"

eliminando &, el problema desapareció.