タグ付けされた質問 「font-lock」

フォントロックモードはマイナーモードであり、常に特定のバッファーに対してローカルであり、バッファー内のテキストに面を割り当てます。

7
80桁目でルーラーを取得するにはどうすればよいですか?
プログラマーとして、特定の列(通常は80)にルーラーを表示したいので、両方ともその列を横切ったときに表示されますが、コードに早期に再フォーマットできるようにどれだけ近いかを確認します。 私がこれまでに見つけたオプションは、すべてこの目標を達成していません。 whitespace-mode、column-enforce-mode、およびcolumn-marker行のテキストがすでに経過した後にのみ、個々の行をハイライトfill-column。コラムを横切ったときだけでなく、コラムに近づいたときを見たいです。 fill-column-indicator良い解決策になる、それが壊れる除きauto-complete-mode、company-mode、avy、そしてより多くの。これらは、それぞれが個々の回避策を必要とする修正するのは難しいように見える問題である-例えば、参照の問題と問題)、2歳以上、後者を。company-modeauto-complete-mode より良い代替手段はありますか?

2
emacsでMarkdownのSEフレーバーを使用するにはどうすればよいですか?
私はemacsでマークダウンのSE風味を使用したいと思います。デフォルトのマークダウンモードには、いくつかの機能(バックティックとインデントマークコード、#ヘッダーの作成>、フォントの変更)がありますが、次の機能も必要です。 * インデントを含むリストアイテムを作成します。 [foo](http://example.com)fooとして表示されhttp://example.com、クリックするとブラウザが開きます。 理想的には、これをレンダリングされたマークダウンとしてemacsに表示したいと思います。たとえば、次のように書く場合: ## Header * item 1 * item 2 while true; do echo foo; done End of list and more code while true; do echo bar; done See [here](http://example.com) for details emacs自体で次のようにレンダリングしたいと思います。 ヘッダ アイテム1 アイテム2 while true; do echo foo; done リストの終わりとその他のコード while true; do echo …

1
組織モードのマークアップシンボルを非表示にしますか?
Emacsでは、アスタリスク*を使用して太字フォントを実現できます(例:* 太字 *)。私の質問は、アスタリスクを非表示にすることはできますか?すなわち太字の代わりに*の大胆 *。取り消し線、斜体などについても同じ質問 これは達成できるはずです。例として、org-indentのアスタリスクに同じ背景色を設定して、非表示にすることができます。 * Headline one ** Headline two 対 * Headline one * Headline two キャレットを移動して、そこにアスタリスクを表示することもできます。これは素晴らしいことです。 質問に戻りますが、テキストの書式設定でマークアップに対して同じことを行うかどうか、またはその方法がわかりません。

2
引用符内のシェル変数の強調表示
vimでは、次のドキュメントにより、$PWD2行目と3行目が2つの異なる方法で色付けされます。 #/bin/sh echo "Current Directory: $PWD" echo 'Current Directory: $PWD' の最初のインスタンスは$PWD、それが含まれる文字列の残りの部分とは異なる色になります。これにより、変数がリテラルテキストとして扱われるのではなく、展開されることを明確に視覚的に示します。対照的に、の2番目のインスタンスは$PWD、文字列の残りの部分と同じ色になります。これは、単一引用符によって文字列として扱われるためです。 このタイプの「シェル引用符認識」を提供する既存のemacsモードはありますか?
13 font-lock  bash 

1
フォントロックパフォーマンスの最適化
アンカーフォントロックマッチングのバリアントを実行したい。名前のリストで始まる関数定義があり、それらの名前を関数本体内で強調表示したいです。 これを行う関数を作成し、jit-lock-registerを使用してjit-lock関数として登録しましたが、パフォーマンスがかなり悪く、大きなファイルでスクロールが遅れます。 パフォーマンスを測定するにはどうすればよいですか?大きなファイルで関数を呼び出すとき(elpの前後または浮動時間)にパフォーマンスを大きく変えると、0.65から12秒までかかります。フォントロックのパフォーマンスをベンチマークする推奨方法はありますか? font-lock-keywordsで定義されたアンカーマッチャーとjit-lock-registerを介して関数を追加する間にパフォーマンスの違いはありますか? 編集:パフォーマンスの変動はガベージコレクションに関連しているようです。私のjit-lock関数の呼び出しは、ガベージコレクションが実行されるまで各呼び出しで連続的に遅くなり、その時点で再び高速になります。

3
別のメジャーモードでバッファの領域をフォント化する
Ansibleモジュールのドキュメントを表示するバッファーがあります。このバッファには、すべての標準的なものを提供する独自のメジャーモードがあります。特に、インラインマークアップ、オプション、セクションなどを強調表示するためにバッファをフォント化します。全体として、これはに非常によく似ていM-x manます。 ドキュメントの下部には、通常、YAMLのコード例がいくつかあります。これらもフォント化したいと思います。もちろん、YAMLに独自のフォントロックキーワードを追加することもできますが、YAMLモードのフォント化を再利用したいです。 どうやってやるの?具体的には、バッファの特定の領域をフォント化するために、どのように異なるメジャーモードを使用できますか? この地域では、YAMLモードをアクティブにする必要はありません。バッファ全体はパッシブなディスプレイバッファに過ぎず、編集することを意図したものではありません。私は本当にその地域でYAMLモードがアクティブであるかのように生成されたフォントのみを必要とします。 バッファーの領域を一時バッファーにコピーし、YAMLモードを有効にし、バッファーをフォント化し、すべてのテキストプロパティをコピーできると想定しています。それはうまくいくでしょうか?その場合、テキストプロパティをコピーする方法、およびコピーする関連プロパティは何ですか?または、より良いアプローチがありますか?
12 font-lock  region 

1
色で宣言された変数
emacsにC / C ++の単一の関数で宣言された変数を記憶させる簡単な方法を探しています。「シンプル」とは、外部パッケージがなく、構成ファイルにいくつかのelisp行があることを意味します。 私のデフォルトのEmacs構成では、宣言時に変数名を黄色に着色していますが、使用時には白色にしています。 char toto; // 'char' is green, 'toto' is yellow toto = 42; // 'toto' is white 同じ機能/スコープのすべての「toto」も黄色に着色したいと思います。 私はすでにこの質問を見てきましたが、もっと簡単なことを望みます。また、font-lockモードで何かをしようとしましたが、変数名に適応できるものを作ることに成功しませんでした。 (名前パターンを使用した)C ++クラスメンバー名のアイデアはすでにあるので、ここでローカル変数の一致を求めています。

1
font-lock-defaultsでカスタムフェイスを指定するにはどうすればよいですか?
既存のフェイスを使用してフォントロックキーワードを定義すると、文字列「foo」を強調表示できます。 (defconst my-mode-font-lock-keywords (list (cons "foo" 'font-lock-type-face))) (define-derived-mode my-mode fundamental-mode "My mode" "A demo mode." (set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords))) これは正しく強調表示されます: ただし、自分の顔を定義した場合: (defface my-mode-foo-face '((t :inherit font-lock-preprocessor-face)) "Face for highlighting 'foo'.") (defconst my-mode-font-lock-keywords (list (cons "foo" 'my-mode-foo-face))) (define-derived-mode my-mode fundamental-mode "My mode" "A demo mode." (set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords))) ハイライトは適用されません: font-lock-defaults自分で定義した顔でどのように使用できますか?

2
マイナーモードで複雑な構文の強調表示を追加する方法
マイナーモードでさまざまな面を持つコードを強調表示したいと思います。 ここに私が欲しいものに近いスクリーンショットがあります: 私が見逃していることの1つは、にコメント文字#があること font-lock-comment-faceです。考えは、アウトラインに「属している」コメントをプレーンテキストとして強調表示することで、読みやすくなります。いつもの目立たない顔で定期的なコメントをしている間。 これが私が使ったコードです: (setq-local font-lock-defaults '(python-font-lock-keywords nil nil nil nil (font-lock-syntactic-face-function . lpy-font-lock-syntactic-face-function))) (defun lpy-font-lock-syntactic-face-function (state) "Return syntactic face given STATE. Returns 'defalt face for comments that belong to an outline." (cond ((nth 3 state) (if (python-info-docstring-p state) font-lock-doc-face font-lock-string-face)) ((save-excursion (while (and (> (point) (point-min)) (progn (move-beginning-of-line …

1
特定のモードのみの構文強調表示をカスタマイズする方法
lua-mode.el他の主要なモードに影響を与えずに、構文の強調表示を変更したいと思います。 ただ、一例として、私のような「キーワード」を希望if、then、elseときに大胆かつ青色の書体であることをlua-mode編集しているときに、同じハイライトスタイルをせずに(代わりにデフォルトのピンクの).texAUCTeXでファイルを。 これまでのところ、次のコードをmyに入れてから、my .emacsにも入れようとしましたlua-mode.el: (custom-set-faces '(font-lock-builtin-face ((t (:foreground "maroon3")))) '(font-lock-comment-face ((t (:foreground "green4")))) '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold)))) '(font-lock-string-face ((t (:foreground "dark cyan"))))) しかし、この方法では、使用するすべてのモードで同じ構文の強調表示が得られます。 この質問は関連している可能性があります:メジャーモードを変更せずに構文の強調表示を変更しますか? (うまくいけばシンプルで一般的な)これを行う方法はありますか?

1
LaTeXソースブロックの一貫した構文強調表示を行う
org-babelコードブロックの構文強調表示のためのOrgマニュアルのソリューションは、ネイティブフォントをオンにすることです。 (setq org-src-fontify-natively t) ブロックで囲まれたLaTeXコードでうまく機能します #+BEGIN_SRC latex ただし、次のブロックは対象外です。 #+BEGIN_LATEX 両方のタイプのLaTeXソースブロックで同じLaTeX構文強調表示スキーム/設定を使用する方法はありますか?

4
重複する行を強調表示するにはどうすればよいですか?
ここに私が持っているものがあります: (defun my-show-duplicate-lines () (interactive) (highlight-lines-matching-regexp (concat "^" (regexp-quote (substring-no-properties (thing-at-point 'line) 0 -1)) "$") font-lock-warning-face)) 私の意図は、これを追加してpost-command-hookロジックを複製している行を見つけることですが、コマンドを2回目に実行しても効果がありません(古いフォントロックはまだ有効です)。 2番目の問題は、フォントロック自体が更新されないことが原因です。(font-lock-mode -1) (font-lock-mode 1)定義にを追加しようとしましたが、効果がありませんでした。 しかし、なぜこのコマンドが1回の実行に対してのみ有効なのかはわかりません。
8 font-lock 

1
ESSモードでパイピング演算子%>%を実装する方法は?
最近、私が最近非常に頻繁に使用するコードRでのパイプ演算子%>%またはthen演算子のスマートな導入を目撃しました。これは、ESSの最新バージョンですでに実装されているのでしょうか。そうでない場合でも、そのelispための関数を作成するコードを考え出すことは問題になりません。これを実装して、その演算子%>%を出力してから、インデントされた新しい行にジャンプするようにする必要があります。 MWE library(ggplot2) library(dplyr) diamonds %>% filter(cut=="Ideal") %>% ggplot(aes(price)) + geom_histogram() + facet_wrap (~ color) 私のelispトライアル-で.init.elまたは.emacsファイル: (defun then_R_operator () "%>% operator or 'then' pipe operator" (interactive) (insert " %>%") ; note the space before the first % (reindent-then-newline-and-indent)) (global-set-key (kbd "C-%") 'then_R_operator) 動作しますが、何か問題があるかどうか、またはそれを改善するための提案(elispの初心者)があるかどうかを確認したいと思います。これをESSモードのみに制限する方法は? メモの フォントロックは、ESSメニューから%>%有効にすることで実行できることに気付きましたess-fl-keyword:operators。
8 font-lock  ess 

1
文字列/引用符内の特定のキーワードを強調表示する方法は?
VIMの文字列内(引用符内)のSQLキーワードを強調する別の構文があります。次のようになります。 次に、PHPモードのEmacsでは、引用符(')の間のすべてがフォントロックによって文字列と見なされます。 ご覧のとおり、別のフォントフェイスプロパティ(筆記体キーワードなし)を使用した最初の例はより明確です。キーワードは区別がはるかに簡単です。 font faceプロパティを調べているとき: (font-lock-string-face ((t (:foreground "#536991" :slant italic)))) 次に、特定のキーワードに一致する場合、の中に別の顔をfont-lock-string-face適用する必要があるとどうしてわかるのかと思います。 任意の提案をいただければ幸いです。

1
バッファの一部のみでフォントロックモードを使用する
Perlスクリプトのポッドドキュメントにコメント機能を追加しようとしています。ポッドのコメントを特別な顔で強調したいと思います。単純なプロトタイプPerlスクリプトは次のようになります。 #! /usr/bin/env perl use strict; use warnings; print "Hello\n"; # a Perl comment /* hello */ __END__ =head1 SYNOPSIS my_program <arg1> [OPTIONS] /* this is a Pod comment */ ご覧の/* */ように、Cプログラミング言語の場合と同様に、Podコメントの後に続きます。ただし、__END__境界より下の部分のみがポッドのドキュメントです。その行の上の部分は通常のPerlコードです。ここで、たとえば(fromから呼び出されるcperl-mode-hook)を使用して、Podコメントに構文の強調表示を追加しようとすると、次のようになります。 (font-lock-add-keywords nil '(("\\(/\\*.*?\\*/\\)" 1 'font-lock-warning-face t))) 私はcperl-modeメジャーモードとして以下を使用しています: そのため、Podコメントは通常のPerlコメント(Perlコメントが#文字で始まる)でも強調表示されますが、これは望ましくありません(Podコメントは、通常のPerlコードではなく、Podセクションでのみ強調表示する必要があります)。 簡単にするために、この質問では、ポッドのドキュメントがドキュメントの最後に限定され、__END__タグの後の行から始まると想定できます。現在のコメントの位置を確認し、それを__END__行の位置に関連付けることができます。その情報から、Podブロック内にあるかどうかを判断します(そして、Podブロック内にある場合のみ構文の強調表示を追加します)フォントロックコードを実行するとき?
7 font-lock  perl 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.