歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> VI的競爭對手Emacs快速入門

VI的競爭對手Emacs快速入門

日期:2017/2/27 14:31:33   编辑:更多Linux
  Emacs 啟動:  直接打emacs, 如果有X-windows就會開視窗. 如果不想用X 的版本, 就用 emacs -nw   (No windows)起動.    符號說明  C-X 表示按住CTRL鍵, 然後按X, 再把CTRL, X一起放開.  M-X     META         META    在沒有META鍵的電腦上, M-X 等於先按 ESC鍵, 接著按 X鍵.  Sun上面META鍵就是菱形的那個鍵.  有些系統META鍵就是ALT鍵.(或者某一邊的ALT鍵)    C-X或 M-X的X沒有大小寫分別.    Emacs按鍵命令基本上是一串C-<chr>和M-<chr>組成的.  超過兩個以上的按鍵命令, Emacs會在螢幕最下面一行顯示你按過什麼.  這一行叫作mini buffer    結束Emacs按 C-x C-c    取消執行 C-g  有些Emacs命令會跑很久, 可以用C-g中斷之. 按錯鍵也可以按C-g取消.    上下移動  C-p 向上 (previous line) C-n 向下(next line)  左右移動  C-f 向右 (forward)    C-b 向左 (backward)    其實Emacs內部沒有行的概念, 把一篇文章放在一個大buffer  裡面, 所以C-f (forward)就是向檔尾移動, C-b (backward)  是移回去的意思, 一次一個字.    翻頁 下一頁 C-v (view next screen)  上一頁 M-v    翻頁時,上一頁末尾會留一點在螢幕最上面,以維持連續性.    Emacs在游標接近螢幕最下方時會自動跳半頁, 把檔案往前挪一點, 方便閱讀.    重畫螢幕 C-L    Emacs裡面游標的專有名詞叫point. point == 游標目前的 點 游標一次跳一個字(Word) M-f 往後跳 M-b    注意 C-f 與 M-f, C-b 與 M-b的對稱性.    移到行頭 C-a 行尾 C-e  移到句首 M-a 到句尾 M-e  (M-a 到上一個句點後面,一個句子的起頭.  M-e 到句點後面)    移到檔頭 M-< 檔尾 M->    刪除游標目前指的/後面的字 C-d  前面的字 DEL (Delete鍵)  DEL的正名叫Rubout (Rub out)    M-DEL 往回刪一個字(word)  M-d  往前刪 (游標後面)  C-k  刪至行尾 (kill)  M-k  刪到一句子結尾(刪到句點) (kill)    注意Backspace = C-h 在Emacs下是help的意思  後面有(kill)的, 表示此刪除的動作是kill, 不太等於delete.  emacs會把kill掉的東西放到kill ring去, 算是一種暫存的地方, 以後可以叫出來.見 yank說明.    Undo: C-x u  C-_ 等於 C-x u  有些DEC終端機, C-/就是C-_  有時等於C-Shift- -  重復執行    舉例, 向右移 8個字, C-u 8 C-f  C-u 在Emacs裡是蠻特別的,用來設定一些引數(argument/repeat count)  給其後的命令.    C-u 2 0 C-n 向下移 20行    有一個特別的例外, C-u 3 C-v 不是翻三頁, 而是整個螢幕向上移三行.  據說這比較有意義.    C-u 1 0 C-x u  UNDO 10次    給C-L一個引數會怎麼樣:  C-u 0 C-l 會重畫螢幕,並且把目前的行移到螢幕第一行.    另外, C-u 100  等於 M-100  C-u 數字 等於 M-數字    X windows 下,  C-left C-right 一次移一個字(word).  C-up C-down 移動一段 (paragraphs/C語言的話是block)  Home = C-a  End = C-e  C-Home = M-<  C-end = M->  PgUp PgDn = M-v C-v  設定重覆次數更加簡單,  比如要向右移10個字 C-1 C-0 right-arrow  就是按住CTRL, 然後打10就對了, 比 C-u 1 0 簡單.    Mouse中鍵用來選取有hi-light的地方.  右鍵是menu-button    如果不小心按兩次ESC, 等於 M-ESC, 會有一個訊息跑出來說你按到一個被disable的命令. 這是高級指令, 作者認為 初學者用不道,所以會問你要不要啟動它, 一般回答no.    如果某一行太長, 螢幕顯示不下, Emacs會在螢幕最右邊打個$,  表示此行未完,右邊還有.    把一行拆成兩行: 在想拆處按Enter即可.  合並兩行為一行: 在行尾按C-d (或行首按DEL)    Yank: 吐出被刪掉的(killed)東西.    只要用kill (C-k, M-k等) 刪除, 超過一個字的資料, emacs就會把它存起來, 然後C-y 可以把它叫出來. 功能跟Cut & Paste一樣. Kill 和delete不一樣, 只有被 kill掉的東西才能用yank吐回來.    游標在同一地方不動, 連續kill掉的資料會被當成一次kill掉的, yank時會一起回來.    被Kill掉的資料是放在稱作 kill ring的資料結構上面, ring就是個圓圈, 被kill掉的東西會依序擺在圓圈上. yank 會放回最近一次kill掉的資料. 如果不是你想要的話, 用M-y 可以換. (M-y就是告訴emacs, 不對不對, 我不是要這一個,換前一個給我).    M-y 要緊接在C-y之後.    拷貝文字的方法== 連續 C-k 幾次, 把要拷貝的行全部刪掉, 然後按 C-y 弄回來. 再到想復制的地方按一次C-y, 就成了.    把要拷貝的資料kill掉在yank回來好像很笨. 是有比較文明的 方法, 那就是M-w, 不過較麻煩.    首先,要先設標記. Mark 用 C-SPC 或 C-@ 設. 然候把游標移到另一端, 按 M-w 就可以把 mark 到 point間的字存到kill ring上. point 就是游標的意思.    Emacs不會把Mark起來的地方用highlight表示, 除非在X下. 在X下, 可以用M-w 來拷貝用滑鼠反白的文字.    kill & yank 就是 cut & paste的意思.    以上大部份指令對Bash的命令列編輯也有效    檔案操作  讀檔: Emacs術語叫 finding a file.  C-x C-f 然後在mini-buffer輸入檔名. 輸入檔名時, SPC鍵有auto-complete的功能,或者會秀出到目前為止檔名前幾個字和輸入一樣的. (TAB鍵也有類似功能)    C-x C-f 叫 find-file    C-x C-s 存檔 (save current file, save current buffer)  C-x s  存所有的檔    C-x i  插入檔案 把另外的檔案的內容讀入目前編輯區內    視窗    Emacs把檔案讀進來,存在buffer中.  我們透過window來看/編輯buffer.    兩個視窗會把螢幕切成兩部份, 他們可以同時顯示相同的, 或不同的檔案.    對初學者而言, 最需要的是記住怎樣讓不想要的視窗消失:    C-x 0 關掉目前的視窗  C-x 1 會讓目前的視窗占滿整個螢幕 (One Window), 取消/關掉其他的視窗.    Emacs裡面有許多功能都會開一個小視窗來和使用者溝通, 顯示訊息.  有時候不會自動消失很討厭, C-x 1 就很有用.    另一個功能是如何跳到另一個視窗.  C-x o (other-window)    C-x 2 把目前的視窗切成兩個 (水平分割)  C-x 3           (垂直分割)  C-x 4 是一串與視窗有關的指令.  C-x 5 則是擴展到X的視窗, 稱為frame.  C-x 5 2 就是再開另一個X視窗 (frame).    多檔編輯  C-x C-b 看目前有那些buffer (buffer就是emacs放開起的檔案的地方).  C-x b 然後在minibuffer輸入buffer的名字,可以切換編輯buffer. TAB鍵也有作用. 有些內部的buffer (就是沒有檔案的buffer), 是用*開頭和結束, 這個也要打, 如*scratch*    最後提醒:  C-x 1 可以把多余的視窗關掉.    Emacs擴充指令    前面介紹的emacs按鍵大部份都是C-<chr> 或者 M-<chr>的形式.  這是最簡單的按法, 由一對按鍵構成一個指令.    Emacs的按鍵可以超過2個以上. 如 C-x 1 或 C-x C-b.  一般超過一個按鍵組合的命令都是用C-x 開頭.    另外你也可以直接下命令. 按 M-x 之後就可以打一個Emacs命令來執行. 一般這些命令名字都很長, 不過都不常用. 等一下 我們會介紹一些. 還有介紹怎麼把這些命令設成按鍵指令.    C-x C-c 就是結束Emacs. 不過一般Emacs很笨重, 一旦起動就不輕易退出. 所以比較常用的是C-z    C-z 把Emacs暫停, 回到命令列. 當你下次再需要編輯時,打fg %emacs或者fg就可以把Emacs喚醒.    在X下, C-z會把emacs縮成icon    mode line    emacs編輯畫面由 編輯區(buffer) 狀態列 (modeline) 和對話區 (minibuffer)構成. 這裡解釋 modeline 顯示的訊息.    以下是個范例:    --**-XEmacs: xemacs.qs   (Fundamental)----74%-------    由後面往前解釋, 74% 表示游標的位置.    (Fundamental)表示編輯模式.這是最原始的模式. 編輯不同種類的文章可能希望用不同的模式, 比如說C-mode, lisp-mode, tex-mode, text-mode等等. 在不同模式下可能多一些按鍵出來. 舉例text-mode.  M-x text-mode  可以切入text-mode, 這是一般人編輯文字使用的模式. 和Fundamental mode沒什麼差異. 不過游標移動時, Emacs對一個字的定義就有所不同, 因而M-f M-b 等移動一個字, 一個段落的指令就可能會停在標點符號的前面. 此時狀態列變為... (Text)----70%---    以上說的是Major mode. 另外還有minor mode, 其實就是一些額外的功能.  比如說, M-x auto-fill-mode 則狀態列顯示 (Text Fill).  auto-fill就是自動斷行, 讓文章每行固定有70個字.    M-X fundamental-mode 可以變回來.    這裡要說明一下, emacs在 minibuffer下有auto-completion的功能,也就是打




Copyright © Linux教程網 All Rights Reserved