Emacs的isearch一般都是激活以后直接搜索字符并上下跳轉(zhuǎn), 但是我們編程的時(shí)候, 往往搜索的內(nèi)容就是當(dāng)前光標(biāo)處的符號(hào), 如果每次都敲一遍符號(hào)字符串效率就會(huì)非常低.
2008年的時(shí)候, 寫了插件 lazy-search.el, 主要的目的是, 自動(dòng)激活當(dāng)前光標(biāo)處的符號(hào), 然后直接按 s 或者 r 就可以在匹配的字符中快速跳轉(zhuǎn), 跳轉(zhuǎn)到目標(biāo)位置后按q退出搜索繼續(xù)編程

lazy-search.el
但是這個(gè)插件依賴我的另一個(gè)插件 one-key.el , on-key 是一個(gè)針對(duì)快捷鍵的菜單導(dǎo)航系統(tǒng), one-key.el 雖然強(qiáng)大但是配置還是比較折騰的.
所以, 今天把 lazy-search.el 重新調(diào)整了一下:
- 移除了對(duì) one-key.el 的依賴
- 移除了很多不用的mark函數(shù), 因?yàn)橛玫淖疃嗟木褪菢?biāo)記光標(biāo)處的符號(hào)或者選區(qū)內(nèi)容
- 重構(gòu)了一些代碼和名字, 使得更容易理解
安裝
- 下載 lazy-search.el 里面的 lazy-search.el 放到 ~/elisp 目錄
- 把下面的配置加入到 ~/.emacs 中
(add-to-list 'load-path (expand-file-name "~/elisp"))
(require 'lazy-search)
(global-set-key (kbd "M-s") 'lazy-search)
使用方法
- 把光標(biāo)移動(dòng)到想要搜索的符號(hào)位置
- 按 Alt + S 激活 lazy-search 模式
- 按照下面的按鍵跳轉(zhuǎn), 或者按 q 退出 lazy-search 模式
| 按鍵 | 命令 | 解釋 |
|---|---|---|
| s | lazy-search-jump-to-next-match | 跳轉(zhuǎn)到下一個(gè)匹配位置 |
| r | lazy-search-jump-to-previous-match | 跳轉(zhuǎn)到上一個(gè)匹配位置 |
| . | lazy-search-jump-to-first-match | 跳轉(zhuǎn)到第一個(gè)匹配位置 |
| , | lazy-search-jump-to-last-match | 跳轉(zhuǎn)到最后一個(gè)匹配位置 |
| i | lazy-search-jump-to-init | 跳轉(zhuǎn)到開始搜索的位置 |
| j | lazy-search-view-next-line | 移動(dòng)到下一行 |
| k | lazy-search-view-previous-line | 移動(dòng)到上一行 |
| h | lazy-search-view-backward-char | 移動(dòng)到前一個(gè)字符 |
| l | lazy-search-view-forward-char | 移動(dòng)到下一個(gè)字符 |
| H | lazy-search-view-line-beginning | 移動(dòng)到行首 |
| L | lazy-search-view-line-end | 移動(dòng)到行尾 |
| J | lazy-search-scroll-up-one-line | 向上滾動(dòng)一行 |
| K | lazy-search-scroll-down-one-line | 向下滾動(dòng)一行 |
| e | lazy-search-scroll-down-one-page | 向上滾動(dòng)一屏 |
| Space | lazy-search-scroll-up-one-page | 向下滾動(dòng)一屏 |
| S | lazy-search-mark-symbol-or-region | 用光標(biāo)處的符號(hào)重新搜索 |
| w | lazy-search-copy-object | 拷貝搜索對(duì)象 |
| E | lazy-search-edit-object | 編輯搜索對(duì)象并重新搜索 |
| c | lazy-search-search-previous-cache | 搜索上次搜索對(duì)象 |
| Y | lazy-search-search-yank | 搜索yank內(nèi)容 |
| t | lazy-search-to-isearch | 切換到 isearch 模式 |
| q | lazy-search-quit | 退出 lazy-search 模式 |