3

編集プリティモードは、さまざまな折りたたみモードよりも概念的に私が望むものに近いと思いますが、単一の文字ではなく、文字列を他の文字列に置き換えることができる必要があります。私が知る限り、pretty-modeでは文字列を一意の文字に置き換えることしかできません。

私はEmacsで非常に特殊なことをしたいと思っています。それは一種のコード折り畳みです。私はこれを読みました: Emacsでのコード折り畳み

これの複製として閉じられました:

Emacsでコード折り畳み効果を実現するにはどうすればよいですか?

ただし、関数の行を折りたたまないという点で、少し特殊なことをしようとしています。文字を1行に折りたたむ必要があります。

私もナビゲーションにはまったく興味がありません。ナビゲーションを容易にするためではありません。画面を少し整理するだけです。

たとえば、私がこれを持っている場合:

super verbose syntax my_bar = 42;
hyper long syntax my_foo = 84;

Emacs内に次のように表示させたいのですが:

svs my_bar = 42;
hls my_foo = 84;

「超冗長構文」/「超長構文」を100万回読んだだけでなく、10年後に「svs」と入力すると自動的に「超冗長構文」に拡張され、「hls」は自動的に「超冗長構文」に拡張されるためです。長い構文」の場合、「svs」を実際の識別子として使用する可能性はなく、何が起こっているのかすぐに認識できない可能性もありません。もちろん、ファイル/バッファには、非常に冗長な構文が含まれている必要があります。

純粋に「一行に折りたたむキャラクター」が欲しいです。

つまり、「超冗長構文」と入力すると、画面上で自動的に「svs」に折りたたまれます(「svs」TABを入力すると、「超冗長構文」に展開されますが、それは別のことです。 ..私の場合、svs TABと入力すると、「超冗長構文」に展開され、画面上の「svs」に直接折りたたむ必要があります)。

これにより、画面のスペースが大幅に節約され、より重要なことに集中できるようになります。

(クールな副作用として、同じ長さではない垂直方向に予約されたキーワードも並べられ、コードがさらに読みやすくなります)

Emacsでこれを達成するにはどうすればよいですか?すでにこれを行っているマイナーモードはありますか?

4

1 に答える 1

4

次の 2 つの式をモードフックに追加してみてください。

(font-lock-add-keywords
 nil
 '(("super verbose syntax" (0 '(face default display "svs") append))
   ("hyper long syntax" (0 '(face default display "hls") append)))
 t)
(push 'display font-lock-extra-managed-props)
于 2012-07-22T23:50:29.947 に答える