3

ご存じのとおり、vim にはダイグラフを使用して特定の文字を入力する機能があります (入力モードで Ctrl+K Rg を実行すると、たとえば ® が生成されます)。

ホットキーを定義して、複数のダイグラフを入力できるモードに入る方法はありますか? たとえば、「Ctrl+K sa Ctrl+K yo Ctrl+K na Ctrl+K ra」の代わりに「さよなら」と書くと「さよなら」になります。

4

1 に答える 1

5

私が知っているわけではありません。ただし、次のように想像できます。

exec 'normal! i' . substitute('sayonara', '\(..\)', nr2char(11) . '\1', 'g')

nr2char(11) は CTRL-K 文字です。

そのためのマッピングが必要な場合 (たとえば、ビジュアル モードで F1 キーを押して選択範囲を変換します。これは 1 行の文字単位の選択でのみ使用します):

xnoremap <f1> d:exec 'normal! a' . substitute(@", '\(..\)', nr2char(11) . '\1', 'g')<ENTER>

(デフォルト レジスタの内容を消去せずに) もっと適切な方法があるかもしれませんが、今日は怠けすぎます。一部のスタッカーは、よりクリーンなコードで別の回答を投稿したいと思うかもしれません。彼らは私の賛成票を得るでしょう。

于 2012-01-18T09:11:01.687 に答える