日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

世界上最強(qiáng)大的編輯器 Emacs 學(xué)習(xí)筆記

 yangjiqingchina 2011-01-29

世界上最強(qiáng)大的編輯器 Emacs 學(xué)習(xí)筆記

已有 280 次閱讀 2011-1-7 22:59 |個(gè)人分類(lèi):@emacs|系統(tǒng)分類(lèi):教學(xué)心得|關(guān)鍵詞:emacs ,linux, 編輯器, 編程

 
 
簡(jiǎn)介

Emacs 被很多人稱(chēng)作世界上最強(qiáng)大的編輯器。用戶(hù)從無(wú)數(shù)高手到IT民工到普通文本編輯器用戶(hù),可以符合幾乎所有人的需求。甚至可以在Emacs 里運(yùn)行音樂(lè)播放器、網(wǎng)頁(yè)瀏覽器等等,Emacs 更像是一個(gè)操作平臺(tái)。

使用 Emacs 可以完全拋棄鼠標(biāo),不必在打字的同時(shí)把手移開(kāi)鍵盤(pán)找鼠標(biāo),不必在一大堆深藏不露的菜單里尋找那些常用功能,也不必被一條條工具欄遮擋視線(xiàn)。大多數(shù)的 Windows 編輯器都有一條菜單欄,n條工具欄。菜單里有無(wú)數(shù)選項(xiàng),很多選項(xiàng)都會(huì)彈出一個(gè)對(duì)話(huà)框,這個(gè)對(duì)話(huà)框又會(huì)帶有層層疊疊的標(biāo)簽,每個(gè)標(biāo)簽里 又有很多輸入框很多按鈕。一個(gè)簡(jiǎn)單的把所有字母大寫(xiě)的命令就要在菜單里翻半天,說(shuō)不定還找不到,而他們的幫助信息又總是不知所云。而 Emacs 的大多數(shù)操作都可以通過(guò)快捷鍵或直接輸入命令完成,而且有著極好的幫助系統(tǒng),可以通過(guò)多種方式找到你想要的命令或按鍵。

不要被 Emacs 簡(jiǎn)單的外觀和與眾不同的操作方式迷惑,上手 Emacs 并不是什么難事,看一遍 Tutorial 就可以了,Emacs23 已經(jīng)帶著多種語(yǔ)言版本的快速指南,包括中文。仍然覺(jué)得 Tutor 太長(zhǎng)?那可以繼續(xù)看本文。

按鍵說(shuō)明

首先說(shuō)明一下,Emacs 的按鍵表示方法。最常用的是 Ctrl 和 Alt 的組合鍵, 分別用 C 和 M 表示,比如:

  • C-x 就是 Ctrl+x,
  • M-x 就是 Alt+x,
  • C-M-f 就是 Ctrl+Alt+f,
  • M-% 就是 Alt+%,實(shí)際上是 Alt+Shift+5
  • C-x C-f 就是 Ctrl+x 然后再按 Ctrl+f,中間可以一直按著 Ctrl 也可以松 開(kāi),無(wú)所謂間隔多長(zhǎng)時(shí)間。

這樣你就可以簡(jiǎn)單的用 C 和 M 表示 ctrl 和 alt 了。Shift 可以用 S 表示。

鍵盤(pán)上的特殊按鍵用<>表示,比如回車(chē),空格,方向鍵上, 等等,一看就知道什么意思。

打開(kāi)和保存文件

啟動(dòng) Emacs 后,按 C-x C-f,minibuffer (就是 Emacs 最下面一條) 會(huì)提示路 徑,你可以在這里輸入路徑名和文件名,或者回車(chē)看到這個(gè)目錄列表??梢?用方向鍵移動(dòng)光標(biāo)到文件名上回車(chē)打開(kāi)文件,或者在子目錄上進(jìn)入子 目錄,在 .. 上進(jìn)入上一層目錄。

打開(kāi)文件后像往常一樣編輯,隨便按字母鍵輸入一些字符。按 C-x C-s 保存文件。按 C-x k 回車(chē)關(guān)閉這個(gè) buffer。

小結(jié):按鍵說(shuō)明

這里可以看到很多 C-x 開(kāi)頭的組合鍵,這些通常都是 Emacs 預(yù)先定義,全局性 的命令。按了 C-x 不動(dòng),一秒鐘后 minibuffer 提示 C-x- ,表示 Emacs 正在 等待用戶(hù)按下一個(gè)鍵。如果你想取消這次按鍵,可以接下去按 C-g,minibuffer 提示 C-x C-g is undefined 也就是說(shuō) Emacs 什么都沒(méi)有執(zhí)行。C-g 一般都是取消命令,取消按鍵。如果按了 C-x C-h 就會(huì)出現(xiàn)一個(gè)幫助 buffer,里面是以 C-x 開(kāi)頭的按鍵幫助。C-h 是一個(gè)幫助按鍵。如何獲得更多的幫助,會(huì)在之后的小節(jié)介紹。C-c 開(kāi)頭的按鍵通常是用戶(hù)自定義的按鍵和擴(kuò)展包或擴(kuò)展模式定義的 按鍵,同樣也可以獲得幫助信息。

