回答:
自分のモードを視覚的に判断する方法はないと思いますが、振る舞いを少し変更しても問題はありません。
コマンドモードにしたい場合は、コマンドを入力する前にEscキーを押します。
挿入モードにする場合は、コンテンツを入力する前にEscキーとiキーを押します。
ESCを何度も押すことになりますが、私が出会ったすべてのviユーザーはとにかくそれを行います。
ドキュメントを見てきましたが、現在のviモードを検出して表示する方法が見つからなかったと言わざるを得ません。嬉しい驚きがあり、誰かが解決策を思いつくことを願っていますが、私は確かにあなたが求めていることをする方法を見つけることができません。
これを行う方法はあると思いますが、それはほんの少しの迷惑には大げさなやり過ぎであり、この質問を提起したときにそれが念頭にあったとは思いません。これが本当なら、今読んで停止し、あなたの人生を楽しんでください。
OTOH、これが本当にあなたのペットの忍耐であり、それがあなたを狂わせている場合、あなたは本当にこの問題を絶対に必死に叩きたいのであれば、それをどうするかについての私の考えは次のとおりです:
手短に言えば、Unixは端末I / Oを、モジュールを挿入できるデバイスドライバーとユーザープロセス間の全二重I / Oストリームとして実装します。スタックとして編成されているため、必要な数のストリームを階層化できます。注入されたストリームの合計により、ターミナルI / O動作が作成されます。
文字が入力されると、最初のモジュールがその文字を検査し、渡します(必要な場合)。応答が反対方向に届くと、再度検査して渡す機会が得られます。これは、Ctrl-Cが通常の文字キーよりも高いレベルで処理される方法です。
ストリームモジュールを実装するバイナリを作成できます。これは、呼び出されるとフォアグラウンドでサイレントに実行され、すべてのキーストロークを検査して渡し、関心のあるキーストロークで好みのアクションを実行します。すべての意図と目的のために、あたかもシェルで作業しているように見えます。おー このバイナリは、.tcshrcの最後の(または最初の、または任意の)行で呼び出すことができ、そこにあることさえ知りません。
ここには優れた入門書がありますが、このトピックについてはあまり見当たりませんでした。おそらくそれが首相を過ぎているからでしょう。
このような問題を抱えている人(私のように)に:stackoverflowで解決策を見つけました。どうやらこれはreadlineでネイティブにサポートされているため、次のものをに追加するだけです~/.inputrc
:
set show-mode-in-prompt on
実際のキャラクターの使用をカスタマイズするには:
set vi-ins-mode-string "custom-ins"
set vi-cmd-mode-string "custom-cmd"
最も一般的に使用される2つのテキストエディタであるEmacsとvi に基づいて、コマンドラインを編集するための2つの主なモードがあります。viのバインディング、あなたは切り替える必要があり、インサートとコマンドモード。
各モードで異なるコマンドが役立ちます。viモードには、挿入モードとコマンドモードの2つのサブモードがあります。
- デフォルトのモードはinsertです。
- を押すと、モードを切り替えることができます
Esc
。- または、コマンドモードで
「a」(追加)または「i」(挿入)を入力すると、挿入モードに戻ります。
既に上記にリンクされているtcsh
カスタマイズページに関するその他のメモ。