Impostazione dei nomi delle schede Terminale in OS X e utilizzando vim

1

Ssh regolarmente in un cluster Linux da un terminale OS X (El Capitan), a volte con più schede Terminale. Io uso bash e vim.

Mi piacerebbe fare quanto segue:

  • mentre ssh'd, imposta il titolo della scheda Terminale sulla directory di lavoro corrente usando PROMPT_COMMAND='printf "\e]1;"'basename $PWD'"\a"'
  • durante l'utilizzo di vim, imposta il titolo della scheda Terminale su "vim - FILENAME"

Ecco i miei problemi:

  • Se faccio let &titlestring = "vim — " . expand("%:t") e set title in .vimrc, cambia il titolo del terminale finestra , non il titolo della scheda. Se non setteggio separatamente il titolo della scheda (parametro 1), il titolo della scheda rispecchia il titolo della finestra (parametro 2), ma non appena ho impostato il titolo della scheda, "disaccoppia" dal titolo della finestra.
  • Se eseguo un comando esterno in .vimrc con :! , viene visualizzata una finestra di dialogo "Press ENTER" che è noiosa.
  • Se utilizzo :silent ! in .vimrc , il mio prompt Terminale termina nella parte inferiore dello schermo dopo essere uscito da vim. Io veramente non voglio perdere tempo con il salvataggio della posizione del prompt e resettarlo ogni volta che voglio usare vim.
  • Se definisco nella mia .bashrc la seguente funzione:

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

    quindi il mio terminale si blocca dopo aver chiamato vim dalla riga di comando. Chiamando la funzione vvim invece funziona, ma non voglio digitare vvim per sempre. Voglio alias vim .

Quindi mi sembra bloccato. Qualsiasi consiglio sarebbe molto apprezzato. Grazie in anticipo!

    
posta Riju Dasgupta 24.02.2016 - 17:34
fonte

1 risposta

2

Bene, ho risolto il mio problema. Non riesco a programmare 101.

Definendo vim come una funzione e quindi chiamando vim, ho impostato un ciclo ricorsivo infinito. Nessuna meraviglia che il mio terminale si sia schiantato. Ho bisogno di chiamare il "vero" Vim, il vero eseguibile. Questo ha fatto il trucco:

function vim
{
    printf "\e]1;"'basename "$1"'"\a"
    /usr/bin/vim "$1"
}
    
risposta data 24.02.2016 - 19:44
fonte

Leggi altre domande sui tag