web-dev-qa-db-ja.com

ConEmu / Cygwinを使用してWindowsvimで終了した後に画面をクリアする

私は3つのことを一緒に働かせようとしています: ConEm 、Cygwinとvim。問題のvimはCygwinvimではなく、gvimパッケージのネイティブWindows vimです(Cygwinvimはxterm256色をサポートしていないために選択されています)。 StackOverflowで instructions を実行した後、256色の構文の強調表示が機能するようですが、別の問題を解決できません。

Cygwin vimは別の画面で正常に動作します。終了すると、画面の内容がクリアされ、コマンド履歴が再び表示されます。 Windows vimはしません:それを終了すると、コマンドプロンプトが以前のvimコンテンツのページの下に表示されます。この質問は、StackOverflowとSuperUserで何度か尋ねられました: ここここここ および ここ 。ただし、これらの質問の解決策はいずれもConEmu/Cygwinでは機能しないようです。私は試した:

  • t_tit_te.vimrcを次のように設定します。

    let &t_ti="\e[?47h"
    let &t_te="\e[?47l"
    
  • または:

    let &t_ti="\e[?1049h"
    let &t_te="\e[?1049l"
    
  • altscreen on.screenrcを有効にします。 Cygwinにscreenをインストールしていなかったので、それが効果があるかどうかはわかりません。ただし、インストールしても何も変わりませんでした。 screenでvimを明示的に起動すると、奇妙な結果がもたらされます。エスケープシーケンスとコードの半分が壊れており、すべてのキー押下が認識されるわけではなく、コンソールのサイズはscreen引数に関係なく約80x40です。

ConEmuで256色のサポートを有効にするために必要な$TERM configで設定されているため、vimの.vimrcは現在xtermです。ただし、xtermのようなエスケープシーケンスを送信しても、画面がクリアされないようです。

この問題についてサポートをいただければ幸いです。

3
Skiminok

AFAIK vim(Windowsバージョン)は、ターミナルのエンター/リーブ代替モードシーケンスに投稿しません。 minttyがそれをどのように扱っているのかわからないが、まだ調査中だ。

0
Maximus

.vimrcでこれを設定してみてください。これにより、vimでスクロールホイールも有効になります。
これは http://conemu.github.io/en/Whats_New.html 、ビルド150316ノートから来ました。私にとっては、この問題がようやく修正されたようです。

""""""""""""""""""""""""""""""""""""""
" let mouse wheel scroll file contents
""""""""""""""""""""""""""""""""""""""
if !has("gui_running")
    set term=xterm
    set mouse=a
    set nocompatible
    inoremap <Esc>[62~ <C-X><C-E>
    inoremap <Esc>[63~ <C-X><C-Y>
    nnoremap <Esc>[62~ <C-E>
    nnoremap <Esc>[63~ <C-Y>
endif
1