Estoy tratando de averiguar qué es una función bash (o vim). Aquí está el escenario. Estoy en una terminal de bash, luego edito algo con vim, luego salgo de nuevo a bash. En algunos terminales, la pantalla de sesión vim desaparece para mostrar la actividad previa de bash shell (¿esto es lo que quiero?).
En otros, el búfer de la pantalla de sesión vim permanece (ocultando la actividad de bash shell anterior). Tendré que borrar la pantalla o esperar hasta que mi actividad bash empuje ese búfer de sesión vim fuera de la pantalla.
¿Cómo puedo controlar este comportamiento para reemplazar el búfer de sesión vim con actividad de bash anterior?
Gracias Tim
Respuestas:
Vim envía
t_ti
yt_ks
al terminal cuando se inicia una sesiónt_te
yt_ke
cuando finaliza. Las secuenciast_ti
yt_te
hacen que el terminal cambie a su pantalla alternativa.En su
~/.vimrc
archivo, puedevim
dejar el documento en pantalla cuando salga incluyendo esta línea:Si tiene una línea similar a esa, eliminarla debería hacer que el contenido del terminal anterior aparezca cuando salga
vim
.fuente
Una causa de este problema puede ser usar el programa
screen
. Encuentro que cuando estoy en unascreen
sesión, vim no puede devolver el estado del terminal.No estoy seguro si es específico de la pantalla o del combo screen / vim en Ubuntu 15.10. Supongo que por la misma causa descrita anteriormente,
screen
tiene una tapa de término diferente.fuente
altscreen on
al archivo ~ / .screenrc resuelve el problema de la pantalla.Simplemente agregue una línea a su
~/.bash_profile
archivo para exportar TERM como xterm cada vez que inicie sesión. Haz lo siguiente;Ahora, la próxima vez que inicie sesión, su problema se solucionará, y si no desea volver a iniciar sesión, puede hacer una de ...
fuente
export $TERM
?export
exporta el nombre (por ejemplo,TERM
en este caso) como una variable de entorno en lugar de una variable local. Si usóexport $TERM
en este ejemplo, la$TERM
var se resolvería yxterm
establecería la var env$xterm
, que probablemente no esté definida. Buena pregunta, siempre me parece mal también.Tim Ambas respuestas anteriores son correctas. Vim cambia el terminal a una "pantalla alternativa" si la capacidad para hacerlo está definida en la entrada de termcap para $ TERM.
Usted dice "en algunas terminales (... funciona bien ...)" y "en otras (... funciona mal ...)"
¿Está ejecutando exactamente el mismo emulador de terminal para todos esos terminales?
Por ejemplo, en la caja de Linux de mi casa, tengo gnome-terminal, xterm, Konsole, yakuake, y probablemente algunos más que he olvidado, junto con los "terminales virtuales" asociados con el ctrl-alt-F1 ... ctrl-alt-F6 más o menos. La mayoría de estos pueden funcionar con la entrada de termcap "estándar" para "xterm", excepto los terminales virtuales que tienen una definición de terminal llamada "linux".
Verifique el emulador de terminal en sí y el valor de $ TERM en terminales que funcionan y en los que no, para ver qué hay de diferente. Además, si a veces ha iniciado sesión como un usuario diferente, eso podría ser el centro del problema, ya que cada usuario tiene su propio .bashrc, varias configuraciones pueden diferir de un usuario a otro.
¡Espero que ayude!
-pbr
fuente
Esto tiene que ver con su terminal y la configuración de su máquina relacionada con la información del terminal. Una solución portátil es usar GNU Screen. Abra una ventana para Vim y otra para Bash, separando así las dos sesiones. Si está utilizando un terminal gráfico como xterm en X11, Gnome Terminal en Gnome o Terminal.app en OS X, puede abrir una nueva ventana o pestaña para obtener el mismo efecto.
fuente