選定區(qū)域,剪切、復(fù)制、粘貼

你可以用鼠標(biāo)拖選一塊區(qū)域。當(dāng)然,最好用鍵盤(pán)。按 C-@,minibuffer 提示 Mark set,設(shè)定了一個(gè) mark。然后移動(dòng)光標(biāo),這時(shí)候你就選定了光標(biāo)和 Mark 之 間的區(qū)域。什么都看不到?你可以按 C-w,這塊區(qū)域就消失了,C-w 是剪切。按 C-x u 可以撤銷(xiāo)上一次的剪切,C-x u 是取消。你肯定想看到你到底選中了哪塊 區(qū)域,可以按M-x 然后輸入 transient-mark-mode ,回車(chē)。這次你就可以看到你選中了哪塊區(qū)域了。M-x 是執(zhí)行 Emacs 命令。

Emacs 有一個(gè)很有用的功能,在你選定了區(qū)域之后按 C-x C-x 可以交換光標(biāo) (point) 和 Mark 的位置,這樣你就可以修改調(diào)整你選定的區(qū)域了。

按 C-g 取消選定的區(qū)域。

重新用 C-@ 選定一塊區(qū)域,按 M-w,這是復(fù)制,移動(dòng)光標(biāo)到別處,按 C-y,這是粘貼。緊接著再按一次 M-y,這時(shí)可以看到粘貼的內(nèi)容變成了上一次剪切的內(nèi)容。 再按 M-y 又變成之前一次復(fù)制的內(nèi)容。

C-k 可以剪切一行。連續(xù)的 C-k 會(huì)把剪切的內(nèi)容放在一起,一次 C-y 就可以把之前的 n 行一起貼上。

C-x u 可以撤銷(xiāo),不過(guò)這個(gè)撤銷(xiāo)和常規(guī) windows 程序的撤銷(xiāo)不太一樣。按了 C-x u 撤銷(xiāo)后,如果移動(dòng)一下光標(biāo),再按一次 C-x u,可以撤銷(xiāo)之前的撤銷(xiāo)命令。 這樣相當(dāng)于是 redu。

小結(jié):

  • C-@ 選定區(qū)域
  • C-w 剪切
  • M-w 復(fù)制
  • C-y 粘貼
  • M-y 粘貼剪貼板之前的內(nèi)容
  • C-k 剪切一行
  • C-x u 撤銷(xiāo)

查找

其他 windows 程序的查找通常會(huì)跳出一個(gè)對(duì)話(huà)框,這很討厭,會(huì)遮住文本內(nèi)容, 有時(shí)候我就會(huì)忘了我到底要找什么。Emacs 就不會(huì)這樣。按 C-s 是查找, minibuffer 提示 I-search: 接下來(lái)你可以輸入你要找的詞,比如想找 windows, 輸入 w,Emacs 開(kāi)始找到 w,光標(biāo)移動(dòng)到 w 上,接著輸入 i,Emacs 找到 wi, 并注意到Emacs 會(huì)同時(shí)高亮所有的 wi,接著輸入 n,Emacs 找到 win,等等。這 就是 incremetal search,它的好處是,你想要找 windows,但實(shí)際上你只要輸 入 win 就能定位到 windows 上了,不需要繼續(xù)輸入 dows 了。繼續(xù)按 C-s 找下一個(gè)匹配的。C-r 往回查找。按回車(chē)或者方向鍵結(jié)束本次查找,再按兩次 C-s 重復(fù)上次查找,按 C-g 取消查找,光標(biāo)回到原處。

C-s 或 C-r 也可以用作光標(biāo)定位,比如想要移到前面 Emacs 處,就可以 C-r Emacs,效率很高,可以說(shuō)是指哪打哪。

如果查找輸入的全是小寫(xiě),那么這次查找是大小寫(xiě)不敏感的,如果輸入字符中有 大寫(xiě)字母,那么這次查找就是大小寫(xiě)敏感的。很智能吧。

C-M-s 或 C-M-r 是正則表達(dá)式查找?;蛘咴?C-s 之后按 M-r 也可以切換到正則 表達(dá)式查找。這里不仔細(xì)講 Emacs 的正則表達(dá)式是怎么樣的。

替換

M-% 是 query-replace,輸入查找內(nèi)容和替換內(nèi)容,然后 Emacs 會(huì)詢(xún)問(wèn)是否要 替換,y 替換,n 不替換,! 替換光標(biāo)之后所有,q 結(jié)束,? 可以得到幫助。

Emacs 的替換有一個(gè)很好的特性,可以只在選定區(qū)域內(nèi)進(jìn)行替換。這樣就可以放心大膽地使用 ! 替換所用,而不用擔(dān)心超出范圍了。

C-M-% 是正則表達(dá)式的替換。

小結(jié):

  • C-s 和 C-r 向前向后查找
  • C-% 替換
  • C-M-s 和 C-M-r 向前向后正則表達(dá)式查找
  • C-M-% 正則表達(dá)式替換

