1

行が80列を超えるCファイルがいくつかあります。それらを80列の境界にラップすると同時に、適切なC構文を維持する必要があります。これはVimで可能ですか?

通常のテキストファイルでそれを行うためのいくつかの解決策をウェブ上で見ました。また、編集しようとしているCファイルでラッピングを行うためのトリックを見つけました。ただし、既存のCファイルは対象外です。

Vim以外のこれを達成するためのツールも歓迎します。

4

2 に答える 2

3

c-sourcesを編集する場合は、cindentオプションを設定している可能性があります。残念ながら、textwidthオプションはcindentでは機能しません。

あなたの目的の芸術的なスタイルのために、それは非常に素晴らしいプログラムですが、それは長い行の分割をサポートしていないので、どちらもお勧めできません。

必要なものを取得するには、gnuインデントを使用し、equalprgをに設定します

let &equalprg= "indent -l80 -i" . &shiftwidth . " <optional args>"

と追加

map <leader>i mzgg=G`z

私に~/.vimrc。それを押すと<leader>i、カーソルの位置を変更せずにファイル全体が再フォーマットされます。

別の可能性は、書き込みのたびにソースをインデントする自動コマンドを追加することです。

autocmd BufWrite *.c execute "%!".&equalprg
于 2013-01-23T09:31:29.300 に答える
2

vimを使えば、とでそれを行うことができ:set tw=79ますgggqG。ただし、コンテキストアウェアではないため、特定の行(たとえば、長い文字列を含む行)を復元する必要があります。

外部ツールの場合は、再フォーマットが難しくない行(たとえば、を含む行)を再フォーマットするArtisticStyle{を確認することをお勧めします。

于 2013-01-23T08:36:47.393 に答える