Re: [emcs] Spacemacs 融合vim與emacs
看板Editor (編輯器(vim/emacs))作者upplysa (opplyse)時間9年前 (2015/12/06 16:22)推噓7(7推 0噓 4→)留言11則, 7人參與討論串2/2 (看更多)
分享一下我的 Emacs 調教之旅:
2013 接觸 Emacs 的時候,設定檔 init.el 都是從網路上剪剪貼貼來的。
隨著時間推移,init.el 變得越來越雜亂,毫無章法。
就在此時看到了 coldnew 在板上分享用 org babel 來整理 init.el,
覺得非常棒,我也依樣畫葫蘆地用了 org babel 來整理我的 init.el。
用了一陣子以後我還是不滿意。
(我相信所有的 Emacs 使用者都一樣,永遠都在改進自己的 init.el。)
不滿意的地方是開啟 Emacs 的速度,與套件的安裝。
套件一多了,開啟速度就變慢。要同步多台電腦的設定也變得麻煩。
如果有個設定檔能夠自動幫我安裝我想要套件就好了!
有一天我讀了 redguardtoo 的 "一年成为Emacs高手(像神一样使用编辑器)",
決定也要用大師的 init.el。
我跟 redguardtoo 一樣,複製了 Steve Purcell 的 .emacs.d。
大家都說 Purcell 的設定非常經典,我不太懂 elisp 所以無法評價。
但是我知道用 Purcell 的設定有很多好處:
1. 套件可以自動安裝了! 只要列個清單, Purcell 的設定會幫你把套件都裝好。
2. 不用自己維護設定檔了! Purcell 時常更新他的設定檔。
有位大師不斷在更新維護他的設定檔,我跟著就行了!
3. Purcell 很貼心地留了兩個插入點,讓我們可以嵌入自己的設定。
4. 我喜歡他把各個套件 xyz 的設定放在 init-xyz.el 檔,
然後在 init.el 裡面 require xyz 就可以用了。
雖然我不懂 elisp,但是 Purcell 的架構很清晰,很容易理解在幹嘛。
然而用別人的套件也不是全然美好的。
很多我熟悉的快速鍵不是沒了,就是被改掉了。
此外我對 front-end 的開發沒有什麼涉略,許多設定對我來說沒什麼用。
開啟 Emacs 的速度有進步,但還是不夠快。
在這過程中,我試用了其他編輯器,例如 Lighttable 和 Atom。
Atom 很棒,很流暢,很現代,我真的很喜歡。
可是用著用著,我總覺得心裡少什麼。
我懷念 Emacs 可以用我設定好的快速鍵做一切事情的感覺。
就在我迷惘的時候,我遇見了 Spacemacs,讓我重回了 Emacs 的懷抱。
Spacemacs 就像是其他的 starter-kit 一樣,是個 Emacs 的設置。
我試過其他的設置像是 prelude,也很不錯,
但是 Spacemacs 是完全不一樣等級的令人驚豔!
打從你啟動 Emacs 開始,就有一種煥然一新的感覺!
先從外觀說起:
1. Spacemacs 的 logo 很有質感,很現代的感覺。
https://github.com/syl20bnr/spacemacs/blob/master/doc/img/title2.png
2. 預設的 theme 是 spacemacs-dark,我想大部分的人都沒看過,有種耳目一新的感覺。
主要的色調是藍色與紫色,在灰色的背景上,充滿現代科技感。
https://github.com/syl20bnr/spacemacs/blob/master/doc/img/spacemacs-python.png
3. 介面上有許多巧思: 有 powerline ,有 buffer 編號顯示,有 Evil 狀態顯示,
還有 minor mode 的燈號顯示等等。
你可能會說,這些都沒什麼大不了,
只不過是安裝了對應的套件罷了。
沒錯,這些都是套件 + 一些手動設定。
但是能夠把這麼多套件一次整合在一起,而且弄得漂漂亮亮,很有整體感,
這就是厲害的地方!
操做介面:
1. 剛安裝好 Spacemacs 會問你要用 Vim 還是 Emacs 的介面。
我雖然沒用過 Vim ,但是我喜歡 modal edting 的概念,
所以我之前就在用 Evil-mode 了。
建議 Emacs 的使用者可以玩玩看,過一陣子你就會愛上他的。
2. 我不熟悉 vim ,所以我無法評論 Evil-mode 有多像真的 vim 。
從討論串上看來, vim 的使用者反應挺不錯的。
3. Spacemacs 不只有 vim 的 modal edting 而已。
許多常用的指令都是用空白建來觸發的:
例如切換換行模式,可以用 SPC t l 來完成。
t 代表 toggle, l 代表 truncate line。
清除不必要的空白,可以用 SPC x d w 來完成。
x 代表 text,d 代表 delete ,w 代表 white。
很多指令都可以簡化成 SPC 加上一連串的字母。
這些字母通常都是有意義的,所以很好記得。
更棒的是,如果你忘記要輸入什麼字母, Spacemacs 會顯示所有可能的按鍵,
你也可以用 C-h 切換到 helm 來搜索指令。
多打個兩三次你的肌肉記憶就形成了。
4. 切換 buffer 可以用 SPC n, n = 1, 2, 3,...。
每個 buffer 下面都會有編號。這樣可以很快地跳到你想要去的 buffer 。
5. 總結的說,空白建 SPC 是 Spacemacs 的進入點。很多指令都可以從 SPC 出發找到。
這提供了諸多套件一個統一的快速鍵平台。
所以你會發現, Spacemacs 不只是外觀上統一,操作起來的感覺也是很一致的。
我想程式設計師最能夠欣賞 consistency 的優美。
架構上來說:
1. Spacemacs 引進 layer 的概念。說穿了就是 Purcell 的 init-xyz.el 的進階版。
Spacemacs 把一個明確定義的擴充功能稱作一個 layer 。
例如對於 C++ 的支援就可以作為一個 layer ,叫做 c-c++。
一個 layer 裡面可能包含好幾個相關的套件,
例如 CMake、gtags、flycheck 等等有關 C++ 開發的套件。
在這個 layer 裡面,各種設定與快速鍵的配置都會按照 Spacemacs 的常規來設計。
這樣的設計增進了 Spacemacs 操作起來的一致性。
2. 你可以自行設定要啟用那些 layer 。
一旦你啟用了,Spacemacs 會幫你下載,幫你管理更新。
3. Spacemacs 是個活躍的專案,時常有更新。
Spacemacs 會自動檢查並且提醒你更新。
Spacemacs 還有一個巨大的優點: 他是匯集眾人之力的設置。
官網說這叫 Crowd-Configured 。
記得我說用 Purcell 設定檔的優點嗎? 就是有個大師不停地在調教設定檔。
Spacemacs 在這點更高一籌:
因為 Spacemacs 的架構設計,很容易讓使用者貢獻新的 layer ,
你等於有了上百個世界各地的使用者在幫你調教 Emacs!
我認為這是 Spacemacs 最棒的地方!
在用過各種配置以後,我真心向大家推薦 Spacemacs。
無論你是 vimer 還是 Emacser,就像 Spacemacs 官網說的,
最棒的編輯器不是 vim 也不是 Emacs,而是兩者!
※ 引述《michael1436 (阿龜)》之銘言:
: 標題: [emcs] Spacemacs 融合vim與emacs
: 時間: Wed Nov 4 04:10:49 2015
:
: 先附上連結
: https://github.com/syl20bnr/spacemacs
:
: Spacemacs太令我驚豔了
: 漂亮的介面
: 與vim的超高相容性
: Document也很完整
: 尤其是把leader設為space
: 操作起來超級順手
:
: 有人也在用Spacemacs嗎?
:
: 我一定是瘋了
: 現在還在學elisp
: 上班時間倒數中 Orz
:
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.21.172
: ※ 文章網址: https://www.ptt.cc/bbs/Editor/M.1446581453.A.80C.html
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 50.174.17.28
※ 文章網址: https://www.ptt.cc/bbs/Editor/M.1449390120.A.2A3.html
推
12/06 23:44, , 1F
12/06 23:44, 1F
推
12/07 14:03, , 2F
12/07 14:03, 2F
→
12/07 14:26, , 3F
12/07 14:26, 3F
大家一起加入啊!
越多人用社群就越健康!
推
12/08 00:01, , 4F
12/08 00:01, 4F
→
12/08 00:01, , 5F
12/08 00:01, 5F
→
12/08 00:01, , 6F
12/08 00:01, 6F
謝謝 Vimer 的經驗分享!
推
12/08 01:20, , 7F
12/08 01:20, 7F
我對 color theme 沒什麼研究,不過 spacemacs-theme 的原始碼在:
https://github.com/nashamri/spacemacs-theme
他有很詳細的解說怎麼自訂。
※ 編輯: upplysa (50.174.17.28), 12/08/2015 10:41:27
推
12/08 22:58, , 8F
12/08 22:58, 8F
推
12/09 09:45, , 9F
12/09 09:45, 9F
→
12/09 09:45, , 10F
12/09 09:45, 10F
可以! Emacs/Vim 的強項就是在 terminal 也可以運行。
Spacemacs 只是增強 Emacs 的功能,並沒有改變他的核心。
※ 編輯: upplysa (50.174.17.28), 12/09/2015 11:07:54
推
12/10 02:27, , 11F
12/10 02:27, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Editor 近期熱門文章
PTT數位生活區 即時熱門文章