使用vim的重不重要_VIM高级操作,经常用vim的应该多学习。多开发效率很有大帮助!...
Vim是號(hào)稱“編輯器之神”的文本編輯軟件,自從接觸Vim以來,基本上都是用Vim來修改和編寫代碼和配置文件的。
但是我一直只會(huì)用最基本的命令,雖然把HJKL的定位鍵已操縱地很熟練。但是Vim其他強(qiáng)大的地方卻幾乎沒有觸及過。
學(xué)一樣?xùn)|西,就要把它學(xué)精。
這里記錄了一些常用的使用技巧。
零、將VIM打造為超級(jí)IDE
先附上鏈接
一、兩行合并為一行:
int
main(int argc,char argv)
假如要把上面兩行并為一行,只需要定位于int這行,然后按J(大寫),即可。
二、撤消和重做
以前很傻,只知道按u來撤消,不知道重做。不一小心,撤消過頭就傻了。原來重做是Ctrl+r。
另外,大寫U用來撤消整行。
三、連續(xù)插入n個(gè)感嘆號(hào)
以前以為用i/a不能進(jìn)行連續(xù)多個(gè)字符的插入,原來錯(cuò)了!
Hello World
比如要在上面這句話后面插入10個(gè)"!",總不能真的打10個(gè)吧?
只要在普通模式下把光標(biāo)定位于d,然后按10a!……不對(duì)啊,才一個(gè)!,別急,再按兩下Esc!哈哈,出來10個(gè)!了吧!這個(gè)貌似不太常用,但挺好玩,呵呵~
四、快速保存退出
之前我會(huì)用兩個(gè)退出方法:
保存并退出:wq
不保存并退出:q!
現(xiàn)在保存并退出有更快的方法──直接在普通模式下按ZZ即可。
另外,用:e!可以不保存文件并重新載入這個(gè)文件。
五、移動(dòng)和滾動(dòng)
直接按w/b來按單詞滾動(dòng),w是向前移動(dòng)一個(gè)單詞,b是向后移動(dòng)一個(gè)單詞,我居然不常用!虧我還常常dwdw的來刪除詞。
另外,Ctrl+D向下滾屏,Ctrl+U向上滾屏,比我之前hjkl(左下右上)的有效率多了……汗
不知道在哪里?
:set number,來顯示行號(hào),:set nonu取消行號(hào),行號(hào)+gg(或者 行號(hào)+G)直接到達(dá)該行。
六、查找時(shí)忽略大小寫和歷史查找
有時(shí)查找單詞時(shí)需要忽略大小寫,只要設(shè)置下面的就可以了
:set ignorecase
還有另外一種忽略搜索時(shí)大小寫的方法更好用,只要在待搜索字符串后加個(gè)\c就可以了
/stringYouWantToSearch\c
假如進(jìn)行過幾次查找,想繼續(xù)以之前查過的關(guān)鍵詞查找時(shí),只要按/,然后上下鍵來選擇即可
同理,按下:,然后上下鍵,也可以翻看執(zhí)行過的歷史紀(jì)錄,不過僅限于當(dāng)前的編輯。
七、快速查找
你要找當(dāng)前光標(biāo)定位處的字段,難道要慢吞吞輸入/和字段嗎?不必了!直接按*號(hào),Vim就會(huì)把當(dāng)前的字段作為查找內(nèi)容,找下一處。
對(duì)了,:set hlsearch可以將查找的內(nèi)容設(shè)置成高亮。這樣就好看了。反之,加上:set nohlsearch就可以了。上面的ignorecase也可以加no。
八、定義標(biāo)記
現(xiàn)在才發(fā)現(xiàn)定義標(biāo)記這個(gè)超有用的東西!真是后悔莫及啊!
以前在一個(gè)C文件里,從一個(gè)方法跳到另一個(gè)方法,跳來跳去,都是記行數(shù)的……
原來,按下ma,就會(huì)給光標(biāo)所在處標(biāo)記了一個(gè)a,接下來可以通過`a來訪問這個(gè)地方!注意,符號(hào)`是數(shù)字1左邊那個(gè)符號(hào),此外,通過'a,可以訪問那個(gè)位置的行首,注意,符號(hào)'是單引號(hào)。
打命令:marks可以看到所有的標(biāo)記。
而''或``,就可以在最近的兩個(gè)標(biāo)記之間相互跳轉(zhuǎn)!
當(dāng)你用 "G" 命令跳到另一個(gè)地方,Vim 會(huì)記住你從什么地方跳過去的。這個(gè)位置成為一個(gè)標(biāo)記,要回到原來的地方,使用如下命令:'',''命令可以在兩個(gè)位置上跳來跳去。而 CTRL-O 命令則跳到一個(gè) "較老" 的地方 (提示: O 表示 older)。CTRL-I 則跳到一個(gè) "較新" 的地方.
:jumps 命令能輸出一個(gè)你可以跳往的位置的列表。最后一個(gè)你使用的標(biāo)記會(huì)用 ">" 符號(hào)標(biāo)記出來。
Vim 允許你在文本中放置自定義的標(biāo)記。命令 "ma" 用 a 標(biāo)記當(dāng)前的光標(biāo)位置。你可以在文本中使用 26 個(gè)標(biāo)記 (a 到 z)。這些標(biāo)記是不可見的,只是一個(gè)由 Vim 記住的位置。
要跳到一個(gè)你定義的標(biāo)記,可以使用命令`{mark},這里 {mark} 是指定義標(biāo)記的那個(gè)字母。所以,移到標(biāo)記 a 的命令是:`a
你可以用如下命令取得所有的標(biāo)記的列表::marks
到有一些特殊的標(biāo)記,包括:
'?????? 跳轉(zhuǎn)前的光標(biāo)位置
''?????? 最后編輯的光標(biāo)位置
[?????? 最后修改的開始位置
]?????? 最后修改的結(jié)束位置
注:mark僅在當(dāng)前文件跳轉(zhuǎn)有效,jumps可在多個(gè)文件之間來回跳轉(zhuǎn)
九、替換文本(這個(gè)沒看懂怎么用................)
* 用cw或ce來將光標(biāo)所處的單詞替換掉,效果是一樣的;
* 按cc的話,直接替換整行。 另外,用S也能達(dá)到同樣的效果;
* 按C=c$,替換當(dāng)前至行尾的內(nèi)容;
* s的話,是替換當(dāng)前的字符,跟r的功能一樣;
* 以前刪除一行至末尾用d$,原來D就行了;
上面的大多數(shù)都可以加數(shù)字!
十、可視選擇(這個(gè)我沒怎么用過.....)
* 按v進(jìn)行選擇,如果想控制頭和尾,按o/O進(jìn)行切換;
* 如果是大寫的V,則按行進(jìn)行選擇;
十一、刪除單詞和替換句子、復(fù)制單詞
* 一般來說,用dw/de刪除單詞需要將光標(biāo)定位于單詞開頭(de不會(huì)刪除單詞后的空格,dw會(huì)刪除單詞后的空格),用dw/de時(shí)需移到單詞開頭是因?yàn)閐w/de會(huì)從光標(biāo)所在的那個(gè)字符(包括該字符)開始刪除直到該單詞結(jié)束,但是如果用daw,則無需這樣,只要光標(biāo)在這個(gè)單詞上就可以了(daw會(huì)將空格一起刪除,daw=Delete a Word),如果不包括空格,就是diw;
* 替換句子的話,就用cis就行了(目前我試驗(yàn)出來的可以被用以標(biāo)示一句話結(jié)束的標(biāo)點(diǎn)符號(hào)是英文的問號(hào)?和句號(hào). )
接下來看下復(fù)制:
yy命令復(fù)制當(dāng)前整行的內(nèi)容到vi緩沖區(qū)
yw復(fù)制當(dāng)前光標(biāo)所在位置到單詞尾字符的內(nèi)容到vi緩存區(qū),相當(dāng)于復(fù)制一個(gè)單詞,而yaw/yiw也是復(fù)制一個(gè)單詞,但光標(biāo)可以處在該單詞的任何位置,比起yw的需要移動(dòng)到單詞的首字符要方便。
y$復(fù)制光標(biāo)所在位置到行尾內(nèi)容到緩存區(qū)
y^復(fù)制光標(biāo)所在位置到行首內(nèi)容到緩存區(qū)
#yy 例如:5yy就是復(fù)制5行
#yw 例如:2yw就是復(fù)制兩個(gè)單詞
如果要復(fù)制第m行到第n行之間的內(nèi)容,可以在末行模式中輸入m,ny例如:3,5y復(fù)制第三行到第五行內(nèi)容到緩存區(qū)。
十二、模式轉(zhuǎn)換
Vim作為一種強(qiáng)大的編輯工具,是通過鍵盤來實(shí)現(xiàn),而不是通過鼠標(biāo)來實(shí)現(xiàn)的。這一點(diǎn)很重要。
vim有三種常見的模式,Normail Mode(命令模式),Insert Mode(輸入模式)和Visual Mode(視圖模式)。
這幾種模式的切換是也是很直接方便的,比如在命令模式下,要求輸入字符,只要輸入i就進(jìn)入輸入模式
而根據(jù)要輸入位置和當(dāng)前光標(biāo)的關(guān)系不同,有不同的切換。
總之可以把命令模式和輸入模式的切換有Append,Insert,Replace,Subsitute 記作AIRS,這種記憶方法特別方便
英文單詞的意思是空氣,vim在命令模式和輸入模式的切換就像空氣一樣,無影無形。
而AIRS的英文字母的大小寫意思是不一樣的。小寫的表示characterwise(字符),大寫的表示linewise(行)
十三、 刪除、復(fù)制指定個(gè)數(shù)個(gè)字符
比如 : 5yl?????? 復(fù)制光標(biāo)后的5個(gè)字符(包括光標(biāo)所在的那個(gè)字符)
5yh?????? 復(fù)制光標(biāo)前的五個(gè)字符(不包括光標(biāo)所在的那個(gè)字符)
5dl??????? 刪除光標(biāo)后的5個(gè)字符(包括光標(biāo)所在的那個(gè)字符)
5dh?????? 刪除光標(biāo)前的5個(gè)字符(不包括光標(biāo)所在的那個(gè)字符)
十四、強(qiáng)大的替換功能
替換::%s/old_string/new_string/g。或者:3,7s/old_string/new_string/g
在一個(gè)目錄下替換文本中的某個(gè)字符串
sed -i 's/orig_string/new_string/g' *
十五、同時(shí)編輯多個(gè)文件
在vim的普通模式下輸入 :e filename,可以打開并編輯新的文件,但如果當(dāng)前文件還沒有保存的話,會(huì)有錯(cuò)誤提示,這時(shí)需使用:w 先將其保存才行。
如果正在用vim編輯著多個(gè)文件,可以用 ctrl+^在他們之間來回切換,比如現(xiàn)在同時(shí)打開了6個(gè)文件,則就有6個(gè)不同的緩沖區(qū),比如現(xiàn)在在編輯文件1,想切換到文件5去,則需要先把本文件保存(通過 :e ),然后再按5,再按ctrl+^,就切換到文件5了。
:rew??? 讀入編輯名單中的第一個(gè)文件, :last 讀入編輯名單中的最后一個(gè)文件。:next 會(huì)關(guān)閉光前文件打開下個(gè)文件開始編輯,但當(dāng)前文件也需要先:w保存。,但:set hidden 允許在有未保存的修改時(shí)切換緩沖區(qū),此時(shí)的修改由 vim 負(fù)責(zé)保存.
你打開了幾個(gè)窗口,現(xiàn)在你想退出 Vim,你可以分別關(guān)閉每一個(gè)窗口。更快的方法是:
:qall
這表示 "quit all"(全部退出)。如果任何一個(gè)窗口沒有存盤,Vim 都不會(huì)退出。同時(shí)
光標(biāo)會(huì)自動(dòng)跳到那個(gè)窗口,你可以用 ":write" 命令保存該文件或者 ":quit!" 放棄修改。
如果你知道有窗口被改了,而你想全部保存,則執(zhí)行如下命令:
:wall
這表示 "write all"(全部保存)。但實(shí)際上,它只會(huì)保存修改過的文件。Vim 知道保
存一個(gè)沒有修改過的文件是沒有意義的。
另外,還有 ":qall" 和 "wall" 的組合命令:
:wqall
這會(huì)保存所有修改過的文件并退出 Vim 。
最后,下面的命令由于退出 Vim 并放棄所有修改:
:qall!
注意,這個(gè)命令是不能撤消的。
或者也可以用多窗口來在一個(gè)界面中編輯多個(gè)文件,如下:
vim -o a b c 打開多個(gè)文件,每個(gè)文件一個(gè)窗口(水平分割)
vim -O a b c 打開多個(gè)文件,每個(gè)文件一個(gè)窗口(垂直分割)
或者:
打開一個(gè) :sp 另外一個(gè)文件 (水平分割) :vsp 文件名(垂直分割)如此就可以在一個(gè)窗口打開2個(gè)或多個(gè)文件了。可以使用 ctrl + 兩次按 w在多個(gè)窗口的文件中切換
窗口大小調(diào)整:(輸入順序: ctrl+shift+w 行數(shù) +/-/>/
ctrl+shift+w, 5, - 當(dāng)前窗口縮小5 行(高度,(如不指定行數(shù),默認(rèn)為1)
ctrl+shift+w, 5, + 當(dāng)前窗口增加5 行(高度,(如不指定行數(shù),默認(rèn)為1)
ctrl+shift+w, 5, > 當(dāng)前窗口增加5 列(寬度,(如不指定列數(shù),默認(rèn)為1)
ctrl+shift+w, 5, < 當(dāng)前窗口增加5 列(寬度,(如不指定列數(shù),默認(rèn)為1)
ctrl+shift+w, = 使所有窗口幾乎一樣大
ctrl+shift+w, _(下劃線) 使當(dāng)前窗口最大化
十六、執(zhí)行shell命令
在 vi 中也可以執(zhí)行 shell 的命令。在命令模式下,指令:!command,command 是shell 命令。例如指令:!date 會(huì)把目前的時(shí)間和日期顯示到螢?zāi)簧稀?/p>
要是你想把shell 命令的結(jié)果放到文件中,可以用:r !command。比如r !date 會(huì)把現(xiàn)在的時(shí)間放到光標(biāo)所在的行的下一行。可以指定行數(shù),例如:20r !date 會(huì)把現(xiàn)在的時(shí)間放到第二十行。
如果你要下一連串的shell 命令但又不想離開vi,你可以在line mode 下指令sh。這個(gè)指令會(huì)建立一個(gè)shell,如果要離開sh回到vim,可輸入exit,或按ctrl-D 。
也可以選擇檔案中的文字作為shell 命令的輸入。輸出的結(jié)果會(huì)把替換掉你輸入的文字。例如:2,5!sort 會(huì)把第二列到第五列的文字依序排列,而原來的文字就會(huì)被覆蓋。
十七、編輯得更快一點(diǎn)
按詞移動(dòng)
w
按下w會(huì)前進(jìn)一個(gè)詞。
b
按下b會(huì)后退一個(gè)詞。
這里,就像在Vim中的大部分情況下一樣,在這兩個(gè)命令前面加上一個(gè)數(shù)字可以讓它們重復(fù)做多次。
移動(dòng)到行首或行末
$
$會(huì)讓你移動(dòng)到所在行的末尾。
^
^會(huì)讓你移動(dòng)到所在行的開始。Home鍵也可以做相似的事。不過^會(huì)移動(dòng)到第一個(gè)非空的字符處,而Home會(huì)移動(dòng)到行首。
這兩個(gè)命令也接受數(shù)字參數(shù),比如
2$
會(huì)移動(dòng)到下一行末。
在行上查找
f要查找的字符
f用來在一行上查找一個(gè)字符并移動(dòng)到該字符所在處。比如
fx
用來移動(dòng)到此行當(dāng)標(biāo)后第一個(gè)x處。如果有一個(gè)數(shù)字參數(shù),就可以指定移動(dòng)到某個(gè)指定的匹配位置。
F
F用來向左查找。
移動(dòng)到指定行
行號(hào)G
G命令會(huì)把你帶到用行號(hào)指定的行。如果使用沒有行號(hào)的G,將會(huì)移動(dòng)到最后一行。
顯示當(dāng)前所在位置
:set number
Vim的可制定性是很強(qiáng)的,所以你可以通過:set設(shè)定很多選項(xiàng)。number就是其中之一。它是一個(gè)布爾選項(xiàng),用來控制是否在最左邊顯示行號(hào)。
:set number
可以把它打開。
:set nonumber
則可以關(guān)閉此選項(xiàng)。
Ctrl+g
Ctrl+g會(huì)顯示當(dāng)然后在的位置。
向上和向下翻屏
Ctrl+u
會(huì)向上翻半屏
Ctrl+d
會(huì)向下翻半屏
刪除文本
dw
dw會(huì)刪除一個(gè)詞。你應(yīng)該可以看得出來,這里的w代表的就是word(詞).其實(shí)d后面可以加好多東西來控制刪除的對(duì)象。比如:
d$
會(huì)刪除從當(dāng)前位置到行末的所有內(nèi)容,同理,d^會(huì)刪除從當(dāng)前位置到行首的所有內(nèi)容。
數(shù)字放在哪
這里有一個(gè)疑問,如果想刪除三個(gè)詞,那么應(yīng)該怎么辦?是d3w,還是3dw。其實(shí)它們都能做到,不過原理不太一樣。d3w是一次刪除三個(gè)詞,而3dw是執(zhí)行三次刪除一個(gè)詞。其實(shí)這兩者可以混起來,比如2d3w。
改變文本
cc
用來刪除一行并進(jìn)入輸入狀態(tài)。
cw
用來刪除一個(gè)詞并進(jìn)入輸入狀態(tài)等。
替換字符
r替換的字符
r命令把當(dāng)標(biāo)處的字符替換成在r命令中指定的字符。
更改大小寫
~
通過~可以把光標(biāo)處的字符用它的大寫(如果現(xiàn)在是小寫)或小寫(如果現(xiàn)在是大寫)替換。
宏
Vim有著簡潔而強(qiáng)大的宏功能。
q宏名
按下 q+宏名 后會(huì)進(jìn)入宏錄制狀態(tài),也就是說,此后發(fā)生的一切操作都會(huì)記錄到名為“宏名”的宏中。如果名為“宏名”的宏已經(jīng)存在,則將它覆蓋。
@宏名
會(huì)調(diào)用名為“宏名”的宏。
十八、使用舉例
1.在不是以hello開頭的行里,如果其行末以old結(jié)尾,則將其替換為new,該命令為 :
:g!/^hello/s/old$/new/g
這里用到了全局命令:g,詳見下圖:
比如想把開頭不是#的行的開頭添加上為#,可以這樣寫 :g/^[^#]/s/^/#/
分別轉(zhuǎn)載自:
http://apps.hi.baidu.com/share/detail/30695667
參加討論!
我有3個(gè)文件要同時(shí)編輯:文件是A.C,B.C和C.BAS,vi命令如何實(shí)現(xiàn),vi中如何在這3個(gè)文件中進(jìn)行切換?
vim可以在多分割窗口(multi-split-screen )環(huán)境下編輯多個(gè)文件。想了解有關(guān)詳情可輸入:help usr_08.txt。
要分割屏幕顯示多個(gè)不同文件,在vi命令提示符后輸入:
:split another-file
:vsplit another-file
不知道你在安裝系統(tǒng)的時(shí)候是否裝screen了?我裝了,如果裝了,直接打screen,然后Ctrl a + c 為創(chuàng)建新窗口,Ctrl a + p為在打開的]窗口中切換!可以開很多個(gè)!足夠用!
1. Use vi to open the three file directly
for example
vi a b c
2.Then vi will open the file by the order you enter in the command line.
But current is a.
If you want to change to b, you must first save a, then press "2"
,then press "Ctl+Shift+^", for c, you must first save b, then press "3", then press "Ctrl+Shift+^".
vi a b c
:n跳至下一個(gè)文件,:e#回到剛才編輯的文件。
比如當(dāng)前編輯文件為a,:n跳至b,再:n跳至c,:e#回到b,想回到a的話用:ea
我覺得用split 開窗口的好處,可以直接用yy在兩個(gè)窗口之間復(fù)制
兩個(gè)窗口可以同時(shí)是一個(gè)文件
其實(shí)可以在一個(gè)窗口下,打開3個(gè)文件的。
先 打開一個(gè),vi 文件名
然后在vi的命令輸入狀態(tài)下輸入
:sp 另外一個(gè)文件的路徑及文件名
如此就可以在一個(gè)窗口打開3個(gè)文件了。
可以使用 ctrl + 兩次按 w
在3個(gè)文件中切換
輔道
我們可以用ex命令來實(shí)現(xiàn)在多個(gè)文件之間的切換,而不需要退出vi,這可以為我們節(jié)省很多時(shí)間,并且因?yàn)闆]有退出vi,我們可以使用buffer來在不同文件之間實(shí)現(xiàn)拷貝和粘帖。
1)? 在啟動(dòng)vi的時(shí)候指定多個(gè)文件,這就相當(dāng)在vi啟動(dòng)時(shí)我們就把多個(gè)文件加入到了vi的候選列表中,在編輯過程中我們可以用命令 :n來切換到下一個(gè)文件,我們可以用命令 :args來查看當(dāng)前又有多少個(gè)文件在編輯的候選列表中;但是我們發(fā)現(xiàn):n命令只能切換到下一個(gè)文件,那么怎么切換到前一個(gè)文件呢,我們可以用:rewind命令(可以簡寫為:rew)
很快我們發(fā)現(xiàn)上面的方式不夠靈活,例如我們不能任意指定想要編輯的文件,而且我們可能需要在編輯的任何時(shí)候加載新的文件,前面的方法滿足不了,怎么辦呢,幸運(yùn)的是vi足夠強(qiáng)大,已經(jīng)為我們想到了這些。
2)? 我們并不是在每次啟動(dòng)vi的時(shí)候就知道總共要編輯多少個(gè)文件,可能在編輯的過程中我們需要實(shí)時(shí)加載需要編輯的文件,這時(shí)候怎么辦呢,我們可以用:e命令在編輯的任何時(shí)候加載并切換到新文件,例如我們啟動(dòng)vi的時(shí)候編輯main.cc,在編輯過程中發(fā)現(xiàn)要修改一個(gè)類定義,這樣我們就可以使用命令:e singlton.h來加載類定義所在的頭文件(當(dāng)然在加載新文件之前需要保存原來修改的文件main.cc)。vi提供了一個(gè)符號(hào)#來記錄前一個(gè)編輯的文件,這個(gè)符號(hào)可以很方便的在兩個(gè)文件之前切換,我們只需要輸入:e #, 哈哈,很方便吧;不過vi還有一個(gè)更方便的命令可以在兩個(gè)文件之間來回切換 -- Ctrl+^(數(shù)字鍵6),這個(gè)命令比前面的:e #更加方便哈。
3) 之前一直不知道怎么用vi從一個(gè)文件拷貝內(nèi)容到另外一個(gè)文件,都是直接用鼠標(biāo)右鍵來搞定的,但是這樣不是很方便,而且在終端下好像不行(黑屏幕那個(gè)終端),今天終于找到方法了,呵呵。
這里有兩個(gè)方法可以實(shí)現(xiàn),一個(gè)是用vi的命令,首先把需要復(fù)制的文本復(fù)制到一個(gè)named buffer中 -- "f4yy(表示復(fù)制4行文本到名字為f的buffer中,一定前面要有一個(gè)"啊,要不然后面的f就不會(huì)被解釋為buffer的名字了),然后切換到目標(biāo)文件,最后用命令"fp(將buffer f中的內(nèi)容拷貝到目的文件中),哈哈,大功告成,我們需要復(fù)制的文本從源文件已經(jīng)拷貝到目的文件了。還有一種方法是使用ex命令(就是命令前面帶:的,例如:e, :w), 首先也是在源文件中將需要復(fù)制的內(nèi)容拷貝到一個(gè)named buffer中 -- :10,12ya a(將10到12行這三行的內(nèi)容拷貝到一個(gè)名字為a的buffer中),然后切換到目標(biāo)文件,最后在目標(biāo)文件中將buffer a中的內(nèi)容拷貝到目的地 -- :pu a(將buffer a中的內(nèi)容拷貝到當(dāng)前位置)。
轉(zhuǎn)載自:http://www.cnblogs.com/jackk294/archive/2009/08/09/1542274.html
昨天有人提出此類問題,我特地加以編輯一下,請(qǐng)大家共享,可能寫的不好!
大家在vi編輯中,常常遇到想把文件A里面的一行或多行,復(fù)制到B文件里面去
(可能很多人不知道怎么辦),該怎么做了?
下面是幾中方法:
1.如果你有多臺(tái)機(jī)器,而且是聯(lián)網(wǎng)的,你可以用netterm虛擬終端,telnet登陸主機(jī)對(duì)A文件進(jìn)行修改、復(fù)制,然后打開B文件粘貼過去!
2.如果是單機(jī),當(dāng)然要用unix自帶的編輯功能呢
先簡單介紹一些vi編輯里的命令:
(A).yw?將當(dāng)前字存入無名緩沖區(qū),前面可加"x,表示存入名字為x的有名
緩沖區(qū)(x為a-z),也可加數(shù)字表示存入的字?jǐn)?shù),以后可用P或p命
令取出
yy?將當(dāng)前行存入無名緩沖區(qū),用法參看yw
(B).命令如下:a-Z?是緩沖區(qū),也可移出數(shù)字1-Array指定的刪除緩沖區(qū)
利用命名緩沖區(qū)可很好地保存若干文本段,便于以后存取、移動(dòng)或者重排。這些緩沖區(qū)用a到z字母命名!為了訪問這些緩沖區(qū)中的一個(gè),要使用雙引號(hào)
例如:要把一行插入a緩沖區(qū),可鍵入:
"ayy
為了把這個(gè)文本放回該文件中,鍵入"ap
(c).m做標(biāo)志命令:
m?字母?用字母標(biāo)記當(dāng)前行,以后可用?’字母使光標(biāo)移動(dòng)到當(dāng)前行,
(參看’命令)
列子:1。將a文件中的4行到b文件中
命令如下:"ay4+
:ex?b?(轉(zhuǎn)到b文件中)
然后"ap
2.?將a中多行復(fù)制到b文件中
先在開始處做標(biāo)志mk
然后在末尾用"ay’k?(光標(biāo)自動(dòng)回到開始處,此時(shí)已經(jīng)把你的內(nèi)容放到緩沖區(qū)了)
其中a表示緩沖區(qū)a
然后用ex轉(zhuǎn)義到你的文件B中,然后用"ap命令粘貼就行
3。如果你文件中有多次要復(fù)制粘貼的話,看下面:
a表示緩沖區(qū)a?,你還繼續(xù)可以使用緩沖b嗎
緩沖區(qū)有a-z和1-Array這么多
緩沖區(qū)就好象windows下的煎切版一樣,它有好多個(gè),你可以把你想要的復(fù)制進(jìn)去,然后粘貼,只不過你用"ay時(shí)候多換a就是了,如你要復(fù)制462行用"ay?,復(fù)制536行用"by
另外還有 cw刪除一個(gè)單詞。并進(jìn)入insert模式
shift + * 定位到函數(shù)的定義處
ctrl+o 返回調(diào)過來之前的地方。
f12進(jìn)入ctags模式
總結(jié)
以上是生活随笔為你收集整理的使用vim的重不重要_VIM高级操作,经常用vim的应该多学习。多开发效率很有大帮助!...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML转义字符大全<转>
- 下一篇: css 外弧_css 伪类实现弧形