Vim幾句話介紹
Vim是Unix系統(tǒng)上的文本編輯軟件(你該不會不知道什么是文本編輯軟件吧!),,在windows上也有移植的版本,,方便了Windows上的用戶。Vim的文本編輯功能非常強(qiáng)大,,強(qiáng)大的有些讓人吃驚,!并且非常穩(wěn)定,你的文檔不用經(jīng)常存盤,,它不會出現(xiàn)類似于“***程序內(nèi)部錯誤,!”等等現(xiàn)象,,***程序曾經(jīng)讓我欲哭無淚??! 開始使用Vim吧! 啟動:在命令提示符后輸入vim,,然后回車,,就啟動了vim,然后進(jìn)入vim的界面,。如果在命令提示符后輸入vim ### 并回車,,則表示希望編輯###這個文件,例如vim .xinitrc,,則編輯.xinitrc這個文件,,如果這個文件不存在,則表示新建這個文件并編輯,。好了,,你趕快試試吧,然后我將告訴你如何輸入一些文本,。 vim的工作模式 別著急,,要想輸入文本,要先熟悉一下Vim的工作模式,。(我第一次就是在輸入了vim后,,就開始劈里啪啦的輸入,可是怎么沒反映?。,。浚?br> vim的工作模式有三種,,分別是正常(Normal)模式,、插入(insert)模式和可視(visual)模式。這就是說Vim在不同的模式下工作的表現(xiàn)形式是不同的,。在進(jìn)入vim后,,默認(rèn)的模式是Normal模式,這時可以輸入一些命令,,不過別急,,咱們先輸入一些文本看看。在Normal模式下,,單擊i或者a,,則進(jìn)入insert模式,這時你可以輸入了,。為了后面的學(xué)習(xí),,你多輸入些內(nèi)容,。輸入結(jié)束后,單擊Esc鍵,,回到Normal模式,,然后輸入:w filename,如果你啟動vim時已經(jīng)包含文件名,,輸入:w(注意包括冒號),,則將文件存盤。 OK,,恭喜你,!你現(xiàn)在已經(jīng)能夠啟動vim,輸入內(nèi)容并存盤了,。 下面我們我們簡單介紹一下模式的內(nèi)容,。 前面說過,vim在不同的模式下有不同的工作方式,,例如輸入文本內(nèi)容在insert模式下,,其他進(jìn)行修改、刪除,、拷貝,、粘貼等在Normal模式下。因此當(dāng)你發(fā)現(xiàn)輸入錯誤想修改時必須切換到Normal模式下進(jìn)行,,是不是很麻煩?。∥耶?dāng)初也是這樣認(rèn)為的,,但是你一旦習(xí)慣后,,你就會覺得它的好處了!切換到Normal模式就是單擊Esc鍵,,vim的屏幕下面有當(dāng)前工作模式的提示,。進(jìn)入輸入文本的insert模式是輸入i或者a。i和a這倆個指令的區(qū)別就是i代表在光標(biāo)前插入字符,,a代表在光標(biāo)后插入字符,,就是這么簡單,OK,,如何用就看你的了,! 編輯文本 進(jìn)行文本編輯,應(yīng)該是Unix初學(xué)者最開始碰到的問題,。Unix下的默認(rèn)配置文件經(jīng)常要修改的?。∷哉莆站庉嫹椒ㄊ欠浅V匾?。并且本文的目的就是讓初學(xué)者掌握簡單而又實(shí)用的編輯,、修改命令,。至于其他的高級使用方法,可以參考其他書籍,! OK,,咱們就開始學(xué)習(xí)吧! 移動光標(biāo)是最基本的,,下面都是移動光標(biāo)的命令,,看看那個好記,就記住吧,。 在Noraml模式下,鍵盤上的h,、j,、k、l 分別代表左,、下,、上、右移動光標(biāo),。OK,,在你剛才編輯的文檔中試試移動光標(biāo),爽吧,!再也不用移動手指到那4個方向鍵了,! 什么?你說這4個鍵一次只能移動一個字符和一行,,太慢了,!OK,下面幾個快速移動光標(biāo)的方法你有精力就記住吧,! 一次移動一個字(word) w和b指令一次分別向后/向前移動一個字,。 注:(1)可以用數(shù)字來進(jìn)行移動多個Word,例如3w,,2b就是分別向右(向后)移動3個word, 和2個word,。 (2)中文因?yàn)槭沁B在一起的,所以如果沒有空格或者數(shù)字,、英文標(biāo)點(diǎn)的話,,將視為一個word。 移動到一行的頭和尾 ^ :行頭 $ :行尾 注:行尾$,,可以用3$移動到下面第3行尾,,行首^ 不支持?jǐn)?shù)字。 如何跳到指定行,? nG 注:(1)n表示第n行,,例如10G,,則跳到第10行,且光標(biāo)在行首,。 (2)如果沒有n,,只有G,則跳到最后一行,,且光標(biāo)在行首,。 我想用G命令,但是如何知道第幾行,?OK,,在Normal模式下輸入:set number就可以顯示行號了,如果想關(guān)閉行號,,則輸入:set nonumber,。 好了,移來移去,來點(diǎn)別的吧,,例如如何修改,,復(fù)制。OK,,GO,! 先來看看如何進(jìn)行修改吧。Word和其他的一些文本編輯器都是編輯和輸入混雜在一起的,,輸入的同時就可以修改,。而Vim的這些編輯指令必須在Normal模式下,切記,! 修改命令 刪除: 在word等編輯器下,,如果輸入錯了,我們可以用Delete和Backspace鍵刪除,,然后再重新輸入,,vim也可以這樣,x就是刪除光標(biāo)所在處的字符(char),,dw就是刪除一個字(word),,然后在輸入i或者a進(jìn)行新內(nèi)容的輸入。 刪除整行如何操作,?dd就可以刪除光標(biāo)所在行,。 那刪除光標(biāo)所在處到本行的結(jié)尾呢?D或者d$就可以了,。還記得$嗎?代表什么來著,? 刪除結(jié)束還要在輸入i 或者a 才能輸入真麻煩!有沒有刪除后就進(jìn)入inster模式的指令呢?當(dāng)然有,,就是關(guān)于c的指令,,cw是刪除一個Word,cc刪除整行,,c$和C都是刪除光標(biāo)所在處到本行的結(jié)尾,。你可能已經(jīng)明白了,其實(shí)c的指令是修改指令,。 好了,,你是否已經(jīng)把內(nèi)容刪干凈了,沒有可以編輯的內(nèi)容了呢,?呵呵,,沒關(guān)系,u指令可以讓你恢復(fù)刪除的內(nèi)容,。在Normal模式下,,輸入u,就恢復(fù)了,,重復(fù)輸入u就把整個內(nèi)容都恢復(fù)了,u就是其他文本編輯器里的Undo的指令,,對應(yīng)的Redo指令就是[Ctrl]r,。需要注意的是在不同模式下,u 的含義是不同的,。如果在instert模式下輸入然后在Normal模式下執(zhí)行u,,則會刪除上一次輸入的所有內(nèi)容。如果是在 Normal 模式下執(zhí)行其他的指令例如x,,然后再執(zhí)行u,,就恢復(fù)一次 Normal 下的指令。Redo也一樣,。 OK,,讓我們來學(xué)習(xí)更加重要的功能吧! 剪切,、復(fù)制,、粘貼等相關(guān) 剪切、復(fù)制等這些指令都是同塊(block)相關(guān)的操作,,因此無論如何都要先了解一下塊的基本知識,。vim里用mark來定義一個標(biāo)記,然后用y指令把指定的內(nèi)容進(jìn)行復(fù)制到緩存中,,然后用p來粘貼,。!@#¥%^&,天啊,,太復(fù)雜了,。沒關(guān)系,咱們用個例子來說明吧,,很簡單的,! 例如下面的文本: this is the first line this is 2nd line 我們可以先把光標(biāo)移動到第一行的行首,然后切換到Normal模式(還記得如何切換嗎,?),,輸入ma(表示標(biāo)記a),然后移動光標(biāo)到第2行的2nd處,,輸入y`a(表示把標(biāo)記a到光標(biāo)所在處復(fù)制到緩存中),,然后移動光標(biāo)到你希望粘貼的地方輸入p(表示粘貼)。OK你已經(jīng)完成了最基本的復(fù)制,、粘貼功能,。 下面我們看看這幾個命令(m,y,,p)的情況,。 m指令。m指令非常簡單,,他就是做標(biāo)記,,你可以做從a到z的26個標(biāo)記例如ma,mb,,mc等,。他在很多指令中會用到,例如刪除,,這本入門就不介紹了,,你可以參考其他書籍。 y指令表示yank,,其實(shí)就是拷貝,。不過他有其他的指令形式,例如yy復(fù)制整行,。 p指令就是粘貼,。例如上面的例子。 OK,,既然你知道了yy指令,,那希望復(fù)制一行并粘貼的話,我想你應(yīng)該知道如何操作了吧(yy,,p),。 也許你用m做標(biāo)記感覺不是很舒服,,OK,我們來個可視的塊的選擇方法,。那就是v指令,。 記得在其他的文本編輯器里我們可以用鼠標(biāo)選擇一些文本,然后copy,,paste,,在vim里一樣可以,當(dāng)然希望用鼠標(biāo)最好用gvim?,F(xiàn)在來試試v的指令吧,。 在Normal模式下,輸入v(看到屏幕下面的visual模式提示了嗎,?),,然后移動光標(biāo),看到被選擇的內(nèi)容了吧 ,。選擇好了,,你可以輸入d把他們刪除,也可以輸入y將他們復(fù)制到緩存中,,然后用p來粘貼到你希望的地方,。什么多次粘貼,多按幾次p就可以了,,也可以輸入#p,,#代表連續(xù)粘貼的次數(shù),例如粘貼100次,,就輸入100p。 OK,,我想你一定喜歡上v命令了,,還有V和[CTRL]v呢!V(大寫)是表示可視行,,就是代表你移動光標(biāo)時,,選擇的范圍是行,不像小寫的v是一個字符,。另外[CTRL]v是選擇方塊,,你可以試試,就清楚了,! 好了,,基本的東西就這些了,當(dāng)然還有幾個也不錯的命令東東,,很簡單,,它能高效的配合你上面的基本工作,那還猶豫什么!開始吧,! 連接行 你在編輯的時候,,一定會碰見希望把兩行或者多行合并成一行的情況。好,,vim已經(jīng)給你設(shè)計(jì)好了,,就是J指令,注意是大寫(j是什么,?),。J表示將光標(biāo)所在行和下一行合并成一行,如何合并多行,,可以輸入#J,,#代表希望合并的行數(shù),例如3J,。 插入新行 怎么插入新行,?用o或者O指令(不是零)。o是在當(dāng)前行下插入新行,,大寫O是在當(dāng)前行上插入新行,。真是簡單,而且直接進(jìn)入instert模式,,不錯,,設(shè)計(jì)的很貼心。 如何在一行內(nèi)查找一個字符(或者一個中文單字),? 使用fx,Fx,tx,Tx指令,。其中x代表欲查詢的字符。他們的區(qū)別是:fx(向右)查x,,且光標(biāo)停在x上,,F(xiàn)x(向左)查x,且光標(biāo)停在x上,tx(向右)查x, 且光標(biāo)停在x前,,Tx(向左)查x, 且光標(biāo)停在x后,。 如何查找字符串? 使用/xxxxx,。其中×××××為需查找的內(nèi)容,。當(dāng)查到多個內(nèi)容時,可以輸入n來將光標(biāo)定位到下一個位置,。此外查找命令有歷史記錄功能,,可以輸入/,然后用光標(biāo)上,、下鍵來切換已經(jīng)查過的內(nèi)容,。要注意的是幾個特殊的字符必須在前面加,。這幾個字符為:.*[]^%/?~$。如果想往回查找,,則輸入,?,改變查找順序,,再輸入n來進(jìn)行定位,。當(dāng)然也可以用N來反向查找。 如何翻頁(半頁),? 使用[ctrl]u和[ctrl]d,。其中^u為向上翻半頁,^d為向下翻半頁,。 如何插入一些特殊的字符,,例如:∮等? 使用:digraphs來顯示特殊字符的列表,,然后輸入CTRL+K+顯示出來的2個字符來輸入特殊字符,,例如輸入CTRL+K+I(xiàn)+o,則為∮,。 哦,!忘記了告訴你如何退出vim! 在Normal模式下,,輸入ZZ就可以保存文檔并退出,。 在Noraml模式下,輸入:q!可以強(qiáng)制退出,,就是不保留修改退出,。 好了,享受Vim吧,! --------------------------------------------------------------------------------------------------------
1,、vi的基本概念
基本上vi可以分為三種狀態(tài),分別是命令模式(command mode),、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區(qū)分如下: 1) 命令行模式command mode) 控制屏幕光標(biāo)的移動,,字符,、字或行的刪除,移動復(fù)制某區(qū)段及進(jìn)入Insert mode下,,或者到 last line mode,。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字輸入,,按「ESC」鍵可回到命令行模式,。
3) 底行模式(last line mode)
將文件保存或退出vi,,也可以設(shè)置編輯環(huán)境,如尋找字符串,、列出行號……等,。
不過一般我們在使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令行模式command mode),。
2,、vi的基本操作
a) 進(jìn)入vi 在系統(tǒng)提示符號輸入vi及文件名稱后,就進(jìn)入vi全屏幕編輯畫面:
$ vi myfile
不過有一點(diǎn)要特別注意,,就是您進(jìn)入vi之后,,是處于「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字,。初次使用vi的人都會想先用上下左右鍵移動光標(biāo),,結(jié)果電腦一直嗶嗶叫,把自己氣個半死,,所以進(jìn)入vi后,,先不要亂動,轉(zhuǎn)換到「插入模式(Insert mode)」再說吧,! b) 切換至插入模式(Insert mode)編輯文件
在「命令行模式(command mode)」下按一下字母「i」就可以進(jìn)入「插入模式(Insert mode)」,,這時候你就可以開始輸入文字了。
c) Insert 的切換
您目前處于「插入模式(Insert mode)」,,您就只能一直輸入文字,,如果您發(fā)現(xiàn)輸錯了字!想用光標(biāo)鍵往回移動,,將該字刪除,,就要先按一下「ESC」鍵轉(zhuǎn)到「命令行模式(command mode)」再刪除文字。
d) 退出vi及保存文件
在「命令行模式(command mode)」下,,按一下「:」冒號鍵進(jìn)入「Last line mode」,,例如:
: w filename (輸入 「w filename」將文章以指定的文件名filename保存)
: wq (輸入「wq」,存盤并退出vi)
: q! (輸入q!,, 不存盤強(qiáng)制退出vi)
3,、命令行模式(command mode)功能鍵 1). 插入模式 按「i」切換進(jìn)入插入模式「insert mode」,按“i”進(jìn)入插入模式后是從光標(biāo)當(dāng)前位置開始輸入文件,;
按「a」進(jìn)入插入模式后,,是從目前光標(biāo)所在位置的下一個位置開始輸入文字;
按「o」進(jìn)入插入模式后,,是插入新的一行,,從行首開始輸入文字。
2). 從插入模式切換為命令行模式
按「ESC」鍵,。
3). 移動光標(biāo)
vi可以直接用鍵盤上的光標(biāo)來上下左右移動,,但正規(guī)的vi是用小寫英文字母「h」,、「j」、「k」,、「l」,,分別控制光標(biāo)左、下,、上,、右移一格。
按「ctrl」+「b」:屏幕往“后”移動一頁,。
按「ctrl」+「f」:屏幕往“前”移動一頁,。
按「ctrl」+「u」:屏幕往“后”移動半頁。
按「ctrl」+「d」:屏幕往“前”移動半頁,。
按數(shù)字「0」:移到文章的開頭,。
按「G」:移動到文章的最后。
按「$」:移動到光標(biāo)所在行的“行尾”,。
按「^」:移動到光標(biāo)所在行的“行首”
按「w」:光標(biāo)跳到下個字的開頭
按「e」:光標(biāo)跳到下個字的字尾
按「b」:光標(biāo)回到上個字的開頭
按「#l」:光標(biāo)移到該行的第#個位置,,如:5l,56l。
4). 刪除文字
「x」:每按一次,,刪除光標(biāo)所在位置的“后面”一個字符,。
「#x」:例如,「6x」表示刪除光標(biāo)所在位置的“后面”6個字符,。
「X」:大寫的X,,每按一次,刪除光標(biāo)所在位置的“前面”一個字符,。
「#X」:例如,,「20X」表示刪除光標(biāo)所在位置的“前面”20個字符。
「dd」:刪除光標(biāo)所在行,。
「#dd」:從光標(biāo)所在行開始刪除#行
5). 復(fù)制
「yw」:將光標(biāo)所在之處到字尾的字符復(fù)制到緩沖區(qū)中,。
「#yw」:復(fù)制#個字到緩沖區(qū)
「yy」:復(fù)制光標(biāo)所在行到緩沖區(qū)。
「#yy」:例如,,「6yy」表示拷貝從光標(biāo)所在的該行“往下數(shù)”6行文字,。
「p」:將緩沖區(qū)內(nèi)的字符貼到光標(biāo)所在位置。注意:所有與“y”有關(guān)的復(fù)制命令都必須與“p”配合才能完成復(fù)制與粘貼功能,。
6). 替換
「r」:替換光標(biāo)所在處的字符,。
「R」:替換光標(biāo)所到之處的字符,直到按下「ESC」鍵為止,。
7). 回復(fù)上一次操作
「u」:如果您誤執(zhí)行一個命令,可以馬上按下「u」,,回到上一個操作,。按多次“u”可以執(zhí)行多次回復(fù),。
8). 更改
「cw」:更改光標(biāo)所在處的字到字尾處
「c#w」:例如,「c3w」表示更改3個字
9). 跳至指定的行
「ctrl」+「g」列出光標(biāo)所在行的行號,。
「#G」:例如,,「15G」,表示移動光標(biāo)至文章的第15行行首,。
4,、Last line mode下命令簡介
在使用「last line mode」之前,請記住先按「ESC」鍵確定您已經(jīng)處于「command mode」下后,,再按「:」冒號即可進(jìn)入「last line mode」,。 A) 列出行號
「set nu」:輸入「set nu」后,會在文件中的每一行前面列出行號,。
B) 跳到文件中的某一行
「#」:「#」號表示一個數(shù)字,,在冒號后輸入一個數(shù)字,再按回車鍵就會跳到該行了,,如輸入數(shù)字15,,再回車,就會跳到文章的第15行,。
C) 查找字符
「/關(guān)鍵字」:先按「/」鍵,,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,,可以一直按「n」會往后尋找到您要的關(guān)鍵字為止,。
「?關(guān)鍵字」:先按「?」鍵,再輸入您想尋找的字符,,如果第一次找的關(guān)鍵字不是您想要的,,可以一直按「n」會往前尋找到您要的關(guān)鍵字為止。
D) 保存文件
「w」:在冒號輸入字母「w」就可以將文件保存起來,。
E) 離開vi
「q」:按「q」就是退出,,如果無法離開vi,可以在「q」后跟一個「!」強(qiáng)制離開vi,。
「qw」:一般建議離開時,,搭配「w」一起使用,這樣在退出的時候還可以保存文件,。
5,、vi命令列表
1、下表列出命令模式下的一些鍵的功能: h
左移光標(biāo)一個字符 l
右移光標(biāo)一個字符 k
光標(biāo)上移一行 j
光標(biāo)下移一行 ^
光標(biāo)移動至行首 0
數(shù)字“0”,,光標(biāo)移至文章的開頭 G
光標(biāo)移至文章的最后 $
光標(biāo)移動至行尾 Ctrl+f
向前翻屏 Ctrl+b
向后翻屏 Ctrl+d
向前翻半屏 Ctrl+u
向后翻半屏 i
在光標(biāo)位置前插入字符 a
在光標(biāo)所在位置的后一個字符開始增加 o
插入新的一行,,從行首開始輸入 ESC
從輸入狀態(tài)退至命令狀態(tài) x
刪除光標(biāo)后面的字符 #x
刪除光標(biāo)后的#個字符 X
(大寫X),刪除光標(biāo)前面的字符 #X
刪除光標(biāo)前面的#個字符 dd
刪除光標(biāo)所在的行 #dd
刪除從光標(biāo)所在行數(shù)的#行 yw
復(fù)制光標(biāo)所在位置的一個字 #yw
復(fù)制光標(biāo)所在位置的#個字 yy
復(fù)制光標(biāo)所在位置的一行 #yy
復(fù)制從光標(biāo)所在行數(shù)的#行 p
粘貼 u
取消操作 cw
更改光標(biāo)所在位置的一個字 #cw
更改光標(biāo)所在位置的#個字 2,、下表列出行命令模式下的一些指令 w filename 儲存正在編輯的文件為filename wq filename
儲存正在編輯的文件為filename,,并退出vi q!
放棄所有修改,,退出vi set nu
顯示行號 /或?
查找,在/后輸入要查找的內(nèi)容 n
與/或?一起使用,,如果查找的內(nèi)容不是想要找的關(guān)鍵字,,按n或向后(與/聯(lián)用)或向前(與?聯(lián)用)繼續(xù)查找,直到找到為止,。 對于第一次用vi,,有幾點(diǎn)注意要提醒一下: 1、用vi打開文件后,,是處于「命令行模式(command mode)」,,您要切換到「插入模式(Insert mode)」才能夠輸入文字。切換方法:在「命令行模式(command mode)」下按一下字母「i」就可以進(jìn)入「插入模式(Insert mode)」,,這時候你就可以開始輸入文字了,。 2、編輯好后,,需從插入模式切換為命令行模式才能對文件進(jìn)行保存,,切換方法:按「ESC」鍵。 3,、保存并退出文件:在命令模式下輸入:wq即可?。▌e忘了wq前面的:) ----------------------------------------------------------------------------
(h,j,k,l,w,b等等)或者是指行號. # (這里#代表一個數(shù)字) 執(zhí)行n次后面的命令... : 進(jìn)入ex模式 ) 下一句 ( 上一句 } 下一段 { 上一段 ]] 下一節(jié) [[ 上一節(jié) 0 行的開頭 $ 行的末尾 ^ 行的第一個非空白字符 + 下一行的開頭 - 上一行的開頭 (空格) 下一個字符 (回車) 下一行 / 向前搜索 ? 向后搜索 % 查找當(dāng)前小(中,大)括號的匹配字符 , 逆向重復(fù)上一個f,F,t或T操作 ; 重復(fù)上一個f,F,t或T操作 . 重復(fù)上一個操作 ` 轉(zhuǎn)到標(biāo)記處 ' 轉(zhuǎn)到標(biāo)記所在行的開頭 `` 查找前回到上一個做標(biāo)記的地方 '' 查找前回到上一個做標(biāo)記所在行的開頭 ~ 切換字符的大小寫 " 保存到寄存器中 !! 重復(fù)上一次SHELL命令 ! 把后面的文本送給命令, 取代輸出(例如, !}fmt把當(dāng)前的段落 送給命令fmt處理,然后用fmt返回的東西替換輸出.) >> 右移當(dāng)前段落一個移動寬度(shiftwidth) << 左移當(dāng)前段落一個移動寬度(shiftwidth) >% 從當(dāng)前到匹配小(中,大)括號之間的文本右移 <% 從當(dāng)前到匹配小(中,大)括號之間的文本左移 (似乎漏了一個符號|, 移動到某一列----譯注) a 在當(dāng)前位置之后添加 A 在當(dāng)前行的末尾添加 ^a 沒有使用 b 上一個單詞的開頭 B 上一個單詞的開頭,忽略標(biāo)點(diǎn)符號 ^b 上移一屏 c 覆蓋... C 覆蓋到行末尾 ^c 終止插入模式,在命令模式?jīng)]有用 d 刪除... D 刪除到行末尾 ^d 下移半屏,如果在插入模式下則移到上一個移動寬度(ShiftT-ab)處 e 單詞的末尾 E 單詞的末尾,忽略標(biāo)點(diǎn)符號 ^e 屏幕下卷一行 f 查找... F 向后查找... ^f 下移一屏 g 未用 G ...跳至[缺省是到文件末尾] ^g 顯示狀態(tài)欄 h 左移 H 屏幕上的第一行 ^h 在插入模式下是退格,命令模式下是左移 i 在當(dāng)前的位置前面插入 I 在本行的第一個非空白字符前面插入 ^i 插入模式下是制表鍵,命令模式下未用 j 下移 J 把下一行合并到本行 ^j 命令模式下是下移,插入模式下是建一個新行 k 上移 K 未用 ^k 未用 l 右移 L 屏幕中的最后一行 ^l 重繪屏幕 m 把當(dāng)前位置標(biāo)記到寄存器中 M 屏幕的中間行 ^m 回車 n 重復(fù)上次查找 N 逆向重復(fù)上次查找 ^n 命令模式下是下移 o 在當(dāng)前行的下面建一個新行 O 在當(dāng)前行的上面建一個新行 ^o 未用 p 在當(dāng)前行的下面粘貼 (譯注--應(yīng)為在當(dāng)前位置的后面粘貼) P 在當(dāng)前行的上面粘貼 (譯注--應(yīng)為在當(dāng)前位置的前面粘貼) ^p 命令模式下是上移 q 未用 Q 退出并且啟動ex ^q 未用 r 覆蓋當(dāng)前的字符 R 在插入模式下一直覆蓋字符 ^r 在命令模式下面重繪屏幕 s 替換 S 替換整行 t 到... T 向后到... ^t 移到下一個移動寬度(shifttab)處 u 撤消上一次操作 U 撤消對本行的所有修改 ^u 上移半屏 v 未用 V 未用 ^v 未用 w 下一個單詞的開頭 W 下一個單詞的開頭,忽略標(biāo)點(diǎn)符號 ^w 命令模式下未用,在插入模式下是到上一個單詞的開頭處 x 刪除當(dāng)前字符 X 刪除前一個字符 ^x 未用 y 復(fù)制... Y 復(fù)制整行 ^y 屏幕上卷一行 z 重新配置當(dāng)前行周圍的屏幕 ZZ 保存之后退出 ^z 未用 (譯注--在命令模式下,^z執(zhí)行了UNIX暫停操作) 6.1 - 命令模式的輸入選項(xiàng)(:命令) (注: 這不是一個規(guī)范的列表,, 我只是列出了一些最重要的命令) :r <文件> 把<文件>讀入到當(dāng)前文檔 :r !<命令> 把<命令>的輸出插入到當(dāng)前文本中 :nr <文件> 把<文件>插入到第n行 :!<命令> 運(yùn)行<命令>,然后返回 :sh 轉(zhuǎn)到SHELL :so <文件> 讀取<文件>,再執(zhí)行文件里面的命令 (譯注--文件中的命令應(yīng)該都是一些ex命令) :x 保存之后退出 :wq 保存之后退出 :l1,l2w <文件>把第l1和第l2行之間的文本寫到<文件>中去,如果沒-有指定<文件>, vi就假定是當(dāng)前文件,如果沒有指定l1,l2,就假定是整個文-件(就成了:w) :w >> <文件> 添加到<文件>末尾. 也可以使用行號 :w! 覆蓋當(dāng)前文件 :q 退出 :q! 不存盤就退出 :e <文件> 不離開vi編輯<文件> :e! 重新編輯當(dāng)前文件,忽略所有的修改 :n 編輯下一個文件 :e +n <文件> 從第n行開始編輯<文件>,如果超過了末尾,就從末尾開始編輯 :e# 編輯替換文件(如果使用了命令:e<文件>,替換文件就指的是原-始文件) :args 顯示所有要編輯的文件 :rew 重新回到第一個編輯的文檔 :map m n 創(chuàng)建一個宏(使 m 做 n) :map! m n 創(chuàng)建一個插入模式的宏(使 m 做 n) :unmap m 刪除宏m :unmap! m 刪除插入模式的宏m :ab <1> <2> 縮寫,敲<1>的時候用<2>取代 :unab <1> 取消縮寫<1> :set <選項(xiàng)> 設(shè)置<選項(xiàng)>... 6.2 - 設(shè)置選項(xiàng)(set) 可以使用括號中的縮寫形式. 語法: :set <選項(xiàng)> <參數(shù)> (如果需要參數(shù)的話) 也可以在一行中指定多個選項(xiàng) :set <選項(xiàng)>? 顯示出當(dāng)前這個選項(xiàng)的參數(shù)值 :set all 則顯示所有的選項(xiàng)值 對那些無須參數(shù)的選項(xiàng)來說,使用:set no<選項(xiàng)>就可以把它給關(guān)了 選項(xiàng): 缺省值: 含義: autoindent (ai) noai 使新行自動縮進(jìn),和上(下)行的位置對齊 autoprint (ap) ap 每條命令之后都顯示出修改之處 autowrite (aw) noaw 在:n,:!命令之前都自動保存文件 beautify (bf) nobf 在輸入的時候忽略所有的控制字符 (除了制表鍵(tab),換行(newline),進(jìn)紙(for-mfeed)) directory= (dir=) /tmp 存放緩沖區(qū)的目錄名 edcompatible noedcompatible 在替換的時候使用類ed的用法 errorbells (eb) errorbells 出錯的時候響鈴 exrc (ex) noexrc 允許在主目錄(home)外面之外放.exrc文件 hardtabs= (ht=) 8 設(shè)置硬制表的邊界 ignore case (ic) noic 正規(guī)式里忽略大小寫 lisp nolisp 打開lisp模式 list nolist 顯示所有的制表鍵和行的結(jié)尾 magic magic 可以使用更多的正規(guī)表達(dá)式 mesg mesg 允許向終端發(fā)送消息 number (nu) nonumber 顯示行號 open open 允許開放和可視化 optimize (opt) optimize 優(yōu)化吞吐量,打印時不發(fā)回車 paragraphs= (para=) IPLPPPQPPLIbp 設(shè)置{ & }的分界符 prompt prompt 命令模式下的輸入給出:的提示符 readonly (ro) noro 除非用!號否則不準(zhǔn)保存文件 redraw noredraw 當(dāng)編輯的時候重繪屏幕 remap remap 允許宏指向其他的宏 report= 5 如果影響的行數(shù)>這個數(shù)的話就報(bào)告 scroll 1/2 window 下卷屏幕時滾動屏幕的數(shù)目, 同樣這也是z命令輸出的行數(shù)(z 輸出2倍滾屏的大小) sections= SHNHH HU 定義節(jié)的末尾(當(dāng)使用命令[[ 和 ]] 時) shell= (sh=) /bin/sh 缺省的SHELL,如果設(shè)置了環(huán)境變量SHELL的話,就使用變-量 shiftwidth= (sw=) 8 當(dāng)使用移動(shift)命令時移動的字符數(shù) showmatch (sm) nosm 顯示{, }, (, ), [, 或者 ] 的匹配情況 showmode noshowmode 顯示你處在什么模式下面 slowopen (slow) 插入之后不要立刻更新顯示 tabstop= (ts=) 8 設(shè)置制表停止位(tabstop)的長度 taglength= (tl=) 0 重要標(biāo)記的字符個數(shù)(0表示所有的字符) tags= tag, /usr/lib/tags 定義包含標(biāo)記的文件路徑 term= 設(shè)置終端類型 terse noterse 顯示簡短的錯誤信息 timeout (to) timeout 一秒鐘后鍵盤映射超時 ttytype= 設(shè)置終端類型 warn warn 顯示"No write since last change"信息 window= (w=) 可視模式下窗口的行數(shù) wrapmargin= (wm=) 0 右邊距,大于0的話最右邊的單詞將折行,留出n個空白位置 wrapscan (ws) ws 查找到文件尾后再重頭開始 writeany (wa) nowa 可以保存到任意一個文件去 先編輯/usr/src/sys/i386/conf/GENERIC
#cd /usr/src #make kernel KERNCONF=GENERIC |
|