多くのユーザーのデフォルトが入ったファイルがあります。テキストの一部を変更したいのですが、マッチャーとリプレースメントの作成に苦労しています。次の例を使用します。
###############################################################################
# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
###############################################################################
# Trackpad: enable tap to click for this user and for the login screen
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
私は交換したい# Trackpad: ...
とrunning "Trackpad: ..."
問題を分解して、正規表現テスターを使用して何かを思い付きました:
/\n\n#\s(.*)/g
Vimでこれを使用しようとすると、うまくいきません。
:/\n\n#\s(.*)/running "\1"/g
私の問題は、具体的には次の2つの質問に要約されると思います。
\n
文字の検索を回避し、代わり#
に検索グループの最後に表示されないようにするにはどうすればよいですか?- キャプチャグループを効果的に使用するにはどうすればよいですか?
以下にいくつかの素晴らしい答えがあります。3つすべてから選択するのは難しいですが、選択した答えが私の元の仕様にとって最も正確であると感じています。実際のファイルで 3つの回答すべてを試して、それらについてどのように感じているかを確認することをお勧めします。
:%s/\v\n\n#\s+(.*)/^M^Mrunning "\1"/
(「魔法の」フラグを追加しました)。私の元の質問に対して正しい答えを選ぶのは本当に難しいですが、この答えは私の最初の予想された答えに最も近いと思います。また、範囲を選択する必要なく、ファイル全体で機能する唯一のものです。