vi-editorで9列のテキストを開いていますが、9列目(最後の列)のタブ文字をコンマとそれに続くスペースに置き換えたいと思います。これまでのところ、私はこれを思いついた。
'2,$s#\(^.\{8\}\)\\t#\1\(\,\)#'
しかし、それは何にも一致しないようです...何かをエスケープしすぎた可能性がありますが、列の区切り文字(この場合はタブ)を指定する必要があるかどうかもわかりません。これに関する助けをいただければ幸いです。
%s/^\(\%(\t\?[^\t]\+\)\{8\}\)\t\(.*\)$/\1, \2/
これは()を置き換えますs
:
^
-行の開始\(
(グループ1)の開始
\%(
内側のグループの開始
\t?
0以上(行の先頭にTabaがないことを説明するため)Tab[^\t]\+
続いて1鉱石以上Tabの非\)
内側のグループの終わり\{8\}
上記の内側のグループは8回繰り返されました\)
(グループ1)の終わり\t
続いてTab\(.*\)
およびその他(グループ2)$
行の終わりまでと:
\1
- (グループ1)(8日までのすべてTab),
-コンマとスペース\2
- (グループ2)Tab (8日から行末までのすべて)バッファ全体で(%
)。
これが1回限りの置換の場合は、代わりにマクロを使用できます(変更する最初の行の最初の文字から開始します)。
qqfTab7;cl,SpaceEscj0q
キーを押す場所は次のとおりです。
次に、を使用@qして次の行で再生します(または99@q、次の99行で再生するなど)。