6

Vim/Emacs と Solarized に関する質問がすでにたくさんあることはわかっているので、さらに追加するのは少しためらっていますが、この正確な問題に対処するものを見つけることができないようです。

問題は、両方のエディターが solarized-dark テーマを使用するように設定されている場合、Vim と Emacs では同じファイルが大きく異なって見えることです。そして、これがSolarizedの問題なのか、VimとEmacsの根本的な違いなのか、私にはわかりません。

これが私が取り組んでいるものです:

Emacs が背景色を適切に表示するには、明示的に TERM を に設定する必要がありxterm-16colorます。-nwただし、エディターを端末で実行していても、それぞれの GUI (フラグなしの gvim と emacs) で実行していても、色はまったく同じに見えます。

これは、左側が Vim、右側が Emacs のスクリーンショットです。

ここに画像の説明を入力 拡大版

最終的には、Emacs の色を Vim の色とまったく同じに見えるようにしたいと考えています。これは可能ですか?もしそうなら、配色の Emacs バージョンを微調整することでしょうか? それとも、これは変更できない 2 つのエディターの根本的な違いにすぎないのでしょうか?

4

2 に答える 2

4

私は Ruby で書いていませんが、Emacs から状況にアプローチする一般的な方法は次のとおりです。

  • あなたの意見では適切にペイントされていない単語にポイントを移動すると、ポイントのM-xcustomize-face下の顔の名前がミニバッファーに自動入力され、押すRETとカスタマイズ バッファーが開き、顔のレンダリング方法を変更できます。少なくともいくつかの違いはそのように取り除くことができるようです。

  • 主要な編集モードは通常、フェイス (通常はフォントロックの種類からの 1 つ) をターゲット言語の特定の字句グループに関連付けます。どのようなオプションがあり、Ruby モードがどのように言語の構文要素にフェイスを正確に割り当てるかを調査する必要があります。顔に対するグローバルな調整はおそらく極端すぎるでしょう (他のモードにも影響を与える可能性があります)。そのため、Ruby モードを微調整して、顔を変更せずに異なる構文グループを顔に関連付けることができれば、それが好ましい選択になります。

  • 装飾のレベルを調べることができます。通常、Emacs の言語モードはフォント ロック モードを使用してテキストを描画します。一部のモードでは、レベルに応じて多かれ少なかれ色を提供します。詳細はこちら: http://www.gnu.org/software/emacs/manual/html_node/elisp/Levels-of-Font-Lock.html

  • また、Ruby モードでは、強調したい文字 (番号記号や引用符) が元々強調されていない可能性もあります。構文要素と顔の関連付けを微調整しても、装飾レベルでもこれが達成できない場合は、ここで説明されているように、Font Lock モードにキーワードを追加してみてください: http://www.gnu.org/software/emacs /manual/html_node/emacs/Font-Lock.html

  • また、何らかの方法で空白文字を表示したかったようですhttp://emacswiki.org/emacs/ShowWhiteSpace#toc7ここにその方法に関する情報があり、行の最大長を表示するマージンに関する情報もあります。

  • コマンドで行番号の表示を切り替えることができますM-xlinum

PS。また、GUI版と端末版では配色が異なる場合がありますのでご注意ください。端末バージョンは全体的に少ない色を使用する可能性があり、通常は GUI バージョンよりも高いコントラストを目指します。

于 2012-12-01T00:16:07.970 に答える
4

同じソラリゼーションカラースキームを使用すると、両方のエディターで同じカラー パレット (つまり、選択した色のセット) が得られます。まだ異なるのは、エディターがファイルタイプの構文を解析する方法 (つまり、検出された異なる構文要素の数) と、解析された構文要素をグループ化してグループを強調表示する方法です。

Vim (Emacs について話すことはできません) は、ファイルタイプ固有の構文グループ (例: vimCommand) を使用し、ハイライト定義の固定セット (Statementこの例では) にリンクされます。カラースキームは、これらの定義の色を提供します。規則は次の場所にあります:help group-name(ただし、すべての構文定義が必ずしもそれらに完全に準拠しているわけではありません)。

これはあなたにとって何を意味しますか?相違点を比較し、(Vim では):hi link ...コマンドを使用してマッピングをカスタマイズできますが、使用するすべてのファイル タイプに対して、それは大変な作業です。そして、それはまだ解析がどのように機能するかに依存します。最終的には、どちらのエディターを使用するかを決めることになると思います。それまでの間、違いについてはあまり気にしません。

于 2012-11-30T19:55:58.400 に答える