3

*helm ag*バッファ内の何かの外観を変更したいと考えています。ある時点でどの顔が使用されているかを発見するための私の通常のトリック (私のお気に入りM-x customize-faceは関心領域内のポイント) は機能しません。ヘルム バッファー内のカーソルを制御する (明白な) 方法がないためです。

私の質問は次のとおりです。

  • 釣り方を教えて、一生食べさせてください: カーソルを置くことができないバッファーで使用されている顔を見つけるにはどうすればよいですか?

  • 1 匹の魚を与えて、1 日食べさせてください:*helm ag*現在選択されている行のパターン マッチを強調表示するために、バッファ内でどの面が使用されていますか?

アップデート

コマンド*helm-ag*によって作成されたバッファの場合、関連する面はです。ただし、コマンドによって作成されたバッファー (ダッシュなし!)では、以下の詳細情報で説明されているように、顔は効果がないように見えます。helm-aghelm-match*helm ag*helm-do-grep-aghelm-match

さらに詳しい情報

これは、カスタム テーマが有効になっていない emacs セッションの図です。

問題のイラスト

左下には を*helm ag*検索するバッファがありdefunます。バッファの 3 行目が選択されます。一致 ( defun) は他のすべての行で強調表示されますが、選択した行では強調表示されません。

右側には、可能性の高い候補の顔カスタマイズ バッファーがいくつかあります。helm-match赤の前景を持つように設定されていますが、これは*helm-ag*バッファに反映されていません。helm-matchこれは、私が探している魚ではないことを示唆しているようです。

4

3 に答える 3

2

まずここにあなたの「魚」があります: あなたが言及している顔はhelm-match.

特定の顔を見つける必要があり、その顔でテキストにポイントを配置できない場合に、私が個人的に試すいくつかの異なる戦略を次に示します。

  1. を使用M-x describe-faceして、名前の最初の部分が何であるかを推測し (この場合はhelm)、それで始まる可能性の高い候補をスキャンします。
  2. その顔が定義されている可能性が高いコード (この場合helm-ag.elは で見つけることができますM-x describe-function RET helm-ag) にface移動し、そのファイルで を検索して、一致する可能性のあるものを見つけます。
  3. M-x customize-faceと入力し'all faces'、顔を探して、探してhelm-*いるものと一致する名前と顔を見つけようとします (このバッファーに顔のサンプルが表示されるため) 。

おそらく、これらの方法のどれもがあなたが望んでいるほど直接的ではなく、より迅速な解決策があるかもしれませんが、これは私がすることです (そして行っています)。この場合、方法 2 で顔を見つけました。

アップデート:

これが私のセットアップのスクリーンショットです。

ここに画像の説明を入力

私にとって、関連する面はinhelm-matchから継承されていることに注意してください。また、強調表示された/選択された行と他の行との一致の表示方法の違いは、顔の違いによるものではなく、見られるように、強調表示された行の背景色が色にどのように影響するかによって引き起こされることに注意してください。ここでサンプル テキストを強調表示すると、次のようになります。matchreplace.el

ここに画像の説明を入力

更新 2:

OPがhelm-ag-do-grep別のファイルで定義されているものを使用していたことがわかりました- helm-grep.el. そのコードの顔を設定する部分は次のとおりです。

;;; Faces
;;
;;
(defgroup helm-grep-faces nil
  "Customize the appearance of helm-grep."
  :prefix "helm-"
  :group 'helm-grep
  :group 'helm-faces)

(defface helm-grep-match
  '((((background light)) :foreground "#b00000")
    (((background dark))  :foreground "gold1"))
  "Face used to highlight grep matches."
  :group 'helm-grep-faces)

(defface helm-grep-file
    '((t (:foreground "BlueViolet"
          :underline t)))
  "Face used to highlight grep results filenames."
  :group 'helm-grep-faces)

(defface helm-grep-lineno
    '((t (:foreground "Darkorange1")))
  "Face used to highlight grep number lines."
  :group 'helm-grep-faces)

(defface helm-grep-finish
    '((t (:foreground "Green")))
  "Face used in mode line when grep is finish."
  :group 'helm-grep-faces)

(defface helm-grep-cmd-line
    '((t (:inherit diff-added)))
  "Face used to highlight grep command line when no results."
  :group 'helm-grep-faces)

helm-grep-matchはあなたが探しているものだと思います。そうでない場合、問題の顔は上記のコード スニペットにある可能性が高く、それらの顔はすべて を使用してカスタマイズできるはずcustomize-faceです。このコードも、上記の方法 2 を使用して追跡されました。

于 2017-01-12T14:32:37.250 に答える
2

@elethan の #3 と同様のアプローチ:

  • を呼び出すlist-faces-displayと、すべての顔のリストがアルファベット順に表示されます。

  • 「ヘルム」で検索してください。

于 2017-01-12T15:16:56.220 に答える