Configuración de nombres de pestañas de Terminal en OS X y uso de vim

Regularmente entro en un clúster de Linux desde una terminal OS X (El Capitán), a veces con varias pestañas de terminal. Yo uso bash y vim.

Me gustaría hacer lo siguiente:

  • mientras ssh'd, establezca el título de la pestaña Terminal en el directorio de trabajo actual usandoPROMPT_COMMAND='printf "\e]1;"`basename $PWD`"\a"'
  • mientras usa vim, establezca el título de la pestaña Terminal en "vim - NOMBRE DE ARCHIVO"

Aquí están mis problemas:

  • Si lo hago let &titlestring = "vim — " . expand("%:t")y set titleen .vimrc, cambia el título de la ventana de Terminal , no el título de la pestaña. Si no configuro por separado el título de la pestaña (parámetro 1), el título de la pestaña refleja el título de la ventana (parámetro 2), pero tan pronto como configuro el título de la pestaña, se "desacopla" del título de la ventana.
  • Si ejecuto un comando externo en .vimrc con :!, obtengo un cuadro de diálogo "Presione ENTRAR" que es molesto.
  • Si uso :silent !en .vimrc , mi indicador de Terminal termina en la parte inferior de la pantalla después de salir de vim. Realmente no quiero perder el tiempo guardando la posición del aviso y reiniciándola cada vez que quiero usar vim.
  • Si defino en mi .bashrc la siguiente función:

    function vim
    {
        printf "\e]1;"`basename "$1"`"\a"
        vim "$1"
    }
    

    luego mi terminal falla al llamar vimdesde la línea de comandos. En cambio , llamar a la función vvimfunciona, pero no quiero escribir vvimpara siempre. Quiero alias vim.

Así que parezco atascado. Cualquier consejo sería muy apreciado. ¡Gracias de antemano!

Respuestas (1)

Bueno, he resuelto mi propio problema. Reprobé la programación 101.

Al definir vim como una función y luego llamar a vim, configuré un ciclo recursivo infinito. No es de extrañar que mi terminal se bloquee. Necesito llamar al vim "real", el ejecutable real. Esto hizo el truco:

function vim
{
    printf "\e]1;"`basename "$1"`"\a"
    /usr/bin/vim "$1"
}
Este es un buen truco, pero sería realmente bueno poder vimejecutar el comando printf. En su versión, si cambiamos el archivo, como con el complemento Ctrl+P, el nombre de la pestaña no se actualizará.