¿Cómo puedo hacer que vim muestre la ruta del documento en la Terminal?

¿Cómo puedo hacer que vim muestre la ruta del documento en la Terminal?

OS X 10.11 agrega una característica interesante a Terminal.app que interpreta secuencias de control del formulario

ESC ] 6 ; file://hostname/<path-as-URL> BEL

como especificar el "documento" que se está editando o viendo actualmente. Como ejemplo, ingresando

echo -e "\x1b]6;file://localhost/etc/passwd\a"

hará que el título del terminal muestre el nombre del archivo passwd, en el que se puede hacer clic + cmd para obtener un rastro de ruta de navegación (una característica del "título del documento" en la mayoría de los editores de archivos en OS X). El valor predeterminado de OS X bashrcya usa esta secuencia para insertar el directorio de trabajo actual en el título de la ventana.

Me gustaría saber cómo puedo hacer que Vim genere esta secuencia de escape particular cada vez que edita un archivo nuevo (e, idealmente, cómo desarmarlo una vez que se detiene la edición, por ejemplo, al salir o al cambiar el archivo). Las extensiones para, por ejemplo, lessy otros programas también serían muy útiles.

Aunque técnicamente la URL tiene que estar codificada correctamente, estoy totalmente de acuerdo si no lo está; normalmente no edito archivos con nombres de archivo particularmente inusuales en Vim.

Respuesta1

Si no te importa renunciar al titlemanejo habitual en Vim, puedes secuestrarlo. Emite al terminal y se puede ajustar para emitir las secuencias apropiadas:

set t_ts=^[]6;file://localhost
set t_fs=^G^M
set title
autocmd BufEnter * let &titlestring = expand("%:p")

Utilice control+vy luego escpara obtener los caracteres literales de los caracteres de control que se muestran arriba. Una función vimen su shell borrará la configuración ( VimLeave autocmdno pude empezar a trabajar en 7.3 y también existe el problema de si suspende vim).

function vim {
    command vim "$@"
    echo -ne "\033]6;\007"
}

:help titlepara obtener detalles sobre title, o eche un vistazo al src/term.carchivo Vim para obtener el código.

información relacionada