所以最近苹果已经支持在终端的状态栏中显示工作目录和文件。必须发送(设置当前文件)的转义序列是这样的:
ESC ] 6 ; Pt BEL
哪里Pt
是file://
指向当前正在编辑的文件的 url。所以我想我可以让 Vim 将此命令作为转义序列发送,但我遇到了一些麻烦。到目前为止我有这个:
au BufNewFile,BufReadPost,BufFilePost,BufWritePost * echo <escape sequence>
但我有一种感觉,它不会像那样工作。另外,我不知道如何将当前文件作为file://
url 获取,尽管我怀疑 netrw 可能能够帮助我。有任何想法吗?
编辑
到目前为止,我有这个:
au BufNewFile,BufReadPost,BufFilePost * echo printf('\e]6;file://%s%s\a', $HOSTNAME, expand('%:p'))
但它仍然不起作用 -$HOSTNAME
没有得到扩展。任何人有任何关于如何使其扩展的提示?
编辑 2
好的,所以我对引号和导出的内容进行了一些更改$HOSTNAME
,现在可以正常打印了。但是,vim 并没有像字面地呼应转义序列,而是将它们打印为^[
,这使它们毫无用处!所以我真正的问题来了:你如何让 vim 向 shell 发送文字转义序列?
成功!
最终代码如下:
set title
set t_ts=^[]6;
set t_fs=^G
auto BufEnter * let &titlestring = "file://" . hostname() . expand("%:p")