高效的emacs
來源:易賢網(wǎng) 閱讀:1318 次 日期:2015-04-02 13:07:48
溫馨提示:易賢網(wǎng)小編為您整理了“高效的emacs”,方便廣大網(wǎng)友查閱!

這篇文章用來總結自己對emacs的理解。本人之前使用過vim和sublime,現(xiàn)在主要使用emacs。

Start

就編輯速度來說,是不會有編輯器比vim更快的了。我也常常將代碼片段,或者日志,xml,考到sublime進行分析。多行編輯很實用。

但我在平時,主要還是使用emacs,無論是用它寫博客,寫代碼,執(zhí)行代碼,寫GTD,管理文檔…都非常的方便。

鍵綁定

一個高效的編輯器,就是能夠做到不用鼠標,編輯時在鼠標和鍵盤之間進行切換是一件很惱人的事情。這點在你抱著筆記本進行寫作的時候會深有體會。

常用的快捷鍵:(C代表Ctrl,A代表Alt)

C-n 向下移動一個字符

C-p 向上移動一個字符

C-b 向左移動一個字符

C-f 向右移動一個字符

A-b 向左移動一個單詞

A-f 向右移動一個單詞

C-a 移動到行首

C-e 移動到行尾

C-@ 設置選擇下標

C-w 剪貼選中區(qū)域

A-w 復制選中區(qū)域

C-l 將光標所在行,作為中心行,刷屏

C-x H 全選整個緩沖區(qū)。

C-k 刪除光標后的整行內容

C-d 刪除一個字母

M-d 刪除一個單詞

C-_ Undo

C-? Redo

C-s 查找

A-j 換行,與上一行保持同樣的縮進

A-< 移動到文件頭部

A-> 移動到文件尾部

C-x 3 左右分屏

C-x 2 上下分屏

C-x 1 除此屏全部關閉

C-x 0 關閉此屏

A-/ 補全

其它的一些也是因為不常用,基本不會去記它們的。

除了emacs自己的keybinding,我還特意做了些鍵綁定,提高效率。

(global-set-key (kbd "C-M-h") 'backward-kill-word)

;; (bash中的回刪單詞,也是這三個鍵)

(global-set-key (kbd "C-x f") 'recentf-ido-find-file)

;; (在最近打開文件列表中,選擇要打開的文件,這個很實用)

(global-set-key (kbd "C-x t") 'insert-current-date)

;; (插入當前日期,在寫博客或者gtd的時候,經(jīng)常用日期作為文件名的一部分)

(global-set-key (kbd "<f8>") 'insert-current-file-fill-path)

;; (插入當前文件的完整路徑,這個也比較實用)

(global-set-key (kbd "M-g") 'goto-line)

;; (跳轉到某一行,是沒有vim中的:n快)

(global-set-key (kbd "C-x w") 'copy-word)

;; (復制一個單詞,只要光標落在單詞上,就可以復制整個單詞)

13 (global-set-key (kbd "C-x y") 'copy-line)

14 ;; (emacs是沒有這個快捷鍵的,只能自己去實現(xiàn)了。在vim中,yy就可以了)

15 (global-set-key (kbd "C-c C-b") 'comment-or-uncomment-region)

16 ;; (快速的對代碼進行注釋與反注釋)

17 (define-key global-map (kbd "C-c a") 'wy-go-to-char)

18 ;; (跳到此行的某個字母,vim的f和t,比這個快得多)

實用的多功能

多窗口編輯,文件管理器,都是emacs多功能的一部分。甚至還可以配置git等外部程序,僅僅打開一個emacs就夠了。

我的emacs還配置了以下實用的多功能

;; 快速的使用bing查找(直接在emacs中查找,然后就會彈出網(wǎng)頁上的查找結果)

(prelude-install-search-engine "bing" "=" "Search Bing:" )

(global-set-key (kbd "C-c b") 'prelude-bing)

;; emacs 彈窗 (我常常退彈出一個cmd,運行python,或者運行git)

(defvar popup-terminal-command

(cond ((memq system-type '(windows-nt cygwin))

'("cmd" "/c" "start" ))

(t '("x-terminal-emulator"))))

(defun popup-term ()

(interactive)

(apply 'start-process "terminal" nil popup-terminal-command))

(global-set-key (kbd "<f5>") 'popup-term)

寫博客

我的博客是使用jekyll進行搭建的,所以日常,基本就是用markdown編輯完之后,用git推送到服務器。

這里要提的就是snippet,因為jekyll擴展了一部分的markdown語法格式,配置成snippet后,快速的插入模板片段非常有用。

比如我的sinppet:hl就對應jekyll的語法高亮擴展。這要比markdown自帶的語法高亮(縮進),功能強大一些。

markdown 高亮:

if i == 3:

print "人生苦短"

else:

print "我用python"

jekyll 高亮:

if i == 3:

print "人生苦短"

else:

print "我用python"

寫代碼

我用emacs主要寫的代碼就是python,或者是其它的腳本,像是bash,反正我是不會用它寫c#的,沒有什么編輯器會比vs更適合寫c#。

sinppet 是必不可少的了,python中能用到的snippet我都有配置,之前還配置過一部分和tornado相關的snippet。

我將emacs配置成可以彈窗出一個shell,我一般就在這個shell中執(zhí)行python

或者直接彈出顯示結果,但是這樣不能錯誤信息,而且你的python代碼末尾必須要有raw_input() 否則一閃

;; emacs彈窗,執(zhí)行,當前的python

(defun popup-expython()

(interactive)

(let ((filename "test.py")

(args (list "cmd" "/c" "start" "python" (buffer-name))))

(apply 'start-process "terminal" nil args)))

(global-set-key (kbd "<f6>") 'popup-expython)

不僅僅是鍵盤綁定,這些有關編程的emacs配置,也值得一提。

;; 好代碼一行不應該超過80個字符

(add-hook 'python-mode-hook

(lambda () (highlight-lines-matching-regexp ".\{81\}" "red")))

還有我的emacs主題是zenburn,這種主題看起來不扎眼,代碼高亮美觀。很舒服。

寫GTD

我對GTD的理解,是要單獨寫的,這里只介紹用emacs寫gtd的一部分內容。

emacs使用org模式來寫GTD,基本上可以看作是*做的一棵樹,可以切TODO和DONE,展開,折疊,打標簽。

這里插入我gtd的一部分:

* Blog

** DONE 我應該將我購買的域名掛到自己的網(wǎng)站上

CLOSED: [2014-09-11 Thu 13:30]

** TODO 翻譯相關內容

* Book

** DONE 寫給上班族的世界史

CLOSED: [2014-09-05 周五 22:15]

** DONE 方與圓

CLOSED: [2014-09-21 周日 23:30]

* 周末寫兩篇博客

** DONE 使用python的函數(shù)式編程和c#的linq來實現(xiàn)操作,而非迭代器

CLOSED: [2014-11-24 周一 11:29]

** 寫一篇關于c#的迭代器和python的迭代器,

不要神話emacs

之前在學習emacs和vim的時候,網(wǎng)上有許多文章神話這兩個編輯器,說是什么神的編輯器和編輯器之神。 其實如果說智能,它們是不會比VS智能的,emacs和vim最多也就是文本匹配,而vs卻真正的在內部構建代碼對象。emacs只是比較方便,比較自由而已,比較能折騰而已,要從實用角度出發(fā),而不是做一個腦殘粉。

更多信息請查看IT技術專欄

更多信息請查看技術文章
易賢網(wǎng)手機網(wǎng)站地址:高效的emacs

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網(wǎng)