Emacs: 智能標(biāo)記并一鍵跳轉(zhuǎn)

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)了一些代碼和名字, 使得更容易理解

安裝

  1. 下載 lazy-search.el 里面的 lazy-search.el 放到 ~/elisp 目錄
  2. 把下面的配置加入到 ~/.emacs 中
(add-to-list 'load-path (expand-file-name "~/elisp"))

(require 'lazy-search)
(global-set-key (kbd "M-s") 'lazy-search)

使用方法

  1. 把光標(biāo)移動(dòng)到想要搜索的符號(hào)位置
  2. 按 Alt + S 激活 lazy-search 模式
  3. 按照下面的按鍵跳轉(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 模式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容