2

ファイルに次の内容を入れたい

#define BIT_MASK_1      (1 << 0)
#define BIT_MASK_2      (1 << 1)
#define BIT_MASK_3      (1 << 2)
#define BIT_MASK_4      (1 << 3)

だから私はこのような一行を書きます:

#define BIT_MASK_1      (1 << 0)

、次に , と入力するY3pV3j、4 つの同じ行が選択され、その後、以下のコマンドを使用してテキストを必要なコンテンツに変換したいと考えました。

:'<,'>s/BIT_MASK_/zs/d*/ze//=line(".") - line("'<") + 1
:'<,'>s//zs/d*/ze)$//=line(".")-line("'<")

しかし、E488: Trailing charactersエラーが発生しました。何が間違っていましたか?

4

4 に答える 4

4

この種のことを行うには、 Ctrl+A (カーソルの下の数字をインクリメントする) と対話的に定義されたマクロを使用したほうがよいと思わずにはいられません。

于 2012-10-16T08:40:44.683 に答える
3

最初の行があると仮定します: (先頭にカーソル)

#define BIT_MASK_1      (1 << 0)  

次に、次のように入力します: ( ^A = Ctrl + A)

qaYp^Af<^Aq

それから

3@a
于 2012-10-16T08:56:51.550 に答える
1

あなたの質問に対する正確な答えではありませんが、 Ca を使用して数値を増やしたいと思います

何かのようなもの

t(h^At)^A0

マクロに入れて、必要な回数だけ実行できます

于 2012-10-16T08:48:50.787 に答える
0

これを入力するだけです:

:for i in range( 1, 4 ) | call append( line( '$' ), [ '#define BITMASK_' . i . ' (1 << ' . (i - 1) . ')' ] ) | endfor

vim をプログラミング言語として使用する方が、奇妙なキーストロークを使用するよりも優れている場合があります。

于 2013-06-27T11:26:04.863 に答える