为mintty设置窗口标题

时间:2014-09-22 10:26:31

标签: vim cygwin mintty

在cygwin上运行vim时,我想在活动缓冲区名称上自动设置窗口标题。

我写了这个:

function! SetMinttyTitle()
    silent !clear
    execute "!" . "echo -ne '\\e]0;". @% . "\\a' 2>&1 > /dev/null"
endfunction

au BufNewFile,BufEnter,BufRead * call SetMinttyTitle()

不幸的是,它并没有按预期工作。我没有找到摆脱这条消息的方法

"Press ENTER or type command to continue"

如何在后台运行命令?

1 个答案:

答案 0 :(得分:1)

通常的答案是使用system()代替;它不会回显输出,而是返回它。 但这不适用于您的情况,因为您需要将输出打印到终端。暂时重置'shellredir'可能有效:

set shellredir=
call system("clear; echo -ne '\\e]0;". @% . "\\a' 2>&1 > /dev/null")
set shellredir=>

但是Vim实际上内置了该功能,请参阅:help 'titlestring'