23

Emacs で、たとえば 80 文字の最大行長を強制するにはどうすればよいですか? fill-paragraph可能であれば、テキストの場合と同様に、コードに適切な改行を挿入し、行の 2 番目の部分を正しく挿入したいと考えています。

ここにちょっとした例があります:

LongNameType<PrettyLong, AlsoLong> doSomethingWithLongFunctionName(int a, int b);
foo();

私が実際に行うと、次のfill-paragraphようになります。

LongNameType<PrettyLong, AlsoLong>
doSomethingWithLongFunctionName(int a, int b); foo();

一方、私はこれを好むでしょう:

LongNameType<PrettyLong, AlsoLong>
  doSomethingWithLongFunctionName(int a, int b);
foo();
4

7 に答える 7

5

行の長さの制限を警告するパッケージがいくつかあります。個人的には、現在の列に応じてカーソルの色を変更するワイド列を使用しています。

于 2009-04-13T18:15:25.917 に答える
4

fill-paragraph と auto-fill-mode は意図的にコードをラップしません。それを行うにはあまりにも多くの方法があり、おそらく間違っているでしょう。コメントはラップされますが、ここでは役に立ちません。

テキストを分割したい場所に明示的に配置するために私がこれまでに行った唯一の方法。次に、自動インデントにより、破線が適切な場所に配置されます。

既存のコードの大部分をリフローしようとしていますか? または、現在作成中のコードで自動入力を機能させようとしていますか?

于 2009-04-07T13:10:28.113 に答える
1

Emacs用の多くの「垂直線」ライブラリの1つをチェックする必要があります。一部のライブラリは、常にバッファ全体に垂直ハイライト線を保持しますが(実際には必要なものではありません)、他のライブラリは常に垂直ハイライトを修正列に配置します。これは実際には必要なことではありませんが、すぐに確認できます。行を折り返す必要がある場合。

于 2009-04-17T00:52:48.010 に答える
1

modeline-posnパッケージを使用します。指定された値より大きい場合は、モードラインの列番号が強調表示されます。

于 2009-04-07T02:07:22.280 に答える
1

実際には emacser ではありませんが、 c++モードでauto-fill-modeをオンにするとどうなりますか?

C++ モードでは自動インデントが提供され、自動フィル モードでは行の折り返しが提供されます。

于 2009-04-07T01:54:10.657 に答える
0

試す

'(c-max-one-liner-length 80)

'(fill-column 80)
'(c-ignore-auto-fill (quote (string cpp)))

それが役に立てば幸い。

于 2009-05-15T12:43:45.513 に答える