Configuración de los nombres de las pestañas del terminal en OS X y usando vim

1

Regularmente, ssh en un clúster de Linux desde un Terminal OS X (El Capitán), a veces con múltiples pestañas de Terminal. Yo uso bash y vim.

Me gustaría hacer lo siguiente:

  • mientras ssh'd, establece el título de la pestaña Terminal en el directorio de trabajo actual usando PROMPT_COMMAND='printf "\e]1;"'basename $PWD'"\a"'
  • mientras usa vim, configure el título de la pestaña Terminal en "vim - FILENAME"

Aquí están mis problemas:

  • Si hago let &titlestring = "vim — " . expand("%:t") y set title en .vimrc, cambia el título de la 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 en cuanto configuro el título de la pestaña, se "desacopla" del título de la ventana.
  • Si ejecuto un comando externo en .vimrc con :! , aparece el cuadro de diálogo "Presione ENTRAR" que es molesto.
  • Si uso :silent ! en .vimrc , el indicador de mi Terminal termina en la parte inferior de la pantalla después de salir de vim. Yo realmente no quiero andar por ahí guardando la posición del indicador 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 se bloquea al llamar a vim desde la línea de comando. Llamar a la función vvim en su lugar funciona, pero no quiero escribir vvim para siempre. Quiero alias vim .

Así que me veo estancado. Cualquier consejo sería muy apreciado. ¡Gracias de antemano!

    
pregunta Riju Dasgupta 24.02.2016 - 17:34

1 respuesta

1

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

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

function vim
{
    printf "\e]1;"'basename "$1"'"\a"
    /usr/bin/vim "$1"
}
    
respondido por el Riju Dasgupta 24.02.2016 - 19:44

Lea otras preguntas en las etiquetas