www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]vi是Linux系統(tǒng)的第一個全屏幕交互式編輯程序,它從誕生至今一直得到廣大用戶的青睞,歷經(jīng)數(shù)十年仍然是人們主要使用的文本編輯工具,足以見其生命力之強(qiáng),而強(qiáng)大的生命力是其強(qiáng)大的功能帶來的。由于大多數(shù)讀者在此之前都已經(jīng)用慣了Windows平臺上的編輯器,因此,在剛剛接觸時總會或多或少不適應(yīng),但只要習(xí)慣之后,就能感受到它的方便與快捷。

3.2常用編輯器3.2.1進(jìn)入vi

Linux系統(tǒng)提供了一個完整的編輯器家族系列,如Ed、Ex、vi和emacs等。按功能它們可以分為兩大類:行編輯器(Ed、Ex)和全屏幕編輯器(vi、emacs)。行編輯器每次只能對一行進(jìn)行操作,使用起來很不方便。而全屏幕編輯器可以對整個屏幕進(jìn)行編輯,用戶編輯的文件直接顯示在屏幕上,從而克服了行編輯那種不直觀的操作方式,便于用戶學(xué)習(xí)和使用,具有強(qiáng)大的功能。

vi是Linux系統(tǒng)的第一個全屏幕交互式編輯程序,它從誕生至今一直得到廣大用戶的青睞,歷經(jīng)數(shù)十年仍然是人們主要使用的文本編輯工具,足以見其生命力之強(qiáng),而強(qiáng)大的生命力是其強(qiáng)大的功能帶來的。由于大多數(shù)讀者在此之前都已經(jīng)用慣了Windows平臺上的編輯器,因此,在剛剛接觸時總會或多或少不適應(yīng),但只要習(xí)慣之后,就能感受到它的方便與快捷。

1.vi的模式

vi有3種模式,分別為命令行模式、插入模式及命令行模式。下面具體介紹各模式的功能。

(1)命令行模式。

用戶在用vi編輯文件時,最初進(jìn)入的為一般模式。在該模式中用戶可以通過上下移動光標(biāo)進(jìn)行“刪除字符”或“整行刪除”等操作,也可以進(jìn)行“復(fù)制”、“粘貼”等操作,但無法編輯文字。

(2)插入模式。

只有在該模式下,用戶才能進(jìn)行文字編輯輸入,用戶按[ESC]可鍵回到命令行模式。

(3)底行模式。

在該模式下,光標(biāo)位于屏幕的底行。用戶可以進(jìn)行文件保存或退出操作,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號等。

2.vi的基本流程

(1)進(jìn)入vi,即在命令行下鍵入“vihello”(文件名)。此時進(jìn)入的是命令行模式,光標(biāo)位于屏幕的上方,如圖3.2所示。

圖3.2進(jìn)入vi命令行模式

(2)在命令行模式下鍵入i進(jìn)入插入模式,如圖3.3所示??梢钥闯?,在屏幕底部顯示有“插入”表示插入模式中的輸入狀態(tài),在該模式下可以輸入文字信息。

圖3.3進(jìn)入vi插入模式

(3)最后,在插入模式中,按“Esc”鍵,則當(dāng)前模式轉(zhuǎn)入命令行模式,并在底行行中輸入“:wq”(存盤退出)進(jìn)入底行模式,如圖3.4所示。

這樣,就完成了一個簡單的vi操作流程:命令行模式→插入模式→底行模式。由于vi在不同的模式下有不同的操作功能,因此,讀者一定要時刻注意屏幕最下方的提示,分清所在的模式。

圖3.4進(jìn)入vi底行模式

3.vi的各模式功能鍵

(1)命令行模式常見功能鍵如表3.1所示。

表3.1 vi命令行模式功能鍵

功能鍵

功能

i

切換到插入模式,在目前的光標(biāo)所在處插入輸入的文字,已存在的文字會向后退

a

切換到插入模式,并從目前光標(biāo)所在位置的下一個位置開始輸入文字

o

切換到插入模式,且從行首開始插入新的一行

[ctrl]+[b]

屏幕往“后”翻動一頁

[ctrl]+[f]

屏幕往“前”翻動一頁

[ctrl]+[u]

屏幕往“后”翻動半頁

[ctrl]+[d]

屏幕往“前”翻動半頁

0(數(shù)字0)

光標(biāo)移到本行的開頭

G

光標(biāo)移動到文件的最后

nG

光標(biāo)移動到第n行

$

移動到光標(biāo)所在行的“行尾”

n<Enter>

光標(biāo)向下移動n行

/name

在光標(biāo)之后查找一個名為name的字符串

?name

在光標(biāo)之前查找一個名為name的字符串

x

刪除光標(biāo)所在位置的一個字符

X

刪除光標(biāo)所在位置的前一個字符

dd

刪除光標(biāo)所在行

ndd

從光標(biāo)所在行開始向下刪除n行

yy

復(fù)制光標(biāo)所在行

nyy

復(fù)制光標(biāo)所在行開始的向下n行

p

將緩沖區(qū)內(nèi)的字符粘貼到光標(biāo)所在位置(與yy搭配)

u

恢復(fù)前一個動作

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

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

表3.2 vi底行模式功能鍵

功能鍵

功能

:w

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

:q

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

:q!

