悪い知らせ
あなたが提案したようなものが存在するかどうかはわかりませんが、確かに存在する可能性があります.Vimは毎日私を驚かせます. SOの誰かが知っていると確信しています。
良いニュース
あなたが望むものを達成するためのより良い方法があります!または、あなたが欲しいと思うもの。テキストの特定の領域に対して書式設定操作を実行するよう Vim に指示できます。あなたがしなければならないのはtextwidth
、あなたが望む最大幅に設定してから、移動するgq{motion}
テキストをフォーマットするために使用することだけです. {motion}
あなたの例:
/* Line 1 of some large comment block,
hopefully it contains well written documentation. I'd
now like 'hopefully' to be on the first line.
*/
妥当な値を設定するだけですtextwidth
(ここでは約 50 のように見えます)。その後、コメントをフォーマットします。最初の にカーソルを置き/
、
:set textwidth=50
gq%
キャッチ
しかし、待ってください、それはうまくいかなかったとあなたは言います!
おっと。あなたが正しい。ここで起こっているように見えるのは、Vim がこの形式を理解していないということです。私自身の指示に従ったとき、あなたのマイレージは異なるかもしれませんが、これを見ました:
/* Line 1 of some large comment block,
hopefully it contains well written
documentation. I'd now like 'hopefully' to be on
the first line.
*/
それは正しくないように見えますが、そうではありません。ただし、Vim が認識できる形式にブロック コメントを再フォーマットすると (ブロック コメントはこのように記述します)、次のようになります。
/*
* Line 1 of some large comment block,
* hopefully it contains well written documentation. I'd
* now like 'hopefully' to be on the first line.
*/
そして、私はgq%
(textwidth
まだ50で)私は得る:
/*
* Line 1 of some large comment block, hopefully
* it contains well written documentation. I'd now
* like 'hopefully' to be on the first line.
*/
それはうまくいったようです。「今」という単語も 3 行目から 2 行目に移動されましたが、それは Vim 側の適切な決定であったと私は主張します。もう 1 つ注意: 先頭の s が気に入らない場合*
、Vim は次の形式でもうまく機能します。
/*
Line 1 of some large comment block,
hopefully it contains well written documentation. I'd
now like 'hopefully' to be on the first line.
*/
これを行うとgq%
、次のようになります。
/*
Line 1 of some large comment block, hopefully
it contains well written documentation. I'd now
like 'hopefully' to be on the first line.
*/
少しおかしいですが、理にかなっています。私には段落のように見えます。うまくいけば、ここで何かが役に立ちます。
編集:
progo は別の回答で簡単に述べたように、上記で使用したすべてのgqap
場所で使用できますgq%
。ありがとう!