OS X 10.11 adiciona um recurso interessante ao Terminal.app que interpreta sequências de controle do formulário
ESC ] 6 ; file://hostname/<path-as-URL> BEL
como especificar o "documento" que está sendo editado ou visualizado no momento. Como exemplo, entrar
echo -e "\x1b]6;file://localhost/etc/passwd\a"
fará com que o título do terminal exiba o filename passwd
, que pode ser clicado com cmd + para obter uma trilha de navegação (um recurso do "título do documento" na maioria dos editores de arquivos no OS X). O padrão do OS X bashrc
já usa esta sequência para inserir o diretório de trabalho atual no título da janela.
Eu gostaria de saber como posso fazer com que o Vim produza essa sequência de escape específica sempre que editar um novo arquivo (e, idealmente, como desativá-lo quando a edição for interrompida - por exemplo, ao sair ou alterar o arquivo). Extensões para, por exemplo, less
e outros programas também seriam muito úteis.
Embora o URL tecnicamente deva ser codificado de maneira adequada, estou totalmente bem se não for - normalmente não edito arquivos com nomes de arquivo particularmente incomuns no Vim.
Responder1
Se você não se importa em desistir do title
manuseio usual no Vim, você pode sequestrar isso. Ele emite para o terminal e pode ser ajustado para emitir as sequências apropriadas:
set t_ts=^[]6;file://localhost
set t_fs=^G^M
set title
autocmd BufEnter * let &titlestring = expand("%:p")
Use control+ve then escpara obter os caracteres literais dos caracteres de controle mostrados acima. Uma função vim
em seu shell eliminará a configuração ( VimLeave
autocmd
não consegui trabalhar no 7.3 e também há o vim
problema se você suspender).
function vim {
command vim "$@"
echo -ne "\033]6;\007"
}
:help title
para obter detalhes sobre title
ou dê uma olhada no src/term.c
arquivo Vim para obter o código.