
私は「Vi Editorを学ぶ」(Linda LambとArnold Robbins、第6版)という本を読んでいます。本の115ページには、次の順序があります。
:map ^J xyz
xyz部分自体はここでは重要ではありません。私の問題はその^J
部分を作ることです。
私はctrl++ V ctrl(j例:ctrl+をv使用してEnterをエスケープできます)を試してから、ctrl+を直接試しました。j
どちらの場合も機能しません。
私はFreeBSD 11.0でvim(viの改善)ではなくviエディタを使用しています。
- - - 編集する - - -
ビデオ:
00:05 - ctrl+K をマッピングして dd を実行 (全行削除)
00:19 - Ctrl + Jを使用して同じ操作を実行しようとしましたが、Ctrl + Jがテーブルをトリガーしているため機能しません。
00:25 - Ctrl + V Ctrl + Jを使用してもう一度やり直してください。動作しないため、テーブルがトリガされます。
00:33 - "^J"を正確にマッピングしてみてください。
00:44 - Ctrl + Jを試しましたが、期待どおりに動作しませんでした。 「^J」シーケンスを入力できます。
答え1
実際、この内容は本に出てきたバグのようです。この例の後には、次の説明が続きます。
前の例では
^J
は肉command(カーソルを1行下に移動)、このキーは実際にcommandと同じであるため、安全にマッピングできますj
。他のキーと同じ操作を実行するか、ほとんど使用されないキーがたくさんあります。ただし、次のことに精通している必要があります。肉コマンドをマップ定義で使用して、一般的な使用を大胆に無効にできます。
一般的な推論は^J
はいcontrolJ。しかし、第6版で言及されたviのどれも、テキストにcontrol / Jを挿入することを許可しません。これはUnixシリーズシステムの行終端であるためです(^@
control / Jを離れようとすると、vimにnull文字が表示されます)。 、そうでなければそれを無視するように編集されます)。 ㅏ言葉" ^J
"はコメントには適用されません。なぜなら、これらの文字はコメントには適用されないからです。肉注文する。
することができます言葉^J
「もちろんです。」しかし、この例のポイントはそれではありません。作家が別の興味深いキャラクターを望んでいて、何らかの理由で変更した可能性があります。