天天看點

emacs 學習小結

從第一篇博文(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單詞