0

Vim のサラウンド プラグインとリピート プラグインを使用して、テキスト行を html タグでラップしています。

"yse<p>" と "ys$<p>" を使用しますが、どちらも問題なく動作します。

コマンドを「.」で繰り返そうとすると、ターミナルに <p> が表示されますが、Enter キーを押してコマンドを実行すると、サラウンドが <p> と </p> を ^M に置き換えます。

私の行は ^Mtext here^M のようになります

文字を行末として認識しますが、サラウンドが端末に表示されるコードで行を折り返さない理由がわかりません (これは正しいです)。

Windows XP で gVIM を使用していますが、それによって違いが生じる場合があります。

4

2 に答える 2

1

surround.vimのドキュメントには次のように記載されています。

The "." command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136. 

したがって、使用しyssている場合は動作するはずですが、他のバージョンの " ys" はサポートされていないようです。所有者に提出する必要がある優れた機能のように思えrepeat.vimます。

于 2011-01-07T23:41:46.347 に答える
0

これ<p>は、コマンドを次のコマンドで繰り返すと、実際には存在しないためです。.

これを試してください:.最初のヒットでコマンドを繰り返してoテキストのコマンドライン領域を空にしてから、.

実際には空白であることがわかります。そのため、カーソルは最初の文字にあります。

ラッピングを正しく繰り返すには、<p>毎回入力するか、クイックマクロを記録する必要があります。

大きい: ys$<p>

それをvimに貼り付けてハイライトし、入力します"py

これで、次のコマンドでマクロを実行できます。@p

于 2011-01-07T18:52:22.710 に答える