Unix viエディター: mapping^J

Unix viエディター: mapping^J

私は「Vi Editorを学ぶ」(Linda LambとArnold Robbins、第6版)という本を読んでいます。本の115ページには、次の順序があります。

:map ^J xyz

xyz部分自体はここでは重要ではありません。私の問題はその^J部分を作ることです。

私はctrl++ V ctrlj例:ctrl+をv使用してEnterをエスケープできます)を試してから、ctrl+を直接試しました。j

どちらの場合も機能しません。

私はFreeBSD 11.0でvim(viの改善)ではなくviエディタを使用しています。

- - - 編集する - - -

ビデオ:

https://vimeo.com/212400468

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

実際、この内容は本に出てきたバグのようです。この例の後には、次の説明が続きます。

前の例では^Jcommand(カーソルを1行下に移動)、このキーは実際にcommandと同じであるため、安全にマッピングできますj。他のキーと同じ操作を実行するか、ほとんど使用されないキーがたくさんあります。ただし、次のことに精通している必要があります。コマンドをマップ定義で使用して、一般的な使用を大胆に無効にできます。

一般的な推論は^JはいcontrolJ。しかし、第6版で言及されたviのどれも、テキストにcontrol / Jを挿入することを許可しません。これはUnixシリーズシステムの行終端であるためです(^@control / Jを離れようとすると、vimにnull文字が表示されます)。 、そうでなければそれを無視するように編集されます)。 ㅏ言葉" ^J"はコメントには適用されません。なぜなら、これらの文字はコメントには適用されないからです。注文する。

することができます言葉^J「もちろんです。」しかし、この例のポイントはそれではありません。作家が別の興味深いキャラクターを望んでいて、何らかの理由で変更した可能性があります。

おすすめ記事