Emacs的書簽功能介紹
emacs的書簽用于記錄你在文件中的閱讀位置杨帽。它有點(diǎn)類似寄存器腰鬼,跟寄存器一樣蛹磺,因?yàn)樗材苡涗浳恢梦恢谩?br>
但同寄存器有兩點(diǎn)不一樣:1. 它有比較長的名字; 2. 當(dāng)emacs關(guān)閉的時(shí)候畅买,它會(huì)自動(dòng)持久化到
磁盤。
設(shè)置一個(gè)書簽
當(dāng)我們閱讀一個(gè)很長的文檔倚舀,沒能一口氣讀完時(shí)叹哭。我們希望記住當(dāng)前文檔的最后閱讀的位置,以便下次再用emacs
閱讀的時(shí)候能快速地定位到痕貌。那么风罩,我們設(shè)置一個(gè)書簽,通過bookmark-set 對應(yīng)快捷鍵為 C-x r m
列出保存的書簽
bookmark-bmenu-list 對應(yīng)快捷鍵為 C-x r l 舵稠,它將打開一個(gè)*Bookmark List*的buffer同時(shí)
列出所有保存的書簽超升。
書簽列表*Bookmark List*
在*Bookmark List*這個(gè)buffer里入宦,有以下快捷鍵可以使用:
- a 顯示當(dāng)前書簽的標(biāo)注信息;
- A 在另一個(gè)buffer中顯示所有書簽的所有標(biāo)注信息;
- d 標(biāo)記書簽,以便用來刪除 (x – 執(zhí)行刪除);
- e 編輯當(dāng)前書簽的標(biāo)注信息;
- m 標(biāo)記書簽室琢,以便用于進(jìn)一步顯示和其他操作 (v – 訪問這個(gè)書簽);
- o 選中當(dāng)前書簽乾闰,并顯示在另一個(gè)window中;
- C-o 在另一個(gè)window中切換到當(dāng)前這個(gè)書簽;
- r 重命名當(dāng)前書簽;
- w 將當(dāng)前書簽的位置顯示在minibuffer里。
跳轉(zhuǎn)到一個(gè)書簽
使用 bookmark-jump 函數(shù)盈滴,可以跳轉(zhuǎn)到一個(gè)特定的書簽涯肩,它綁定的快捷鍵為 C-x r b 。
如果你的emacs中安裝了helm 這個(gè)插件巢钓,你也可以使用 helm-bookmarks 這個(gè)命令
來快速查找書簽病苗,并跳轉(zhuǎn)到書簽位置。
helm-bookmarks
通過helm-bookmarks命令來查找并跳轉(zhuǎn)書簽如下圖:
修改默認(rèn)排序
書簽查找和跳轉(zhuǎn)的時(shí)候症汹,默認(rèn)的書簽排序是按字母排序的硫朦。如果想將最近訪問的書簽放在最前面,
將下面代碼添加到你的emacs配置文件中背镇。
(defadvice bookmark-jump (after bookmark-jump activate)
(let ((latest (bookmark-get-bookmark bookmark)))
(setq bookmark-alist (delq latest bookmark-alist))
(add-to-list 'bookmark-alist latest)))
刪除一個(gè)書簽
刪除一個(gè)書簽對應(yīng)的命令為 bookmark-delete 咬展。
保存書簽
最新版本emacs(老版本的書簽保存在 ~/.emacs.bmk ),
在退出的時(shí)候會(huì)自動(dòng)保存書簽芽世。如果想手動(dòng)保存書簽的話挚赊,可以采用
bookmark-save 這個(gè)函數(shù)命令。默認(rèn)的情況济瓢,emacs會(huì)將書簽保存在 bookmark-default-file
變量對應(yīng)的文件中荠割。在我的機(jī)器中,對應(yīng)的文件如下:
ELISP> bookmark-default-file
"/Users/aborn/.emacs.d/.cache/bookmarks"
ELISP>
其他設(shè)置
有一個(gè)變量 bookmark-save-flag 旺矾。如果這個(gè)變量的值為一個(gè)數(shù)值蔑鹦,它表示修改(或新增)
多少次書簽后,emacs會(huì)自動(dòng)保存書簽到磁盤箕宙。當(dāng)這個(gè)變量的值被設(shè)置為1時(shí)嚎朽,每次對bookmark的改
動(dòng),emacs就會(huì)自動(dòng)保存內(nèi)容到磁盤相應(yīng)位置(這樣可以防止emacs突然crash時(shí)bookmark的丟失)柬帕。
如果這個(gè)值設(shè)置為nil哟忍,表示emacs不會(huì)主動(dòng)保存bookmark,除非用戶手動(dòng)調(diào)用
M-x bookmark-save 陷寝。
bookmark+
bookmark+ 是對bookmark的一個(gè)擴(kuò)展的包锅很。它有更多的功能:
- 原始的bookmark只能對文件位置記錄,bookmark+對孤立的buffer(沒有關(guān)聯(lián)文件的buffer)也能保存書簽;
- 支持對書簽進(jìn)行打tag;
- 對文檔的某個(gè)區(qū)域保存為書簽凤跑,而不僅僅是某個(gè)位置;
- 記錄了每個(gè)書簽的訪問次數(shù)爆安,及最后一次的訪問時(shí)間,可以基于它們排序;
- 多個(gè)書簽可以有相同的名字;
- 可以對函數(shù)仔引、變量等加書簽扔仓。
更多功能請參考: https://www.emacswiki.org/emacs/BookmarkPlus#Bookmark%2b