Notepad ++には便利な機能があります。テキスト内のWord(必ずしもキーワードではない)を選択すると、Wordはテキスト全体で強調表示されます。これはEmacsでも実行できますか?もしそうなら、どのように?
Notepad ++とまったく同じように機能する必要はありません(つまり、選択を介して)。理想的には、カーソルの下にあるすべてのWordが強調表示されるようにするキーバインドを設定したいと思います。
ハイライトが永続的な場合、つまり、ハイライトされたWordからポイントを移動するとnotになり、ハイライトが削除されるのは素晴らしいことです。
また、(カスタムキーバインドを使用して)ハイライト間を移動できるソリューションがあれば便利です。
多分 http://nschum.de/src/emacs/highlight-symbol/ のhighlight-symbol.elはあなたが探しているものです:
hi-lock
提案は良いです。私はそれを使用する方が簡単だと思います M-x ただし、バージョン:
M-x highlight-regexp
RET <REGEXP>
M-x highlight-phrase
RET <REGEXP>
highlight-phrase
は、highlight-regexp
大文字小文字を無視し、正規表現内のスペースを任意の空白に一致するように変換します。ハンディ。
タイプC-s
、次に現在のWordを入力するか、C-w
。ボーナスとして、C-s
もう一度Wordを検索します。
これはインクリメンタル検索と呼ばれます。
私が使用しているのはアイドルハイライトです
http://www.emacswiki.org/emacs/IdleHighlight
M-x idle-highlightは、ポイントの下にあるWordのバッファー内のすべての発生を強調表示するアイドルタイマーを設定します。
すべてのプログラミングモードで有効にするには、~/.emacs.d/init.el
:
;; highlight words
(add-hook 'prog-mode-hook (lambda () (idle-highlight-mode t)))
Light-symbol は、シンボルポイントが上にあるものを強調表示します。
または、 occur を使用して、正規表現に一致するすべての行をリストできます。クラス内のすべての関数をすばやく表示すると便利です。
試してください http://www.emacswiki.org/emacs/msearch.el カーソルで選択されたテキストのすべての出現箇所が強調表示されます。強調表示する文字列をドラッグする必要があります。これにより、ハイライトを変更せずに選択を簡単に変更できます。
文字列の強調表示を保持する場合は、それをフリーズできます。
バッファを別のバッファにスレーブ化できます。マスターバッファーで選択されたテキストは、スレーブバッファーでも強調表示されます。これは、バッファの比較に役立ちます。また、あるバッファのテキストを調べながら別のバッファのメモを取るのにも役立ちます。ノートバッファにキーワードのコレクションを含めることができます。そのようなキーワードの上にドラッグすると、調査されたテキスト内でのその出現が強調表示されます。
私は何年もこのものを使用しています。つい最近、フリーズを追加しました。したがって、何かが壊れている可能性があります。この場合は、 http://www.emacswiki.org/emacs/msearch またはここにメモを残してください。
これはあなたが望んでいたものほど素敵ではないかもしれませんが、
(global-hi-lock-mode 1)
あなたの.emacs
ファイルを入力すると、C-x w h REGEX <RET> <RET>
REGEX
のすべての出現を強調表示し、C-x w r REGEX <RET>
再びハイライトを解除します。繰り返しますが、おそらくあなたが望むほどエレガントではありませんが、それは動作します。
ライブラリ内のコマンド highlight.el
オーバーレイまたはテキストプロパティを使用して、正規表現(この場合はシンボル)に一致するテキストを(非)ハイライトできます。オカレンス間を循環できます。ハイライトは一時的または永続的です。 (詳細) 。
iedit を試してください。 Wordをポイントで強調表示し、出現する箇所をすべて簡単に編集できます。追加のキーストローク(C- ')を使用すると、そのWordを含まないすべての行が非表示になります。とても便利な!
これはおそらくハイライト表示されませんが、入力する必要なくWordを検索します...
検索したい単語C-Sに到達したら、C-WでWord全体を読んでからC-Sを実行すると、検索されます。 Emacsでは、ドキュメント内のすべてのインスタンスも強調表示します。
Melpaで利用可能なこのパッケージは、ハイライトスタイルもカスタマイズできます。
https://github.com/ignacy/idle-highlight-in-visible-buffers-mode
誰も言及していません symbol-overlay
mode 。基本的にはhighlight-symbol-mode
のより良い書き直しです。 「良い」のように、元のハイライトシンボルのバグがありません(一時的なハイライトがスタックしたり、ハイライトされたWord内で移動するために一時的なハイライトが消えたり; *
)など、より良く統合され、維持されています。 READMEの「利点」の段落を参照してください。
いつものようにインストールできます M-xpackage-install (事前にパッケージリストをpackage-list-packages
で更新してください)。参考のために、投稿の下部にはモードを有効にするための私の設定からのコードがあります。
Notepad ++には便利な機能があります。テキスト内のWord(必ずしもキーワードではない)を選択すると、Wordはテキスト全体で強調表示されます。これはEmacsでも実行できますか?もしそうなら、どのように?
overlay-symbol
を有効にすると、タイムアウト後にカーソルを置くすべてのWordの画面上の出現が表示されます(デフォルトではタイムアウトは0.5秒で、symbol-overlay-idle-time
変数)。 Wordが強調表示されない場合、これは画面上に一致するものが1つだけであることを意味します(カーソルを置いたもの)。したがって、必要はありません。それを強調表示します。
ハイライトが永続的である場合、つまり、ハイライトされたWordからポイントを遠ざけてもハイライトが削除されないようにすれば素晴らしいでしょう。
カーソルの下にあるWordを永続的に強調表示するには、symbol-overlay-put
という関数があります。ハイライトを解除するには、もう一度呼び出します。
私の設定例では、にバインドされています Logo+` キー。
(require 'symbol-overlay)
(defun enable-symbol-overlay-mode ()
(unless (or (minibufferp)
(derived-mode-p 'magit-mode)
(derived-mode-p 'xref--xref-buffer-mode))
(symbol-overlay-mode t)))
(define-global-minor-mode global-symbol-overlay-mode ;; name of the new global mode
symbol-overlay-mode ;; name of the minor mode
enable-symbol-overlay-mode)
(global-symbol-overlay-mode) ;; enable it
(global-set-key (kbd "s-`") 'symbol-overlay-put)
(setq symbol-overlay-map (make-sparse-keymap)) ;; disable special cmds on overlays