• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            syhd142  
            日歷
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567
            統(tǒng)計(jì)
            • 隨筆 - 23
            • 文章 - 122
            • 評論 - 31
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿(2)

            隨筆檔案(23)

            文章分類(270)

            文章檔案(122)

            我的豆瓣

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             

            轉(zhuǎn)至:http://www.zeuux.org/science/learning-emacs.cn.html


            學(xué)習(xí)GNU Emacs

            作者:夏武

            1 GNU Emacs介紹

            Emacs編輯器是最受歡迎、傳播范圍最廣、也是最強(qiáng)大和最靈活的UNIX文本編輯器。與其他文本編輯器的重要區(qū)別在于它是一個(gè)完備的工作環(huán)境,使用Emacs可以完成各種日常工作。對很多Emacs用戶來說,Emacs已經(jīng)超越了編輯器的范疇,使用Emacs是一種文化,一種生活。 GNU Emacs是GNU開發(fā)的Emacs變體,也是最廣泛使用的Emacs編輯器。本文將以GNU Emacs為例講解GNU Emacs編輯器的使用和技巧。首先介紹一下常用的快捷鍵,接著介紹GNU Emacs擴(kuò)展,最后是.emacs文件的配置。

            2 快捷鍵

            GNU Emacs的快捷鍵都是綁定于CTRL鍵和ALT鍵上。每個(gè)快捷鍵對應(yīng)一個(gè)指令名稱,也就是一個(gè)對應(yīng)的函數(shù)名稱,這允許你根據(jù)不同的喜好將快捷鍵綁定到不同的指令名稱。另外,在Emacs中有很多的指令沒有綁定快捷鍵,我們可以通過M-x 指令名稱來執(zhí)行指令。例如,全文替換我們可以使用M-x replace-strings。這樣,很多沒有綁定快捷鍵的功能都可以用到了。

            2.1 基本操作

            表1是基本操作指令列表。

            表1 基本操作指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            C-SPset-mark-command設(shè)置標(biāo)記C-qquoted-insert插入引用
            C-abeginning-of-line移動(dòng)到行首C-risearch-backward向前查找
            C-bbackward-char向前移動(dòng)一個(gè)字符C-sisearch-forward向后查找
            C-ttranspose-chars掉換前后二個(gè)字符位置C-ddelete-char刪除一個(gè)字符
            C-eend-of-line移動(dòng)到行尾C-vscroll-up向下滾動(dòng)一屏
            C-fforward-char向后移動(dòng)一個(gè)字符C-wkill-region刪除選定區(qū)域
            C-x <scroll-left向左移動(dòng)一屏C-x >scroll-right向右移動(dòng)一屏
            TABforward-button縮進(jìn)C-yyank粘貼
            C-zsuspend-frame暫停emacsC-nnext-line移動(dòng)到下一行
            C-kkill-line刪除一行ESCESC-prefix取消前綴
            C-oopen-line增加一行DELdelete-backward-char向前刪除一個(gè)字符
            C-pprevious-line向上移動(dòng)一行C-zsuspend-emacs暫停Emacs
            C-_undo取消C-lrecenter使光標(biāo)所在行變?yōu)槠聊恢醒?/td>

            2.2 幫助

            表2是幫助指令列表。

            表2 幫助指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            C-h wwhere-is查看命令菜單位置或者綁定熱鍵C-h kdescribe-key查看熱鍵詳細(xì)功能描述
            C-h thelp-with-tutorial查看Emacs教程C-h cdescribe-key-briefly查看熱鍵簡單功能描述
            C-h nview-emacs-news瀏覽Emacs新聞C-h bdescribe-bindings查看綁定熱鍵
            C-h mdescribe-mode查看編輯模式C-h C-c查看許可證信息
            C-h ?help-for-help查看幫助列表

            2.3 緩沖區(qū)操作

            表3是緩沖區(qū)操作指令列表。

            表3 緩沖區(qū)操作指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            C-x C-dlist-directory列出當(dāng)前目錄C-x =what-cursor-position顯示當(dāng)前光標(biāo)所在位置
            C-x C-ffind-file查找文件C-x TABindent-rigidly強(qiáng)制縮進(jìn)
            C-x C-odelete-blank-lines刪除空白行C-x blist-buffers打開另外一個(gè)緩沖區(qū)
            C-x C-pmark-page全選C-x C-rfind-file-read-only以只讀方式打開文件
            C-x C-ssave-buffer保存當(dāng)前緩沖區(qū)C-x iinsert-file插入文件
            C-x C-ttranspose-lines掉換前后行位置C-x hmark-whole-buffer標(biāo)記當(dāng)前全部緩沖區(qū)
            C-x C-vfind-alternate-file打開另外一個(gè)文件,關(guān)閉緩沖區(qū)C-x lcount-lines-page計(jì)算當(dāng)前緩沖區(qū)行數(shù)
            C-x C-wwrite-file保存緩沖區(qū)內(nèi)容到文件C-x kkill-buffer關(guān)閉緩沖區(qū)
            C-x mmail寫EmailC-x 4 mmail-other-window打開新窗口寫Email
            C-x ssave-some-buffers保存多個(gè)文件C-x uadvertised-undo取消上一步操作

            2.4 宏操作

            表4是宏操作指令列表。

            表4 宏操作指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            C-x (start-kbd-macro開始錄制宏C-x )end-kbd-macro結(jié)束宏錄制
            C-x ecall-last-kbd-macro執(zhí)行上一次綁定的宏命令

            2.5 窗口操作

            表5是窗口操作指令列表。

            表5 窗口操作指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            C-x 0delete-window關(guān)閉當(dāng)前窗口C-x 1delete-other-windows保留當(dāng)前窗口,關(guān)閉其他窗口
            C-x 2split-window-vertically水平分割窗口C-x 3split-window-horizontally垂直分割窗口

            2.6 C語言編程模式

            表6是C語言編程模式的指令列表。

            表6 C語言編程模式指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            M-abackward-sentence移動(dòng)到語句開頭M-eforward-sentence移動(dòng)到語句結(jié)尾
            C-M-abeginning-of-defun移動(dòng)到函數(shù)開頭C-M-eend-of-defun移動(dòng)到函數(shù)結(jié)尾

            2.7 SGML語言編程模式

            表7是SGML語言編程模式指令列表。

            表7 SGML語言編程模式指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            C-c C-tsgml-tag插入標(biāo)記C-c C-asgml-attributes插入屬性
            C-c C-bsgml-skip-tag-backward移動(dòng)到前一個(gè)標(biāo)記C-c C-fsgml-skip-tag-forward移動(dòng)到后一個(gè)標(biāo)記
            C-c DELsgml-delete-tag刪除一個(gè)標(biāo)記

            2.8 版本控制命令

            表8是版本控制指令列表。

            表8 版本控制指令

            快捷鍵指令名稱用途快捷鍵指令名稱用途
            C-x v dvc-directory列出目錄下修改過的文件C-x v =vc-diff顯示改動(dòng)
            C-x v lvc-print-log顯示改動(dòng)歷史記錄C-x v ivc-register加入文件到版本控制中
            C-x v hvc-insert-headers插入版本控制信息C-x v rvc-retrieve-snapshot取某一版本文件
            C-x v vvc-next-action進(jìn)入提交改動(dòng)狀態(tài)

            3 GNU Emacs擴(kuò)展

            3.1 Emacs Lisp語言介紹

            3.2 有用的GNU Emacs擴(kuò)展

            3.3 寫一個(gè)GNU Emacs擴(kuò)展

            這里我們自己動(dòng)手寫一個(gè)GNU Emacs擴(kuò)展,實(shí)現(xiàn)復(fù)制一行的功能。下面是實(shí)現(xiàn)這個(gè)擴(kuò)展的代碼。

            (defun copy-line (&optional arg)
             "Save current line into Kill-Ring without mark the line"
             (interactive "P")
             (let ((beg (line-beginning-position)) 
            	(end (line-end-position arg)))
             (copy-region-as-kill beg end))
            )
            			  
            將上面這段代碼拷貝到.emacs中,就可以開始使用這個(gè)功能了。

            4 .emacs文件

            4.1 樣例

            ;;顯示時(shí)間
            (display-time)
            ;;顯示行號(hào)
            (column-number-mode t)
            (show-paren-mode t)
            ;;設(shè)置TAB寬度為4
            (setq default-tab-width 4) 
            ;;以下設(shè)置縮進(jìn) 
            (setq c-indent-level 4)
            (setq c-continued-statement-offset 4)
            (setq c-brace-offset -4)
            (setq c-argdecl-indent 4)
            (setq c-label-offset -4)
            (setq c-basic-offset 4)
            (global-set-key "\C-m" 'reindent-then-newline-and-indent)
            (setq indent-tabs-mode nil)
            (setq standard-indent 4)
            
            ;;開啟語法高亮。
            (global-font-lock-mode 1) 
            
            ;;設(shè)置默認(rèn)工作目錄
            (setq default-directory "/home/test/source/") 
            
            ;; 去掉滾動(dòng)條
            (set-scroll-bar-mode nil)
            
            ;;關(guān)閉開啟畫面
            (setq inhibit-startup-message t) 
            (setq indent-tabs-mode t)
            
            ;;不產(chǎn)生備份文件
            (setq make-backup-files nil) 
            
            ;;設(shè)置自定義變量
            (custom-set-variables
            '(column-number-mode t)
            '(current-language-environment "UTF-8")
            '(display-time-mode t)
            '(ecb-options-version "2.32")
            '(mouse-1-click-in-non-selected-windows t)
            '(mouse-drag-copy-region t)
            '(mouse-yank-at-point t)
            '(save-place t nil (saveplace))
            '(show-paren-mode t)
            '(transient-mark-mode t))
            (custom-set-faces
            ;;選擇小工具欄圖標(biāo)
            (tool-bar-mode -1)
            				

            5 總結(jié)

            6 參考資料

            posted on 2010-11-03 21:01 Fucker 閱讀(844) 評論(0)  編輯 收藏 引用
             
            Copyright © Fucker Powered by: 博客園 模板提供:滬江博客
            波多野结衣久久精品| 国产91久久综合| 三上悠亚久久精品| 成人久久精品一区二区三区| 91精品国产91久久久久久| 久久久久这里只有精品| 久久精品国产男包| 青青草国产精品久久久久| 人妻中文久久久久| 色综合久久久久综合体桃花网| 91精品国产色综合久久| 久久综合视频网站| 精品久久久久久久久午夜福利| 国产精品一区二区久久精品无码 | 精品久久久久久无码专区| 久久综合九色综合久99| 亚洲第一永久AV网站久久精品男人的天堂AV | 伊人久久大香线蕉亚洲五月天| 久久久久AV综合网成人| 久久天天躁狠狠躁夜夜av浪潮| 亚洲国产精品成人久久| 国产成人无码精品久久久免费 | 久久久久99精品成人片直播| 久久99精品久久久久久不卡 | 国产偷久久久精品专区| 99久久精品无码一区二区毛片 | 1000部精品久久久久久久久| 久久国产综合精品五月天| 新狼窝色AV性久久久久久| 久久久精品久久久久特色影视| 亚洲国产精品成人久久| 日韩欧美亚洲综合久久影院Ds | 国产精品久久久久影院色| 亚洲国产视频久久| 99国内精品久久久久久久| 精品无码久久久久久尤物| 久久这里有精品| 久久人妻少妇嫩草AV无码蜜桃| 国产一区二区精品久久| 亚洲精品乱码久久久久久久久久久久| 亚洲国产成人久久一区久久|