自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Emacs基礎(chǔ)知識(shí)簡(jiǎn)介

運(yùn)維 系統(tǒng)運(yùn)維
學(xué)習(xí)過(guò)Emacs對(duì)Emacs有點(diǎn)經(jīng)驗(yàn)用戶都知道, 隨著對(duì)Emacs的了解的不斷深入, 越來(lái)越覺(jué)得Emacs是一款非常值得學(xué)習(xí)的軟件。為了便于Emacs初學(xué)者的學(xué)習(xí),本文介紹了Emacs軟件的基本概念、學(xué)會(huì)看Emacs的文檔以及會(huì)一些Emacs軟件簡(jiǎn)單的配置等內(nèi)容,希望能夠?qū)ψx者有所幫助。

學(xué)習(xí)過(guò)Emacs對(duì)Emacs有點(diǎn)經(jīng)驗(yàn)用戶都知道, 隨著對(duì)Emacs的了解的不斷深入, 越來(lái)越覺(jué)得Emacs是一款非常值得學(xué)習(xí)的軟件. 所以有不少用戶向自己的朋友推薦Emacs. 而對(duì)于Emacs初學(xué)者來(lái)說(shuō). 好多初學(xué)者都沒(méi)有好好的學(xué)過(guò)Emacs, 也有可能是Emacs的資料不是很多, 好資料更少, 他們沒(méi)有找到好的學(xué)習(xí)方法吧. 所以, 我想就我所了解的, 寫一些初學(xué)者應(yīng)該知道的東西, 或者說(shuō), 初學(xué)者掌握了這些知識(shí)和方法后, 學(xué)習(xí)Emacs起來(lái)更加容易吧. 另外, 初學(xué)者如果有興趣的話, 可以看看本人另外一篇拙作《Emacs初學(xué)者必看》, 希望能對(duì)你們有所幫助.

知道Emacs的基本概念

1.buffer

緩沖區(qū). Emacs并不直接對(duì)文件進(jìn)行操作, 它是把文件加載進(jìn)buffer, 用戶直接操作buffer, 只有當(dāng)用戶確定把buffer中所做的修改寫人文件時(shí), Emacs才把buffer中的內(nèi)容寫入文件. buffer實(shí)際上就是一個(gè)內(nèi)存緩沖區(qū), 這和一般編輯器中都一樣, 應(yīng)該很好理解.

2.window

窗口. 由于Emacs很早就誕生了, 它的窗口概念和現(xiàn)在基于窗口的操作系統(tǒng)中的窗口概念不是一樣的. Emacs中的窗口是用來(lái)顯示buffer的一個(gè)區(qū)域. 它并不像操作系統(tǒng)中的窗口擁有自己的標(biāo)題欄,系統(tǒng)菜單欄.

3.frame

Emacs中的frame就是操作系統(tǒng)中的窗口.

buffer是文件的內(nèi)存表示, windows則是顯示buffer的區(qū)域, 一個(gè)frame中可以有多個(gè)window, Emacs則可以有多個(gè)frame.

4.Emacs Lisp

Emacs最基礎(chǔ)的部分是用c寫的,其他部分都是用Emacs Lisp語(yǔ)言寫的,Emacs Lisp語(yǔ)言是基于lisp語(yǔ)言的. lisp是LISt Processor的縮寫, 即鏈表處理語(yǔ)言, 所以lisp語(yǔ)言的操作都是基于鏈表的, 它的語(yǔ)法也是鏈表結(jié)構(gòu), 鏈表***個(gè)元素表示函數(shù)名, 其他元素是參數(shù), 比如通常語(yǔ)言中的a+b, 在lisp就是(+ a b)

5.mode

mode有major mode和minor mode之分, 每個(gè)緩沖區(qū)對(duì)應(yīng)一個(gè)major mode, 也只有一個(gè)major mode, 但是可以有多個(gè)minor mode. Emacs對(duì)每一種文件都有一個(gè)mode.

6.命令

你對(duì)Emacs所有的操作都是對(duì)Emacs的命令的調(diào)用。比如,你在text-mode里,當(dāng)你按下任何字母鍵進(jìn)行編輯的時(shí)候,實(shí)際上是調(diào)用的emacs的命令self-insert-command.

7.快捷鍵

Emacs中Control鍵用C表示,Alt鍵用M表示, 即: C-c表示Control C, M-x表示Alt x.

除掉以Alt鍵開(kāi)頭的,比如Alt a,Emacs中的快捷鍵基本上都有一個(gè)前綴,Emacs中最多的快捷鍵前綴就是C-x,C-c,前綴表示,你不必要一起按下前綴和后綴,可以先按下前綴,Emacs會(huì)等待你按下剩余的快捷鍵,這樣Emacs中的快捷鍵按起來(lái)非常的方便。

8.keymap

鍵盤映射. Emacs的快捷鍵是通過(guò)keymap來(lái)控制的. 有全局和局部的keymap. 每個(gè)mode都會(huì)有一個(gè)自己的局部的keymap, 局部的keymap會(huì)覆蓋全局的keymap, 另外如果對(duì)應(yīng)的major mode有開(kāi)啟的minor mode, 而且這個(gè)minor mode有keymap的話, 這個(gè)minor mode的keymap會(huì)覆蓋major mode的keymap.

學(xué)會(huì)看文檔

Emacs的文檔非常豐富, 有Elisp自己的自文檔, 還有更詳細(xì)的info. Elisp中的變量, 函數(shù)都有文檔. 對(duì)于大多數(shù)情況都?jí)蛴昧?

1.查看變量的值和文檔

  1. C-h v (describe-variable) 

2.查看函數(shù)的文檔

  1. C-h f (describe-function)  

