1. 程式人生 > >Emacs中的前進後退jump-tree

Emacs中的前進後退jump-tree

white family num check borde align right mod ide

Emacs中的前進後退jump-tree

Table of Contents

  • 1. 效果
  • 2. 為什麽開發這個插件?
  • 3. 特點
    • 3.1. 包含jump-list的所有功能
    • 3.2. 具有undo-tree的樹形結構記錄
    • 3.3. 增加命令移動的距離超過給定值時自動記錄位置的功能
    • 3.4. 增加切換buffer或者文件時自動記錄位置的功能
  • 4. 安裝

1 效果

可以自由的跳轉到不同的定義和文件中去,然後,再跳轉回來。

技術分享

2 為什麽開發這個插件?

本人在使用Emacs的過程中,長期由於缺乏一個類似於Vim的前進和後退的功能而苦惱。搜索了各種jump的實現方式,都總感覺欠缺了點什麽。
直到發現jump-list,但是jump-list有時不太清楚到底發生了什麽,特別是在閱讀別人的代碼的時候,經常要跳轉到定義的地方去,然後,跳回來,繼續往下讀,然後再跳到新的定義裏面去。但有時候,又想跳到剛剛的定義裏面去。這時,由於跳回來之後後面的記錄把前面的記錄會抹掉,所以,肯定是到不了前面那個定義中去的。
由於,經常使用undo-tree來做一些後退和恢復的操作,發現它的樹形記錄,可以記錄所有的操作歷史。任意的狀態,總是可以後退回去的。這個在進行反復操作的時候,非常有用。如果發現有什麽地方不對,馬上打開可視化的界面,進行後退,如果有分支的話,可以進入分支進行查看。於是,想能不能把這兩個結合起來。然後,就開發了這個jump-tree插件。

3 特點

3.1 包含jump-list的所有功能

可以根據設定的command列表,只要這些命令執行時,就記錄一個位置點,用於後退和前進。

3.2 具有undo-tree的樹形結構記錄

采用樹結構可以用來保存所有的歷史位置。我們可以跳轉到所有之前記錄的位置。

3.3 增加命令移動的距離超過給定值時自動記錄位置的功能

當命令移動的距離超過設定值時,記錄一個位置點用於後退。比如,翻頁,跳轉到函數頭、函數尾等。這些也可以使用前面的命令列表來實現,默認,命令列表的優先級比這個要高一些。當沒有設置命令列表時,只要移動距離比較大,也可以馬上退回到之前的位置。

3.4 增加切換buffer或者文件時自動記錄位置的功能

當我們的命令,會打開一個新的buffer或者文件時,會記錄一個位置,可以跳轉回去。

4 安裝

  • 可以使用package-list-packages進行安裝
  • 可以使用malpa進行安裝:
    melpa/jump-tree
  • 也可以從github上直接下載安裝:
    yangwen0228/jump-tree
    如果覺得好用也可以給項目點贊。^_^

Date: 2017-08-12 20:03

Author: WEN YANG

Created: 2017-08-12 Sat 20:35

Emacs 25.2.1 (Org mode 8.2.10)

Validate

Emacs中的前進後退jump-tree