vi
私はこれらの方法が利用できないTru64システムを使用しています\1
。
次の簡単な質問に対する答えが見つかりません。
検索(範囲)を置換と関連付けるには?次のように見えますが、うまくいきません。
:/^group/s/\w$/Test/
興味のある方のために、次のように試してみました\1
。
:%s/\(group\s\+\)\w/\1Test/
ベストアンサー1
\w
ここで主な問題は、省略表記法sumを使用することです\s
。編集者なら伝統的な実装(Bill Joyのソースソース)の場合は、ほとんどの最新実装でデフォルトで設定されているオプションをvi
設定したい場合があります。これはで行われます。magic
vi
:set magic
vi
dosなどのさまざまな文字クラスの同様の略語を\w
理解していません。\s
vim
で交換するには、vi
以下を使用してください。
:%s/^\(group[ ][ ]*\)[0-9A-Za-z_]/\1Test/
~によるとvim
出荷書類ビーチ、\w
およびに対応するスペースまたはタブ文字です(スペースとタブ文字の両方の上にあります)。[0-9A-Za-z_]
\s
[ ]
パターンE+
はE
置き換えることができる式ですEE*
。
\1
交換部品の交換は(vi
すべてvi
)で操作する必要があります。そうでない場合nvi
(「new」)を試してみるか、インストールvi
できることを確認してくださいvim
。
元のバージョン(少なくとも一部のBSDシステムにパッケージされている場合vi
)では、などの「特殊文字」(および除外)をエスケープする必要があります。または、オプションを設定できます(最新の実装ではこれがデフォルトの場合が多い)。traditional-vi
^
$
\*
\.
magic
:set magic
vi
上記の交換は、(例えば)の全ての項目を置き換える。
group 1
そして
group Test
試したのと同じことを行うもう1つの方法は次のとおりです。
:g/^group/s/[0-9A-Za-z_]$/Test/
そうでなければ
:g/^group/s/.$/Test/
行の最後の文字に注意しすぎる必要がない場合。
最後のものを交換したい場合言葉(最後の文字だけでなく)次の操作を行います。
:g/^group/s/[^ ]*$/Test/
vi
オプションセットがない伝統的な場合は、magic
次のように書く必要があります。
:g/^group/s/\[^ ]\*$/Test/