2

mac os xterminal.appは、挿入モードに切り替えるときにカーソルがブロックから行に変わるなど、vimの視覚的側面の多くをサポートしていないため、私はosascript似たようなものを使用します。

私の.vimrcファイルには次のように書いています。

autocmd InsertEnter * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 11`j
autocmd InsertLeave * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 12`j

ここsettings set 11で、はラインカーソルを持つ端末設定のセットであり、settings set 12はブロックカーソルを持つ端末設定のセットです。

これは実際には非常にうまく機能しますが、小さな問題が1つあります。InsertLeaveでは、カーソルが常に1文字左に移動します。これはそれほど大きな問題ではありませんが、煩わしい場合があります。

autocmd InsertLeave h私は自分のに入れて補償しようとしまし .vimrcたが、役に立ちませんでした(それは私にエラーを与えます)。

どのようにvimに伝えるべきですか:

  1. 左にシフトしませんか?
  2. 上記が不可能な場合は、右にシフトして補正します
4

1 に答える 1

2

質問に答える前に、MacVim を確認することをお勧めします (まだ確認していない場合)。端末に固執したい (または必要とする) 場合は、iTerm のような別の端末がより多くの機能を提供する可能性があります。とにかく、ブロックとバーの間のカーソルの変化はiTermには存在しません(少なくとも私はそう思います)。それを解決するあなたの方法は驚異的でした.今ここにブックマークされています. ありがとう!


あなたが言ったように、それを解決する簡単な方法は、別の自動コマンドを追加することです。しかし、あなたのものには、実行するパターンと正しいコマンドがありません。

hコマンドではありません。通常モードシーケンスを実行するには、:normalコマンドを使用します。これは正しく動作する可能性があります:

au InsertLeave * normal! h
于 2011-04-30T13:52:46.360 に答える