Configurando os nomes das guias do Terminal no OS X e usando o vim

2

Eu regularmente ssh em um cluster Linux a partir de um terminal OS X (El Capitan), às vezes com várias guias do Terminal. Eu uso bash e vim.

Gostaria de fazer o seguinte:

  • enquanto ssh'd, defina o título da guia Terminal como o diretório de trabalho atual usando PROMPT_COMMAND='printf "\e]1;"'basename $PWD'"\a"'
  • ao usar o vim, defina o título da guia Terminal como "vim - FILENAME"

Aqui estão meus problemas:

  • Se eu faço let &titlestring = "vim — " . expand("%:t") e set title em .vimrc, ele altera o título Terminal , não o título da guia. Se eu não definir separadamente o título da tabulação (parâmetro 1), o título da tabulação espelha o título da janela (parâmetro 2), mas assim que eu definir o título da tabulação, ele "desacopla" do título da janela.
  • Se eu executar um comando externo em .vimrc com :! , receberei uma caixa de diálogo "Pressione ENTER" que é irritante.
  • Se eu usar :silent ! em .vimrc , meu prompt do Terminal será exibido na parte inferior da tela após sair do vim. Eu realmente não quero mexer com salvar a posição de prompt e redefini-la toda vez que eu quiser usar o vim.
  • Se eu definir na minha .bashrc a seguinte função:

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

    então meu terminal trava ao chamar vim da linha de comando. Em vez disso, chamar a função vvim funciona, mas não quero digitar vvim forever. Quero alias vim .

Então eu pareço preso. Qualquer conselho seria muito apreciado. Obrigado antecipadamente!

    
por Riju Dasgupta 24.02.2016 / 17:34

1 resposta

1

Bem, resolvi meu próprio problema. Eu falho na programação 101.

Definindo o vim como uma função e, em seguida, chamando o vim, eu configuro um loop recursivo infinito. Não admira que meu terminal tenha caído. Eu preciso chamar o vim "real", o executável real. Isso fez o truque:

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