強(qiáng)制退出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是一款功能非常強(qiáng)大的編輯器,它能夠方便、快捷、高效地完成用戶的任務(wù),那么,在此再次向讀者介紹另一款編輯器是否多此一舉呢?答案是否定的。因為emacs不僅僅是一款功能強(qiáng)大的編譯器,而且是一款融合編輯、編譯、調(diào)試于一體的開發(fā)環(huán)境。雖然,它沒有VisualStudio一樣絢麗的界面,但是它可以在沒有圖形顯示的終端環(huán)境下出色的工作,相信追求強(qiáng)大功能和工作效率的用戶不會介意它樸素的界面的。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)在較新版本的Linux(如本書中所用的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ū)中,以備后面的“粘貼”所用。

(3)復(fù)制文本。

在emacs中的復(fù)制文本包括兩步:選擇復(fù)制區(qū)域和粘貼文本。

選擇復(fù)制區(qū)域的方法是:首先在復(fù)制起始點(A)按下“C-Space”或“C-@(C-Shift-2)”使它成為一個標(biāo)識點,再將光標(biāo)移至復(fù)制結(jié)束點(B),再按下“M-w”,就可將A與B之間的文本復(fù)制到系統(tǒng)的緩沖區(qū)中。再使用功能鍵C-y將其粘貼到指定位置。

(4)查找文本。

查找文本的功能鍵如表3.5所示。

表3.5 emacs查找文本功能鍵

功能鍵

功能

C-s

查找光標(biāo)以后的內(nèi)容,并在對話框的“I-search:”后輸入要查找的字符串

C-r

查找光標(biāo)以前的內(nèi)容,并在對話框的“I-searchbackward:”后輸入要查找的字符串

(5)保存文檔。

在emacs中保存文檔的功能鍵為“C+xC+s”(即先操作C+x,接著再操作C+s),這時,屏幕底下的對話框會出現(xiàn)如“Wrote/root/workplace/editor/why”的字樣,如圖3.7所示。

圖3.7emacs中保存文檔

另外,emacs在編輯時會為每個文件提供“自動保存(autosave)”的機(jī)制,而且自動保存的文件的文件名前后都有一個“#”,例如,編輯名為“hello.c”的文件,其自動保存的文件的文件名就叫“#hello.c#”。當(dāng)用戶正常地保存了文件后,emacs就會刪除這個自動保存的文件。這個機(jī)制當(dāng)系統(tǒng)發(fā)生異常時非常有用。

(6)退出文檔。

在emacs中退出文檔的功能鍵為“C-xC-c”。

4.emacs中的模式

emacs不僅僅是個強(qiáng)大的編譯器,它還是一個集編譯、調(diào)試等于一體的工作環(huán)境。在這里,讀者將會了解到emacs作為編譯器的最基本的概念,感興趣的讀者可以參考《LearningGNUEmacs,SecondEdition》一書進(jìn)一步學(xué)習(xí)emacs。

在emacs中并沒有像vi中那樣的“命令行”、“編輯”模式,只有一種編輯模式。這里所說的“模式”是指emacs里的各種輔助環(huán)境。下面著重講解C模式。

當(dāng)我們啟動某一文件時,emacs會判斷文件的類型,從而自動選擇相應(yīng)的模式。當(dāng)然,用戶也可以手動啟動各種模式,用功能鍵“M-x”,然后再輸入模式的名稱,如圖3.8所示,這樣就啟動了“C模式”。

圖3.8emacs中選擇模式

在強(qiáng)大的C模式下,用戶擁有“自動縮進(jìn)”、“注釋”、“預(yù)處理擴(kuò)展”、“自動狀態(tài)”等強(qiáng)大功能。在“C模式”下編輯代碼時,可以用“Tab”鍵自動地將當(dāng)前行的代碼產(chǎn)生適當(dāng)?shù)目s進(jìn),使代碼結(jié)構(gòu)清晰、美觀,它也可以指定縮進(jìn)的規(guī)則。

源代碼要有良好的可讀性,必須要有良好的注釋。在emacs中,用“M-”可以產(chǎn)生一條右縮進(jìn)的注釋。C模式下是“/*comments*/”形式的注釋,C++模式下是“//comments”形式的注釋。當(dāng)用戶高亮選定某段文本,然后操作“C-cC-c”,就可以注釋該段文字。

emacs還可以使用C預(yù)處理其運行代碼的一部分,以便讓程序員檢測宏、條件編譯以及include語句的效果。

5.emacs編譯調(diào)試程序

emacs可以讓程序員在emacs環(huán)境里編譯自己的軟件。此時,編輯器把編譯器的輸出和程序代碼連接起來。程序員可以像使用Windows的其他開發(fā)工具一樣,將出錯位置和代碼定位聯(lián)系起來。

emacs默認(rèn)的編輯命令是對一個make(在本章3.6節(jié)中會詳細(xì)介紹)的調(diào)用。用戶可以打開“tool”下的“Compile”進(jìn)行查看。emacs可以支持大量的工程項目,以方便程序員的開發(fā)。

另外,emacs為gdb調(diào)試器提供了一個功能齊全的接口。在emacs中使用gdb的時候,程序員不僅能夠獲得gdb的全部標(biāo)準(zhǔn)特性,還可以獲得通過接口增強(qiáng)而產(chǎn)生的其他性能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