でのアクセスは、私はvimのを入力するための正しいコマンドは何[] VIM
var[i*w+j] = something;
に
var.at(i*w+j) = something;
を変換するとしますか?私は
var[(i*w+j) = something;]
作品になり
:%s/\.at\(.*\)/[\1]/g
を試みたが、括弧を除去することができる場合であっても良くなります。
EDIT:示す正しい結果の試み
でのアクセスは、私はvimのを入力するための正しいコマンドは何[] VIM
var[i*w+j] = something;
に
var.at(i*w+j) = something;
を変換するとしますか?私は
var[(i*w+j) = something;]
作品になり
:%s/\.at\(.*\)/[\1]/g
を試みたが、括弧を除去することができる場合であっても良くなります。
EDIT:示す正しい結果の試み
を(あなたはまだグループ化を必要とすることに注意してください):
qqqqq/\.at(<CR>%"adi)F.c%[<Esc>"apa]<Esc>@[email protected]
は説明:
qq record macro `q`
q end empty macro
qq record macro `q`
/\.at(<CR> search for `.at(`
% go to the matching closing `)`
"adi) delete inside the parenthesis into register `a`
F. go back to the previous `.`
c% change what’s in the matching parenthesis
[<Esc> with `[` and leave insert mode
"ap paste what’s in register `a`
a]<Esc> append `]` and leave insert mode
@q call the (currently empty) `q` macro recursively
q end macro
@q call the (now non-empty) macro `q`
また、これは正しくvar.at(foo(bar, baz)) = something;
のようなものを扱います。
うわー、これをタイプしようとしましたが、 'E486:Pattern not found:\ .at(
「
ワウは魔法のように機能します。 – user3667089
VIMを入力するための正しいコマンドは何ですか?私はこの問題は、あなたが括弧をエスケープしていることである
:%s/\.at\(.*\)/[\1]/g
を試みました。原因あなたは私のためにリテラル(
と)
:%s/\.at(\(.*\))/[\1]/g
作品を一致させたい一方で、あなたの"magic"設定、グループ化のための\(
と\)
仕事へ。再帰的なマクロで
これは 'something = var1.at(i * w + j)+ var2.at(i * w + j)'の場合には機能しません。コマンドは 'something = var1 [i * w + j] + var2.at(i * w + j)'になるでしょう。 – user3667089
問題は基本的には* – jkerian
を回避するために '。*'を '[^]] *'(括弧を除くすべてにマッチさせる)に置き換えるか、醜いungreedy '' \ { - } ' – sidyll
あなたに 'var [(i + w + j)= something]'を与えてもらえませんか? '。*'は欲張りです... – Barry