從第一篇博文(06.17)到現在(08.09),emacs 學習也有一段時間了.
學習不下苦工,沒有興趣,沒有方法是不行的。 如果有一定功底,速成也是可以的。
從我調試跟人package-initialize 知道了它的啟動加載過程,就一下了有了
跳出苦海,脫離黑暗,看到光明之感。
目前簡化了emacs 配置,讓它以自己可以控制的方式運作。
以目前c/c++的環境為目标,分為以下幾個部分。
1. 自己添加的一些功能,主要是把vim 的一些好用的方式搬過來了。
例如:跳轉到字元,光标及螢幕的移動,代碼折疊的快捷方式等,統一
放在已ctrl-z 為字首鍵的快捷鍵上。
2. melp 控件的加載及配置.
目前主要插件為autocomplete, helm, gtags, ace-jump, project-explore
其它一些插件也有經試用被廢棄的. 插件為我所用,盡量少而精. 能讀懂插件
的關鍵代碼最好,時間有限,目前未到那程度,可能也不需要。
3. 從菜單進行的一些客戶化操作。
目前一些日常操作開始轉向emacs, 例如一些shell操作, dired管理,浏覽檔案,
也包括書寫一些簡單代碼。 但對于修改一個較大工程檔案, 現在用的還不熟,
情急之下,還是拿起我的vim,象風火輪一般一通查呀搜啊改啊。 emacs 還需要實戰。
不過emacs已經是我的新歡,愛不釋手。正所謂與vim各有千秋,交相輝映。以後就跟這
姐倆過了,看這架勢,愛妃大有超過皇後之意,這世道皇帝也難做...
---------------------------------------------------------------------------------------------------------
補充一些具體操作要點.
1.想要在替換字元串中插入回車符,可以在指定替換字元串時敲入C-q C-j來插入回車符。比如:
所有空格替換為回車
M-x replace-regexp <RET> <RET> C-q C-j
M-g g #goto line
ace-jump-mode C-c SPACE char 後可以用C-c C-c 來切換詞和字模式
2.emacs 幾個子模式, 友善閱讀
M-x read-only-mode
M-x view-mode
M-x white-space-mode
3. 設定長行自動換行,删除空格,檢視擊鍵曆史.
M-x toggle-truncate-lines
M-x trailing-white-space
C-h l #view-lossage 檢視擊鍵
4. 代碼折疊方式
M-x hs-minor-mode
M-x hs-hide-all,
用M-x 直接敲指令更友善,不用記太多快捷鍵
5. recent file(最近通路的檔案)
雖然在緩沖區中有最近的檔案, 但recent file 還有其友善性
菜單中有個recent file.
M-x recent 有幾個操作
重綁定到C-x C-r #(recentf-open-files)可以代替 vim 的Mru 插件
6. 檔案内的查找替換
C-s
M-x replace
helm 改進了查找指令的體驗.
occur (list-matching-lines) 就是vim 的quick fix 視窗
compile 指令也用occur 視窗, occur 視窗使用RET, o, C-o 來操作連結行(goto-occurrence, display-occurrence)
M-x next-error (C-x ` 或者 M-g n)
M-x previous-error(M-g p)
然後可以用C-x z z z z... 等來重複查找後面的error, 爽!
7. Project 等。
Emacs 有Projectile, 可以完成vim 對應 project 的功能, 同時也兼有vim Grepit 全項目查找功能,
還有靈活的檔案轉化, 跳轉到定義, 查找參考等功能.
有semantic 完成語義分析, 與speedbar配合, 可以替代taglist.
還有其它一些功能,與projectile 也有交叉之處.
如此已與vim 插件功能比對相仿, 完全可以替代vim project下的工作, emacs可以登堂入室.隻差練習了.
雜項:
1. 将目錄名儲存到寄存器:
C-u M-! pwd <RET>
2. 日記功能的使用, 約會實際提醒功能?
M-x calendar
id diary-insert-entry
還可以插入有循環功能日記内容
菜單上有常用的快捷鍵及功能
寫日記是為了顯示日記. 快捷方式還是看菜單欄吧.
簡計入下:
M-x calendar
s diary-show-all-entry
d diary-view-entries, 顯示光标日期處的日記
開機時顯示目前的日記:
在.emacs 中添加(diary)
想在月曆中辨別出哪天有日記, 按m 鍵或菜單中的Mark All
u 是取消标記.
日記精确到天提醒, 約會提醒則精确到時分了,如下用法:
M-x appt-add
3.學會用grep.
雖說比不了vim 的project-grep 插件,但可以應付了。
projectile grep 指令行也太長了,最好可以不顯示指令行
注意:
1. emacs highlighht-mode 與helm-mode 好像有沖突, 在helm-mode下, unhight 不能工作,隻能關閉highlight-mode, 此時會關閉所有highlight單詞