官术网_书友最值得收藏!

任務2 Emacs的高級功能

Emacs功能實在太多,所以這里只介紹最實用的幾樣。

1)快速移動光標

前進用英語說是Forward,所以“C”-“f”的作用跟右方向鍵一樣,使得光標向右移動一格。有時候我們不愿意一個一個字符去移動,需要一個單詞一個單詞的移動,這個時候,可以將“Ctrl”換成“Alt”,即“M”-“f”,向前移動一個單詞。也就是說,“Ctrl”開頭的是按照字符為單位,“Alt”開頭的是按照詞為單位。同理,后退用英語說是“Back”,所以“C”-“b”是向后一格,“M”-“b”是向后退一個單詞。

我們有時需要一個句子一個句子移動,一個段落一個段落移動。前面介紹了,“C”-“a”是移動到一行的開頭,“C”-“e”是移動到一行的末尾。一行和一句類似。所以,“M”-“a”是移動到一個句子的開頭,“M”-“e”是移動到句子的末尾。為什么要用“a”和“e”呢?因為它們分別是Ahead和End的首字母。

至于段落間移動,則需要“Ctrl”和“Alt”一起按:移動到上一個段落是“C”-“M”-“[”,下一個則是“C”-“M”-“]”。

上移和下移光標,和上下方向鍵的作用一樣:“C”-“p”上移一行,“C”-“n”下移一行。

還有快速調到文檔的最開頭:“M”-“<”,文檔末尾:“M”-“>”。這個尖括號需要使用“shift”鍵配合:同時按住“Alt”和“Shift”,再按下逗號或者句號。

2)高效的查找

還在為尋找配置文件中的一個關鍵字而反復查找嗎?有了Emacs,可以馬上找到。還記得前面講的需要跳到第98行進行編輯的那個例子嗎?現在可以試試這樣:

在打開文檔后,確保光標處于前98行(如果不是,可以用“M”-“<”回到文檔開頭),然后按“C”-“s”,于是在mini buff處出現了“I-search:”的字樣。此時,可以慢慢輸入“root”這四個字母,一開始只輸入一個“r”的時候,屏幕上出現了很多背景變成綠色的匹配項,隨著不斷輸入,符合條件的項目越來越少,直到全部輸入完后,屏幕上只剩下了兩個符合條件的項目,如圖2-6所示。

圖2-6 Emacs高級查找功能

如果我們還沒找到需要的,可以不停地按“C”-“s”,這樣光標會一直向下,在匹配項上跳轉,直到按下回車鍵,退出查找,進入正常的編輯狀態。

這個例子中,我們還需要輸入一個TAB制表符,也就是再按一下“Tab”鍵。此時光標馬上跳轉到了98行,如圖2-7所示:

圖2-7 Emacs高級查找定位

此時我們可以按一下回車鍵,退出搜索狀態,就可以開始正常的編輯了。光標會停留在搜索到的匹配項上。如果想取消搜索,可以按“C”-“g”,光標會回到開始使用搜索的地方。這也是中斷Emacs大部分命令的方法。

如果一直按“C”-“s”到文件末尾了,又會重新從頭開始。另外,向上搜索的快捷鍵是“C”-“r”。

或許有人還聽說過正則表達式吧。正則表達式搜索擁有更加強大的威力。Linux下的配置文件一般是以“#”開頭的作為注釋,這些注釋完全可以去掉,因為太多的注釋會擾亂我們的注意。但手動查找刪除實在是麻煩,此時我們可以用正則表達式查找所有以“#”或者“;”開頭的行,然后用“C”-“k”刪除。

正則查找與普通查找類似,只不過正則查找需要多按一個“Alt”鍵,即“C”-“M”-“s”和“C”-“M”-“r”。此時mini buff處會出現:Regexp,就是正則表達式的意思。如圖2-8所示。

圖2-8 Emacs正則表達式運用

搜索以“#”開頭的最簡單的正則表達式是這么寫的:

    ^#

^代表一行的開頭,中括號里面的字符表示任何一個都可以匹配。

更多正則表達式的內容,這里就不介紹了。大部分時候,宏會用到正則查找。

3)宏

宏用來執行一系列有規律的而且重復的任務。比如上面講的去除所有注釋。我們可以利用寫好的正則表達式來實際演示一下如何使用宏。

我們還是打開sudoers,然后按“M”-“<”跳轉到文檔最開始。接著,按下“F3”,mini buff上的顯示如圖2-9所示。

圖2-9 Emacs宏運用

“Defining kbd macro…”的意思就是正在定義鍵盤宏中。下面的操作請務必一次性完成,要是失誤了,按“C”-“g”取消宏定義,從頭開始。依次鍵入:

    C-M-s^#

按下回車鍵,此時光標移動到了“#”的后面,需要移動到開頭,使用“C”-“a”,然后按“C”-“k”兩下,刪除一整行。按下“F4”,mini buff上的顯示如圖2-10所示。Keyboard macro defined,意思就是鍵盤宏已經定義好了。

圖2-10 Emacs宏定義

接著,我們就可以不停地按“F4”來調用這個宏,也就是反復執行如上文所述按下“F3”至“F4”之間所執行的一系列操作,Emacs會按照順序自動執行,我們要做的就是等待最后的結果。

如果配置文件的行數有點多,我們不停地按“F4”也會厭煩的。我們前面提到的,快速跳轉到98行時,可以用“C”-“u”后加數字的方法指定數量,在這里也可以用到:

    C-u 100 f4

這樣就等于我們按了“F4”100下。可以按照我們的需要設定次數。現在sudoers的配置文件的實際內容就出來了,看起來是不是一目了然了?

4)更加豐富的配置

Emacs的配置實在是太豐富了。所以為了節約時間,我們可以借鑒其他人寫好的配置文件。這里介紹使用git來復制一個配置好的Emacs配置文件。在終端執行:

    cd
    rm-fr . emacs. d
    git clone https://github.com/latentlong/. emacs. d. git

第三行代碼將會復制一個目錄至家目錄,這個目錄中有個init.el的文件,也是Emacs啟動時默認會加載的文件。

主站蜘蛛池模板: 阿勒泰市| 保靖县| 焉耆| 平陆县| 孟连| 曲水县| 呼玛县| 三穗县| 依兰县| 若尔盖县| 杨浦区| 柞水县| 济源市| 伊春市| 太仆寺旗| 内江市| 涪陵区| 西充县| 遂宁市| 柳林县| 绵竹市| 禹城市| 东海县| 夏津县| 昌江| 都兰县| 蓬安县| 山东省| 磴口县| 利川市| 宁阳县| 高阳县| 云浮市| 航空| 铜山县| 余庆县| 黎平县| 永清县| 唐海县| 孝感市| 黄骅市|