vim マーク (例: mm) を、文字の元の行/列の位置ではなく、元々設定されている文字を指すようにすることは可能ですか?
たとえば、以下の例文の「politicians」という単語の最初の文字(行1、列72)にmmと入力し、「entries」という単語を削除して「m」と入力すると、カーソルは元に戻ります。カーソル位置(行 1、列 72)は、現在「politicians」という単語の文字「a」の位置です。これは vim の予想される動作だと理解していますが、行/列の位置が変わっても、代わりに `m が政治家の 'p' に戻るようにしたいと思います。
例文:
この10日間のブロックは、ケネディ暗殺事件のような出来事だけでなく、政治家や企業に関しても匿名で変更が行われた後に行われた。
私が望む動作は、私が書く/編集する方法にとってはるかに便利だと思います (特に、コーディングという本来の目的を超えて Vim を使用する場合)。Viemu は、Word に Vim の多くの機能を追加するプラグインで、マークを私の望むように処理します。残念ながら、Viemu は Vim の完全な移植ではなく、私はすべてのテキスト (コードだけでなく、電子メール、エッセイなど) を Vim で作成することを好みます。Vim にマークを私の望むように処理させる方法がわからないことが、私が Vim だけを使用しない主な理由の 1 つです。
よろしくお願いします、
PS: これは私が初めてstackexchange/superuserに投稿するものなので、質問をするための適切な形式/プロトコルに従っていない場合はお許しください。また、訂正してください。
答え1
追加/削除された行に対してマークは調整されますが、列の位置は調整されません。その点は正しいです。あなたが望む動作には確かに複数の利点があります。おそらく複雑さが関係しているため、まだ実装されていないだけだと思います。(また、vi や以前の Vim バージョンとの互換性が損なわれるため、軽視すべきことではありません。)
sを使用して一部の編集アクションにフックすることは可能ですが:autocmd
、これは一般的には不可能です (たとえば、 のようなもの:s
は傍受できません)。そのため、Vimscript でその動作をエミュレートすることは困難であり、そのような実装については知りません。