<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux下C編程基礎(chǔ)之:常用編輯器

          Linux下C編程基礎(chǔ)之:常用編輯器

          作者: 時間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/257152.htm

          (2)插入模式的功能鍵只有一個,即按“Esc”鍵可回到命令行模式。

          (3)底行模式常見功能鍵如表3.2所示。

          表3.2 vi底行模式功能鍵

          功能鍵

          功  能

          :w

          將編輯的文件保存到磁盤中

          :q

          退出vi(系統(tǒng)對做過修改的文件會給出提示)

          :q!

          強制退出vi(對修改過的文件不作保存)

          :wq

          存盤后退出

          :w[filename]

          另存一個名為filename的文件

          :setnu

          顯示行號,設(shè)定之后,會在每一行的前面顯示對應(yīng)行號

          :setnonu

          取消行號顯示

          注意

          vim是vi的升級版,與vi相比擴(kuò)展了很多功能且保持與vi的90%相兼容,感興趣的讀者可以查看相關(guān)資料進(jìn)行學(xué)習(xí)。

          3.2.2初探emacs

          正如前面所述,vi是一款功能非常強大的,它能夠方便、快捷、高效地完成用戶的任務(wù),那么,在此再次向讀者介紹另一款是否多此一舉呢?答案是否定的。因為emacs不僅僅是一款功能強大的編譯器,而且是一款融合編輯、編譯、調(diào)試于一體的開發(fā)環(huán)境。雖然,它沒有VisualStudio一樣絢麗的界面,但是它可以在沒有圖形顯示的終端環(huán)境下出色的工作,相信追求強大功能和工作效率的用戶不會介意它樸素的界面的。emacs的使用和vi截然不同。在emacs里,沒有類似于vi的3種“模式”。emacs只有一種模式,也就是編輯模式,而且它的命令全靠功能鍵完成。因此,功能鍵也就相當(dāng)重要了。

          但emacs卻還使用一個不同vi的“模式”,它的“模式”是指各種輔助環(huán)境。比如,當(dāng)編輯普通文本時,使用的是“文本模式(TextMode)”,而當(dāng)寫程序時,使用的則是如“c模式”、“shell模式”等。

          下面,首先介紹一下emacs作為的使用方法,以幫助讀者熟悉emacs的環(huán)境。

          注意

          emacs縮寫注釋:

          C+chr>表示按住Ctrl鍵的同時鍵入字符chr>。因此,C+f就表示按住Ctrl鍵同時鍵入f。

          M+chr>表示當(dāng)鍵入字符chr>時同時按住Meta或Edit或Alt鍵(通常為Alt鍵)。

          1.emacs安裝

          現(xiàn)在較新版本的(如本書中所用的RedHatEnterprise4AS)的安裝光盤中一般都自帶有emacs的安裝包,用戶可以通過安裝光盤進(jìn)行安裝(一般在第2張光盤中)。

          2.啟動emacs

          安裝完emacs之后,只需在命令行鍵入“emacs[文件名]”(若缺省文件名,也可在emacs編輯文件后另存時指定),也可從“編程”→“emacs”打開,如3.5圖所示的就是從“編程”→“emacs”打開的emacs歡迎界面。

          圖3.5emacs歡迎界面

          接著可單擊任意鍵進(jìn)入emacs的工作窗口,如圖3.6所示。

          從圖中可見,emacs的工作窗口分為上下兩個部分,上部為編輯窗口,底部為命令顯示窗口,用戶執(zhí)行功能鍵的功能都會在底部有相應(yīng)的顯示,有時也需要用戶在底部窗口輸入相應(yīng)的命令,如查找字符串等。

          圖3.6emacs的工作窗口

          3.進(jìn)入emacs

          在進(jìn)入emacs后,即可進(jìn)行文件的編輯。由于emacs只有一種編輯模式,因此用戶無需進(jìn)行模式間的切換。下面介紹emacs中基本編輯功能鍵。

          (1)移動光標(biāo)。

          雖然在emacs中可以使用“上”、“下”、“左”、“右”方向鍵來移動單個字符,但筆者還是建議讀者學(xué)習(xí)其對應(yīng)功能鍵,因為它們不僅能在所有類型的終端上工作,而且讀者將會發(fā)現(xiàn)在熟練使用之后,輸入這些Ctrl加字符會比按方向鍵快很多。表3.3列舉了emacs中光標(biāo)移動的常見功能鍵。

          表3.3 emacs光標(biāo)移動功能鍵

          功能鍵

          功能

          功能鍵

          功能

          C-f

          向前移動一個字符

          M-b

          向后移動一個單詞

          C-b

          向后移動一個字符

          C-a

          移動到行首

          C-p

          移動到上一行

          C-e

          移動到行尾

          C-n

          移動到下一行

          M-(M加
          “小于號”)

          移動光標(biāo)到整個文本的開頭

          M-f

          向前移動一個單詞

          M->(M加
          “大于號”)

          移動光標(biāo)到整個文本的末尾

          (2)剪切和粘貼。

          在emacs中可以使用“Delete”和“BackSpace”刪除光標(biāo)前后的字符,這和用戶之前的習(xí)慣一致,在此就不贅述。以詞和行為單位的剪切和粘貼功能鍵如表3.4所示。

          表3.4 emacs剪切和粘貼

          功能鍵

          功能

          功能鍵

          功能

          M-Delete

          剪切光標(biāo)前面的單詞

          M-k

          剪切從光標(biāo)位置到句尾的內(nèi)容

          M-d

          剪切光標(biāo)前面的單詞

          C-y

          將緩沖區(qū)中的內(nèi)容粘貼到光標(biāo)所在的位置

          C-k

          剪切從光標(biāo)位置到行尾的內(nèi)容

          C-xu

          撤銷操作(先操作C+x,接著再單擊u)

          注意

          在emacs中對單個字符的操作是“刪除”,而對詞和句的操作是“剪切”,即保存在緩沖區(qū)中,以備后面的“粘貼”所用。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();