2

CLI編集チームとしてOSX10.7.5上でiTerm2(ビルド1.0.0.20130319)とVim(MacVimスナップショット66のビン)を使用しています。

iTerm2では、点滅しない垂直バーをカーソル形状として使用するように定義しました。Vimで私は定義しました

" Enter insert mode (Cursor shape: vertical bar)
let &t_SI = "\<Esc>]50;CursorShape=1\x7"

" Leave insert mode (Cursor shape: block)
let &t_EI = "\<Esc>]50;CursorShape=0\x7"

挿入モードと通常モードを区別できるようにします。基本的にこれは問題なく動作します。Vimを離れてCLIに戻ると問題が発生します。何が起こるかというと、カーソルは元の形(垂直バー)に戻りません。代わりに、ブロック形状のままにすることを決定します。

カーソルを初期の形にリセットしたり、強制的に垂直バーに戻したりできますか?たとえば「VimLeave」でイベントをトリガーすることを想像できます。しかし、エスケープシーケンスとして何を渡すことができるかわかりません。

4

4 に答える 4

7

もう少し掘り下げて:helpみたところ、

autocmd VimLeave * let &t_me="\<Esc>]50;CursorShape=1\x7"

カーソルの形状を初期の形状に戻します。たとえば、定義された形状に戻します。これまでのところうまくいきます。

誰かがそのアプローチの欠点を知っていますか?それに加えて、またはVimLeaveをトリガーすることもできます。VimLeavePreQuitPre

編集:さらに良いことに、一部の人々が探しているものを正確に実行する新しいプラグインが利用可能です。

https://github.com/jszakmeister/vim-togglecursor

それも少し設定可能です:

let g:togglecursor_default = "block"
let g:togglecursor_insert = "line"
let g:togglecursor_leave = "line"
let g:togglecursor_disable_tmux = 0
于 2013-03-22T00:22:08.573 に答える
1

これを試しましたか?

autocmd VimLeave * let &t_SI = "\<Esc>]50;CursorShape=1\x7"
于 2013-03-21T14:19:27.047 に答える
1

私は通常のvimでItermを使用しています。これにより、起動vimでカーソルが点灯し、挿入モードで点滅します。そして、終了vimで点滅に戻ります。

augroup myCmds
au!
autocmd VimEnter * silent !echo -ne "\e[2 q"
autocmd VimLeave * silent !echo -ne "\e[1 q"
augroup END
于 2017-04-13T17:36:07.387 に答える
0

ターミナルに切り替えるときにGvimのカーソルスタイルに慣れていたので、以前にこの方法を試しました。しかし、私は同じ問題に遭遇し、それを修正する方法がありませんでした。

最後に、カーソルの色の変更方法を使用しています。そのスタイルに慣れたら、とても嬉しくてカーソルの形をすっかり忘れてしまいます。

カーソルの色の方法を変更する

autocmd InsertEnter * set cul
autocmd InsertLeave * set nocul

次に、このテーマに組み込みのスキームがない場合は、テーマと同じようにCursor異なる色を設定します。Normal

ソース: http: //vim.wikia.com/wiki/Configure_the_cursor

ターミナルで挿入モードを識別するための3つの方法の合計: vimのさまざまなモードでカーソルを変更するにはどうすればよいですか?

于 2013-03-21T14:50:38.553 に答える