OS X 10.11 добавляет полезную функцию в Terminal.app, которая интерпретирует управляющие последовательности вида
ESC ] 6 ; file://hostname/<path-as-URL> BEL
как указание "документа", который в данный момент редактируется или просматривается. Например, ввод
echo -e "\x1b]6;file://localhost/etc/passwd\a"
заставит заголовок терминала отображать имя файла passwd
, по которому можно щелкнуть с помощью cmd, чтобы получить навигационную цепочку (функция «заголовка документа» в большинстве редакторов файлов в OS X). По умолчанию OS X bashrc
уже использует эту последовательность для вставки текущего рабочего каталога в заголовок окна.
Я хотел бы узнать, как заставить Vim выводить эту конкретную escape-последовательность всякий раз, когда он редактирует новый файл (и, в идеале, как сбросить ее после остановки редактирования - например, при выходе или смене файла). Расширения для eg less
и других программ также были бы очень полезны.
Хотя технически URL-адрес должен быть правильно закодирован, меня вполне устраивает, если это не так, — я обычно не редактирую в Vim файлы с особенно необычными именами.
решение1
Если вы не против отказаться от обычной title
обработки в Vim, вы можете перехватить это. Он выдает в терминал и может быть настроен для выдачи соответствующих последовательностей:
set t_ts=^[]6;file://localhost
set t_fs=^G^M
set title
autocmd BufEnter * let &titlestring = expand("%:p")
Используйте control+vи затем, escчтобы получить буквальные символы для управляющих символов, показанных выше. Функция vim
в вашей оболочке сотрет настройку ( VimLeave
autocmd
я не мог заставить ее работать в 7.3, и есть также vim
проблема if-you-suspend).
function vim {
command vim "$@"
echo -ne "\033]6;\007"
}
:help title
для получения подробной информации title
или посмотрите src/term.c
код в файле Vim.