4

プレーンを除いて、テキストを再フォーマットすることはあまりないgqので、これはおそらく単純なことですが、ヘルプでそれを見つけることができないようです。

とにかく、私はこのようなテキストを持っています

Funnily enough, that was exciting. 
"I've just about had enough of this," said a voice beside him. 
He looked up. A girl had come down the other path. Her face was red with exertion under the pale make-up, her hair hung over her eyes in ridiculous ringlets, and she wore a dress which, while clearly made for her size, was designed for someone who was ten years younger and keen on lace edging. 
She was quite attractive, although this fact was not immediately apparent. 
"And you know what they say when you complain?" she demanded. This was not really addressed to Victor. He was just a convenient pair of ears. 

そして、それはVimで読むのが面倒です。だから私はそれを再フォーマットしようとしました、gqそしてそれは私にこれを与えます

Funnily enough, that was exciting.  "I've just about had enough of this,"
said a voice beside him.  He looked up. A girl had come down the other path.
Her face was red with exertion under the pale make-up, her hair hung over
her eyes in ridiculous ringlets, and she wore a dress which, while clearly
made for her size, was designed for someone who was ten years younger and
keen on lace edging.  She was quite attractive, although this fact was not
immediately apparent.  "And you know what they say when you complain?" she
demanded. This was not really addressed to Victor. He was just a convenient
pair of ears. 

この場合、元の行末は特別な意味を持つため、これはかなり役に立ちません。私が達成しようとしているのはこれです

Funnily enough, that was exciting. 
"I've just about had enough of this," said a voice beside him. 
He looked up. A girl had come down the other path. Her face was red with
exertion under the pale make-up, her hair hung over her eyes in ridiculous
ringlets, and she wore a dress which, while clearly made for her size, was
designed for someone who was ten years younger and keen on lace edging. 
She was quite attractive, although this fact was not immediately apparent. 
"And you know what they say when you complain?" she demanded. This was not
really addressed to Victor. He was just a convenient pair of ears. 

つまり、元の行末を保持しますが、textwidthより長いすべての行を複数の行に「分割」します。したがって、事前定義された列幅の制限に適合します。

誰かがそれを行う方法について何かアイデアがありますか?かなり大きめのドキュメントなので、なんらかの方法でまとめて扱う必要があります。

4

5 に答える 5

5

すべての行を視覚的に選択し、ex モードで実行します。

:norm gqq

gqq は 1 行を再フォーマットします。:norm に範囲を指定すると、通常のコードが範囲内のそれぞれに個別に適用されます。つまりgqq、各行で個別に申請することを意味します。また、 yourtextwidthは特定の長さ (たとえば80) に設定されているため、短い行は結合/ラップされません。

これをサンプルテキストでテストしましたが、必要なものが得られます。

ところで、vim を使用 :formatprgして外部プログラムで変更することができます。これにより、外部アプリケーションで変更する内容をより詳細に制御できます。詳細については、こちらをご覧ください :h formatprg

于 2012-06-08T19:08:49.510 に答える
2

単に読む目的でこれを実行したいだけですか? その場合は、単語の区切りで行の折り返しをオンにすることを検討する必要があります。コマンドモード:

:set wrap
:set linebreak
于 2012-06-08T18:27:26.640 に答える
0

原始的な方法ですが、一般的にはそれを行うことができました

tw=80
qa (recording a macro)
  Vgq
q (stop recording)

nmap <C-p> :execute "normal! @a"<cr>

and by holding <C-p> for quite a while. Not the most elegant of solutions but worked.
于 2012-06-08T18:28:44.473 に答える
0

gq一連の行の最後の行を除くすべての行がスペースで終わっている場合、一連の行が 1 つの段落に属していると考えることができます。

set formatoptions+=w

. この設定の後gq、例の行は結合されず (そこに末尾のスペースがない限り) :%s/ \n/ /、. 代わりに、現在の各行の間に空の行を追加することもできます。

私もすることをお勧めします

set list listchars+=trail:-

vim に段落の終了位置を認識させるだけでなく、これを自分で確認できるようにするためです (この設定により、末尾の空白が表示されます)。

于 2012-06-09T04:21:46.463 に答える
0

これがLinux上にあると仮定すると、あなたが望むことをするためのユーティリティがたくさんあります - fmtroff/nroff/troffおよびバリアントなどfmtは私がよく使用するものですが、各段落の間に空白行が必要です - それは簡単に達成できますでvim、しかし。したがって、空白行を追加してファイルを保存し、fmt -76たとえば、各行を 76 文字に制限して実行することができます。

于 2012-06-08T18:21:39.640 に答える