Vim は非常に強力であり、挿入モード/通常モードのマップは、ここで最も便利なアプローチではないと思います。
始めるのに役立つイディオム:
編集:私はあなたの以前の質問(
計算を逆方向に視覚的に選択するにはどうすればよいですか? )に基づいて構築し、チャット
で説明されたデモを提供しました
1. マクロを記録します。
qqniMyText<Esc>q
これにより、各一致位置に「MyText」が挿入されます。ここで、100@q を 100 回繰り返します (:se nowrapscan
最初からやり直さないように設定を検討してください)。
2.使用:global
:g/somepattern/norm! Aappended<Esc>
検索パターンを含む各行に「appended」というテキストを追加します
3. スマート置換を使用する:
置換パターンを使用して、いくつかの「静的」編集アクションを実行できます。
:%s/\v(\d\d)-(\d\d)-(\d{4})/\3\2\1/g
dd-mm-yyyy を yyyymmdd 日付スタンプに変換します。
動的に評価される置換 (置換式で vimscript を使用\=
) を行うには、事実上すべてのことを実行できます (必要に応じて、メールの送信やドキュメントの印刷を含む)。
:%s/\v<DB_\w+>/\=substitute(submatch(0), '\v_?([^_])([^_]*)', '\U\1\L\2', 'g')/g
「データベース スタイル」の名前を次のように変換するには
var DB_USER_ID = f();
var DB_USER_FIRST_NAME = f();
var DB_USER_LAST_NAME = f();
var DB_USER_HOME_ADDRESS = f();
次のような「キャメルケーススタイル名」に
var DbUserId = f();
var DbUserFirstName = f();
var DbUserLastName = f();
var DbUserHomeAddress = f();
式評価によるライブ デモ
編集コメント/チャットに応じて:これにはアプローチ#1を非常に簡単に使用できます:
/\v\c\s*\zs(\s{-}(((sqrt|log|sin|cos|tan|exp)?\(.{-}\))|(-?[0-9,.]+(e-?[0-9]+)?)|([-+*/%^]+)))+(\s*\=?)?\s*
qqa<M-.><Esc>nq
これで、すべてのドキュメントに対して繰り返すことができます:
:set nowrapscan
100@q