尋求幫助

Emacs 提供了極其強(qiáng)大的幫助系統(tǒng)。

C-h t 是一個(gè) tutorial,現(xiàn)在也有不同語(yǔ)言的 tutorial。按 M-x 輸入 help-with-tutorial-spec-language 可以選擇不同的語(yǔ)言。按 Emacs 可 以幫你補(bǔ)全命令。按兩次 會(huì)有補(bǔ)全的提示。

C-h a 是 apropos command,你可以輸入幾個(gè)簡(jiǎn)單的單詞,Emacs 可以幫你找到 相應(yīng)的命令,這個(gè)幫助非常好用。比如你想把一個(gè)單詞全部大寫(xiě),但不知道該怎 么做,可以 C-h a 輸入 upcase word 或者 up word,Emacs 就會(huì)找到幾個(gè)命令, 其中一個(gè)是 upcase-word,并且對(duì)應(yīng)的按鍵是 M-u,你只要把光標(biāo)移動(dòng)到單詞前按 M-u 就可以了。

C-h k 是描述某個(gè)按鍵會(huì)執(zhí)行什么。例如你要看看 M-; 是干什么的,按 C-h k, 接著按 M-; 你就會(huì)看到 M-; 會(huì)運(yùn)行 comment-dwim,dwim 是 do what i mean 的縮寫(xiě),這個(gè)命令會(huì)注釋或反注釋你選定的區(qū)域,如果沒(méi)有選定區(qū)域,會(huì)在這一行后面加上注釋。很聰明的命令吧。

C-h c 簡(jiǎn)單描述某個(gè)按鍵執(zhí)行什么。

C-h f 描述某個(gè)函數(shù)

C-h v 描述某個(gè)變量

C-h 會(huì)提供很多很多幫助信息,C-h ? 會(huì)顯示有哪些幫助信息。

簡(jiǎn)單配置

Emacs 有超強(qiáng)的可配置性,1000個(gè)人可以有1000種配置,可以有自己的鍵綁定, 有自定義的函數(shù),有自己喜歡的擴(kuò)展包。配置放在 home 目錄下的 .emacs 里, Emacs 啟動(dòng)的時(shí)候會(huì)自動(dòng)讀取這個(gè)文件。啟動(dòng) Emacs 后,C-x C-f ~/.emacs 會(huì) 打開(kāi) .emacs 文件,如果不存在的話(huà)就是新建這個(gè)文件。home 目錄在哪里呢? 可以 M-x getenv home 得到 home 的位置。Linux 系統(tǒng)很好理解。 Windows 系統(tǒng),會(huì)默認(rèn)放在 C:\Documents and Settings\username\Application Data 下,有幾種方法可以指定 home 的位置:

  • 在 我的電腦->屬性->高級(jí)->環(huán)境變量 里添加一個(gè) HOME 環(huán)境變量,指定位置。
  • 在注冊(cè)表 [HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs] (如果沒(méi)有 GNU 或 Emacs,添加一個(gè)即可) 添加 HOME 字符串變量,值為指定的 home 路徑。

Emacs 配置使用的語(yǔ)言是 Elisp,Emacs 附帶非常詳細(xì)的 Elisp 手冊(cè),可以通 過(guò) M-x info 得到。配置 .emacs 一般只需要幾個(gè)簡(jiǎn)單語(yǔ)句,比如:

  • (setq variable-name value) 設(shè)置變量值,例如 (setq transient-mark-mode t) 設(shè)置選定區(qū)域范圍高亮
  • (require 'extension) 安裝一個(gè)擴(kuò)展包。
  • (load "file-name") 使用一個(gè) .el 文件
  • (global-set-key (kbd "C-c f") 'function-name) 全局自定義鍵綁定
  • (define-key dired-mode (kbd "j") 'dired-next-line) 局部鍵綁定,只在 dired-mode 起作用
  • (if ...) 一些簡(jiǎn)單的判斷語(yǔ)句

這里提供一個(gè)簡(jiǎn)單的 .emacs 文件: quick.emacs.el

你可以把它復(fù)制到你的 home 目錄下并改名為 .emacs 注意有個(gè).

或者用 runemacs.exe -q -l quick.emacs.el 來(lái)指定 emacs 使用這個(gè)配置文件。

總結(jié)

介紹一些文本編輯的基本操作。只是為了說(shuō)明上手 Emacs 其實(shí)很簡(jiǎn)單,而且?guī)缀趺恳粯硬僮鞫加斜绕胀?Windows 文本編輯器更好的特性,比如可以任意調(diào)整已選定的區(qū)域,更好的復(fù)制粘貼機(jī)制,更好的撤銷(xiāo)機(jī) 制,更好的 isearch 查找方式,可以在區(qū)域內(nèi)替換,強(qiáng)大得多的幫助系統(tǒng),沒(méi)有任何限制的擴(kuò)展性。用了幾天或幾個(gè)星期后就會(huì)覺(jué)得其他的編輯是多么麻煩和弱小。

本文摘自《30分鐘Emacs入門(mén)》,特此聲明。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多