1

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"

コマンドをバックグラウンドで実行するにはどうすればよいですか?

4

1 に答える 1

2

通常の答えは、system()代わりに使用することです。出力をエコーし​​ませんが、代わりに返します。ただし、出力を端末に出力する必要があるため、これは機能しません。一時的なリセット'shellredir'が機能する場合があります。

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

しかし、Vim には実際にその機能が組み込まれています。:help 'titlestring'

于 2014-09-22T10:36:24.377 に答える