マークリングを効果的に使用する


29

マークを使用してバッファーの領域を選択しました。たとえば、シーケンスC-<space> C-s fooを使用して、現在のポイントとの検索後のポイントの間のすべてのテキストを選択できることを知っていますfoo

私は最近、マークリングの存在を発見したのでC-<space> C-<space>、マークを残して、バッファ内のポイントを移動し、C-u C-<space>ジャンプして戻ることができます。

マークリングを使用して効果的にナビゲートするための提案、ガイド、またはヒントはありますか?


2
質問してくれてありがとう。私が思い浮かぶのは、「マークを追加する」ためのバインディングを高速化することです (global-set-key (kbd "s-m") '(lambda () (interactive) (push-mark)))
ジョーコルネリ

回答:


22

Helmには、ローカルとグローバルの両方のマークリングを参照するためのインターフェースがありますhelm-all-mark-rings

簡単な説明とスクリーンショットについては、ミニガイドをご覧ください。

また、Ivy / Swiper / Counselをご希望の場合は、をご覧くださいcounsel-mark-ring


驚くばかり。これはするアクションで改善できることの一つ削除マークリングからマークを...
ジョーCorneli

12

経由に設定set-mark-command-repeat-popした場合t

(setq set-mark-command-repeat-pop t)

マークリングに保存されている以前の場所にジャンプするためのC-SPC最初の呼び出しの後、押し続けることができますC-u C-SPC


10

レジスタを使用して場所をマークする方が簡単であることがわかりました。C-x r <space>次に、マークC-x r jする文字とジャンプする文字があります。多数のマークを維持できます。複数のバッファーを切り替えるときに非常に便利です


2
私はいつも...私自身は私にレジスタを割り当てるための最良の手紙を決定するために一時停止を見つける
nispio

@nispioしばらく前に、拡張git@github.com:atykhonov / iregister.el.gitを実装しました。アイデアの1つは、使用するレジスタの決定をスキップできるようにすることでした。拡張機能は役に立たないかもしれませんが、カスタムスクリプトで無料のレジスタを使用するだけで、使用済みのレジスタを参照して復元できるという考え方を取り入れることができます。
アンドリーティホノフ

9

C-x C-xexchange-mark-and-point使用方法はに似ていますC-u C-space。これにより、ポイントと最後のマークの間をバウンスできます。transient-mark-modeマークをアクティブにしてリージョンを選択するため、バウンスするのは少し奇妙です。


C-x C-xtransient-mark-modeを使用すると、最後に選択したもの(ieditモードで有用)またはヤンクしたものを選択するのに最適です。
ルーンKaagaard

8

あなたがここで手に入れた他のヒントとは別に、私はC-sあなたにマークを設定することに言及する必要があると思ったので、明示的にそれをする必要はありません。また、「潜在的に長い道のりを移動する」多くのコマンド(beginning-of-bufferおよびend-of-buffer)は、開始位置をマークします。マークを操作する他の方法(ポップ、交換ポイント、マークなど)と一緒に、それがどのように機能するかを理解すれば、バッファを操作する非常に強力な方法です。また、テキストをバッファにヤンクすると、ヤンクしたテキストをポイントとマークで囲むことに注意してください。


5

(あなたの質問はかなり自由端なので、主に意見に基づくものとして閉じられるかもしれません。)

私が使用するもの:Icicles マルチコマンド icicle-goto-marker(にバインドC-- C-SPC)で任意のバッファー内のマークをトリップする(mark-ring)、およびicicle-goto-global-markerC-- C-x C-SPC)グローバルマーク間でトリップする(global-mark-ring)。

マーカーが配置されているテキスト行は、補完候補として使用されます。いくつかのテキスト(部分文字列、正規表現など)を入力して、候補を一致する行に絞り込むことができます。あなたは好きなものを訪問して、一致する行の間を循環することができます。ライブラリも使用する場合crosshairs.elは、訪問したマーカーの位置が十字線で一時的に強調表示されるため、マーカーの場所をすばやく確認できます。

のdoc文字列の一部を次に示しますicicle-goto-marker

Go to a marker in this buffer, choosing it by the line that includes it.
If `crosshairs.el' is loaded, then the target position is highlighted.

By default, candidates are sorted in marker order, that is, with
respect to their buffer positions.  Use `C-M-,' or `C-,' to change the
sort order.

During completion you can use these keys:

`C-RET'   - Goto marker named by current completion candidate
`C-down'  - Goto marker named by next completion candidate
`C-up'    - Goto marker named by previous completion candidate
`C-next'  - Goto marker named by next apropos-completion candidate
`C-prior' - Goto marker named by previous apropos-completion candidate
`C-end'   - Goto marker named by next prefix-completion candidate
`C-home'  - Goto marker named by previous prefix-completion candidate
`<S-delete>' - Delete marker named by current completion candidate

Use `mouse-2', `RET', or `S-RET' to choose a candidate as the final
destination, or `C-g' to quit.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.