3.查看face的文檔

  1. M-x describe-face  

4.查看某個(gè)mode的文檔

  1. C-h m (describe-mode) 

剛開(kāi)始學(xué)習(xí)某個(gè)mode的時(shí)候, 可以用C-h m看看當(dāng)前buffer對(duì)應(yīng)的主mode和副mode的文檔, 這個(gè)文檔一般都會(huì)包括mode中的命令和快捷鍵列表.

5.查看Emacs中某個(gè)快捷鍵對(duì)應(yīng)的命令

  1. C-h k (describe-key)  

6.查看某個(gè)命令對(duì)應(yīng)的快捷鍵

  1. C-h w (where-is)  

7.查看當(dāng)前buffer所有的快捷鍵列表

  1. C-h b (describe-bindings)  

8.查看當(dāng)前buffer中以某個(gè)快捷鍵序列開(kāi)頭的快捷鍵列表

<待查看的快捷鍵序列> C-h,比如你想查看當(dāng)前buffer中所有以C-c開(kāi)頭的快捷鍵列表,按C-c C-h就可以了。

9.查看Emacs函數(shù)的代碼

  1. find-function  

10.查看變量的代碼

  1. find-variable  

11.查看face的代碼

  1. find-face-definition   
  2. M-x apropos 

查看包含某個(gè)關(guān)鍵詞的函數(shù),變量,face

會(huì)些簡(jiǎn)單的配置

1.執(zhí)行Elisp代碼

在某條語(yǔ)句后面按C-x C-e (eval-last-sexp)可以執(zhí)行那條語(yǔ)句

M-x eval-buffer 可以執(zhí)行當(dāng)前buffer內(nèi)的Elisp代碼

選中一個(gè)region后, M-x eval-region可以執(zhí)行這個(gè)region內(nèi)的代碼

2.安裝插件

Emacs的插件一般都是一個(gè)以el為后綴名的文件, 把這個(gè)文件下載下來(lái)后放到一個(gè)目錄, 比如~/emacs/lisps, 然后執(zhí)行下面這兩條語(yǔ)句:

  1. list 'load-path "~/emacs/lisps" 

3.快捷鍵定制

全局綁定global-set-key, 綁定某個(gè)mode的快捷鍵用define-key. global-set-key的定義為:

比如想把C-j綁定到”到達(dá)指定行上”(goto-line), 這樣就可以了:

  1. (global-set-key (kbd "C-j") 'goto-line) 

kbd是Emacs的宏, 把快捷鍵轉(zhuǎn)換為Emacs的內(nèi)部按鍵表示. 然后執(zhí)行上面那條語(yǔ)句, 就會(huì)使你的配置生效. 然后你可以用C-h k檢查一下你的定制是否成功了.

如果對(duì)于比較復(fù)雜的快捷鍵, 比如Control x F3, 改怎么寫呢? 按C-h k(describe-key), 然后再按下Control x F3, Emacs會(huì)出現(xiàn)一個(gè)”C-x “, 這個(gè)就是你要寫到kbd宏里面的內(nèi)容.

如果你想對(duì)某個(gè)特定模式比如c++-mode進(jìn)行快捷鍵定制, 用define-key即可, 對(duì)于上面的例子這樣寫:

 
  1. (define-key c++-mode-map (kbd "C-j") 'goto-line) 

define-key***個(gè)參數(shù)map一般為mode后面直接加”-map”

4.簡(jiǎn)單的顏色定制

  1. (set-background-color "black") ;; 使用黑色背景  
  2.  
  3. (set-foreground-color "white") ;; 使用白色前景  
  4.  
  5. (set-face-foreground 'region "red")  ;; 區(qū)域前景顏色設(shè)為紅色  
  6.  
  7. (set-face-background 'region "blue") ;; 區(qū)域背景色設(shè)為藍(lán)色  

Emacs基礎(chǔ)知識(shí)只是先讓大家對(duì)Emacs軟件有一個(gè)基本了解,這樣在學(xué)習(xí)Emacs時(shí)能夠更加容易。而有關(guān)Emacs的知識(shí)還有待于大家在底下多搜索一些資源主動(dòng)去學(xué)習(xí)和掌握,希望本文能夠?qū)Υ蠹矣兴鶐椭?/p>

責(zé)任編輯:韓亞珊 來(lái)源: 博客轉(zhuǎn)載
相關(guān)推薦

2011-05-31 13:50:14

CiscoIOS

2010-06-02 13:03:20

MySQL數(shù)據(jù)庫(kù)

2011-05-31 13:15:05

路由器IOSCisco

2011-05-31 13:50:11

路由器CiscoIOS

2011-05-31 13:50:17

CiscoIOS

2011-05-31 13:15:03

路由器CiscoIOS

2011-05-31 13:52:22

口令CiscoIOS

2015-05-28 15:16:19

交換機(jī)

2014-06-17 16:17:58

Docker 1.0Docker

2023-05-12 16:04:10

2009-09-23 11:07:11

Hibernate基礎(chǔ)

2010-07-16 10:53:30

Perl基礎(chǔ)

2015-06-01 13:35:43

數(shù)據(jù)中心DCIM

2009-04-17 14:22:40

XPathXML基礎(chǔ)

2011-03-29 14:11:20

Cacti基礎(chǔ)知識(shí)

2009-04-10 09:35:00

WCDMA基礎(chǔ)無(wú)線網(wǎng)絡(luò)

2023-07-04 07:31:06

MapReduce數(shù)據(jù)處理編程模型

2010-07-16 11:22:31

Perl

2014-08-20 10:15:45

2010-08-16 09:42:23

無(wú)線局域網(wǎng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)