vi を使用するときに「c」を入力すると文字が削除されます。

vi を使用するときに「c」を入力すると文字が削除されます。

コピーして貼り付けるときにもこの現象が発生します。 Goコードを編集し、「package main」と入力またはコピーして貼り付けようとすると、「pkage main」と表示されます。なぜcを入力できないのかわかりません。削除バックスペースキーを押すと、^?が印刷されます。削除キーを押すと、実際に文字が削除されます。再起動してみましたが、この問題を解決する方法がわからず、オンラインで情報が見つかりませんでした。

答え1

考えられる理由1:

どこでもうまく動作し、c問題がVimにのみ影響する場合は、cファイル.vimrcから。

c一時的にVimでNormal、Command、Normal、およびInsertモードをバックスペースに切り替えました。

:map c ^?
:nmap c ^?
:imap c ^?

(ここでは、を^?入力した結果を示しますCtrl-VBackspace。)

考えられる理由2:

TTYにc削除文字があります。つまり、次のコマンドが実行されたのと同じです。

stty erase c

しかし、これは他のプログラムやシェルにも影響します。努力する

stty sane

シェルのTTYパラメータを適切なデフォルト設定にリセットします。これは覚えておくと便利なコマンドです。特定のビジュアライゼーションプログラムが予期せず終了し、TTY設定が不適切なままになる場合に便利です。

答え2

貼り付ける過程で何かが壊れていたようです。

他のエディタに貼り付けるときに動作するか、まったく同じですか?同じであれば、ソースコードが最初からすでに歪んでいる可能性があります。

他の編集者がよく貼り付けた場合は、クリップボードの貼り付けショートカットを試してください。

"+ ++p

他のアプリケーションからコピーするためにマウス選択のみを使用する場合は、次のものを使用する必要があります。

"+ *+p

それでも奇妙なことが見つかったら、次のことを試してください。

  1. :set pastevimの貼り付けモードに入ります。
  2. 次に、上記の貼り付けショートカットを試してください。
  3. 何らかの理由で貼り付けモードをオフにしたいとき:set nopaste

答え3

コンソールからコピーして貼り付ける方法は、テキストを1文字ずつ挿入することで、Vimは各文字を何か意味があると解釈します。

Vimを使用するときは、次の場所にいることを確認してください。-埋め込む-コマンドモードではないモードです。コマンドモードでは、「c」は変更を意味します。たとえば、ceを入力すると、Vimは単語の最後まで削除して挿入モードに入ります。

「^」はコマンドを表します。 ^CはCtrl+を意味しますC。これはVimエディタ自体ではなくコンソールです。 Ctrl-(何か)またはEscキーを押すと、次の文字が表示されます。

すべての標準ナビゲーションキー(Home、Delete、PgUp / PgDn、矢印キーなど)は、最新のViにバックアップとして含まれています。 x、d、またはhjklスクロールキーを使用するのが好きではない人や使用しにくい人のためです。

関連情報