我的Emacs折騰經驗談(三) speedbar , tabbar 還有linum-mode


離上一篇博客已經很遙遠了,最近總是各種逛,但沒有心思靜下來寫點東西,這回寫一下我之前用的一些東西.

Speedbar

首先是speedbar,這個東西是emacs自帶的,效果立竿見影,請輸入M-x speedbar就可以看到,就是一個簡單的文件樹,對於sublime text熟悉的同學這玩意應該已經一目了然了,但是這個東西經過一段時間的使用可能會存在一些問題,我現在感覺speedbar離sublime text的左欄還是有一點距離的.不過當然也有一些彌補的辦法.

首先,這個speedbar是單獨一個窗口的,這對於窗口分配來說有一點不爽了,因為幾乎所有的ide和編輯器都是在一起的,但是沒有問題,請M-x list-package找sr-speedbar,然后配置你的文件,加入如下代碼就可以了

(require 'sr-speedbar);;這句話是必須的
(add-hook 'after-init-hook '(lambda () (sr-speedbar-toggle)));;開啟程序即啟用

解釋一下,第一行是必須的,但是第二行是如果你想開啟emacs的時候這個東西就在的話可以加入這句話.另外在customize(輸入M-x customize)里面可以有很多調節speedbar的地方,首先我們需要speedbar出現在左邊,這里就要把Sr Speedbar Right Side:設為off.然后如果要在speedbar里面看所有文件的話(默認只顯示emacs認識的文件)需要把Speedbar Show Unknown Files設置為on.或者說可以把常見到的需要加入speedbar中的文件的后綴名加入.這樣設置基本上夠用了.

前面說了我怎么配置speedbar的,接下來吐槽一些還需要改進的地方,也許是我沒有鑽研透的因素,我認為目前有一些不足:

  1. 有點慢,這里說的是光標跟蹤的有點慢,事實上用鼠標點擊沒有高亮的地方是可以的,不需要等高亮移動過來,但是作為早就接受了光標和高亮同步的人來說,心中總會莫名地覺得好慢
  2. 刷新手動,就是說文件改動后在文件管理欄其實是沒有反應的,必須手動刷新才行,不知道為什么這樣設計
  3. 沒有文件管理功能,就是不能新建文件夾和新建文件.但是話說回來其實沒有必要做這個功能,至少大部分情況來說(C-x C-f比鼠標選取加郵件新增要快一些)

雖然有缺點,但是speedbar也有些有點不容忽視

  1. 作為一個文本編輯器可以顯示文件的版本控制狀態,我覺得這一點蠻重要的,在協同寫代碼的時候方便很多.
  2. 每一個文件可以函數級展開,就像IDE一樣,這比絕大部分文本編輯器都強

今后我會再試試其他類型的文件管理側欄,到時再為大家帶來更詳細的對比和配置.

Tabbar

在用慣了瀏覽器和標簽式文本編輯器的我們可以說對於一個主力文本編輯器居然沒有tab來切換buffer,而是用C-x b來切換buffer有些不能忍,於是理所應當的立即上tabbar,雖然StackOverFlow上有高手說tabbar不符合emacs熟練使用者的習慣,但是我作為初學者,應該先拿tabbar將就一下應該也未嘗不可.

tabbar安裝也是輕松又愉快地在list-package里面或者直接package-install安裝,同speedbar一樣我有些不滿它的外觀,所以安裝了tabbar-ruler插件,這樣會把tabbar整合到ruler欄里面,而且在打字的時候會出現ruler,移動鼠標又能變回tabbar,我覺得實在非常好用.

配置的話我就一條

(add-hook 'after-init-hook '(lambda () (tabbar-ruler-up)))

就是默認開了程序就啟用tabbar,加上用customize啟用了tabbar-ruler-global-ruler和tabbar-ruler-global-tabbar,這樣tabbar就長存於窗口上了.

這里要解釋下tabbar的邏輯和我們平常用的文本編輯器有些不一樣(雖然可以調成一樣的,但是我個人認為tabbar默認的更好),tabbar的顯示並不是直接把所有的buffer都列出來直接顯示在上面,這樣的話誰看誰不爽,因為有太多例如*strach*這種關了又沒准要用,不關又覺得礙眼的東西在.於是tabbar做出了創新:分組.

tabbar的buffer的分組是將兩個用一樣major mode的buffer分到一組,就是說,你自然可以看到你的python文件在一組,你的html又在一組,這樣平均每組都有標簽,找標簽的時候也不用一個一個去找了,先通過模式找更好.左上角的上下箭頭就是切換tabbar顯示mode還是顯示buffer名的.

Linum-mode

最后來介紹的最簡單的,linum-mode,這東西就只有一個功能:顯示行號,而且是emacs自帶的,配置也很簡單,(line-number-mode t)就可以了,這個可以在customize里面設置,唯一要注意的一點是它和speedbar有點沖突,所以我們需要在speedbar的window里面關閉它

(add-hook 'speedbar-mode-hook '(lambda () (linum-mode -1)))

這樣就搞定了.

 

總的的來說emacs還是一個步步折騰的過程,但是我在其中感覺還是很好的,配置這些糾結的東西也是一個學習的過程,配出自己順手的編輯器我個人覺得還是非常提升效率的,我已經把最常用的clojure開發基本上切換到了emacs上來.IntelliJ IDEA只是作為輔助.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM