vi命令使用
vi編輯器有3種模式:命令模式、輸入模式、末行模式。掌握這三種模式十分重要:
命令模式:vi啟動后默認進入的是命令模式,從這個模式使用命令可以切換到另外兩種模式,同時無論在任何模式下只要按一下[Esc]鍵都可以返回命令模式。在命令模式中輸入字幕“i”就可以進入vi的輸入模式編輯文件。
輸入模式:在這個模式中我們可以編輯、修改、輸入等編輯工作,在編輯器最后一行顯示一個“--INSERT--”標志著vi進入了輸入模式。當我們完成修改輸入等操作的時候我們需要保存文件,這時我們需要先返回命令模式,在進入末行模式保存。
末行模式:在命令模式輸入“:”即可進入該模式,在末行模式中有好多好用的命令。
4.編輯操作
進入輸入模式命令
i插入命令 a附加命令 o打開命令 c修改命令
r取代命令 s替換命令 Esc退出命令
輸入模式的操作
Home光標到行首
End 光標到行尾
Page Up和Page Down上下翻頁
Delect刪除光標位置的字符
刪除操作(命令模式使用)
x刪除光標處的單個字符
dd刪除光標所在行
dw刪除當前字符到單詞尾包括空格的所有字符
#x例如3x刪除光標處向右的三個字符
#dd例如3dd從當前行開始向下刪除三行文本
撤銷操作
u命令取消最近一次的操作,可以使用多次來恢復原有的操作
U取消所有操作
Ctrl+R可以恢復對使用u命令的操作
復制操作
yy命令復制當前整行的內容到vi緩沖區
yw復制當前光標所在位置到單詞尾字符的內容到vi緩存區,相當于復制一個單詞
y$復制光標所在位置到行尾內容到緩存區
y^復制光標所在位置到行首內容到緩存區
#yy例如:5yy就是復制5行
#yw例如:2yw就是復制兩個單詞
如果要復制第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y復制第三行到第五行內容到緩存區。
5.查找和替換
vi的查找和替換功能主要在末行模式完成:
至上而下的查找
/ 要查找的字符竄,其中/代表從光標所在位置起開始查找,例如:/ work
至下而上的查找
?要查找的字符竄 例如:/ work
替換
:s/old/new用new替換行中首次出現的old
: s/old/new/g 用new替換行中所有出現的old
:#,# s/old/new/g用new替換從第#行到第#行中出現的old
:% s/old/new/g用new替換整篇中出現的old
如果替換的范圍較大時,在所有的命令尾加一個c命令,強制每個替換需要用戶進行確認,例如:s/old/new/c 或s/old/new/gc
6恢復文件
vi在編輯某一個文件時,會生成一個臨時文件,這個文件以 . 開頭并以 .swp結尾。正常退出該文件自動刪除,如果意外退出例如忽然斷電,該文件不會刪除,我們在下次編輯時可以選擇一下命令處理:
O只讀打開,不改變文件內容
E繼續編輯文件,不恢復.swp文件保存的內容
R將恢復上次編輯以后未保存文件內容
Q退出vi
D刪除.swp文件
或者使用vi -r 文件名來恢復未保存的內容
在GUI下:
(1)可按i進入插入模式
(2)使用鼠標拖動反選要粘貼的內容,按鼠標左鍵復制選定塊到緩沖區
(3)然后將光標移到要粘貼處,按鼠標中鍵(兩鍵鼠標可同時按左右鍵),粘貼緩沖區內容。
在純文本終端下:
(1)選定文本塊,使用v進入可視模式;移動光標鍵選定內容
(2)復制選定塊到緩沖區,用y;復制整行,用yy
(3)剪切選定塊到緩沖區,用d;剪切整行用dd
(4)粘貼緩沖區中的內容,用p
在同一編輯窗打開第二個文件,用:sp [filename]
在多個編輯文件之間切換,用Ctrl+w
命令前面加數字表示重復次數,加字母表示使用的緩沖區名稱。
獲取幫助,用:help [內容或命令]
?
vi 中設置tab為4和自動轉換成空格
2009-10-30 15:33
:set tabstop=4??????? " Force tabs to be displayed/expanded to 4 spaces (instead of default 8). |
VI中復制與粘貼基本方法
默認分類???2009-07-30 11:16???閱讀407???評論0??
字號:?大??中??小
??????? 我們先做這樣一個小小的嘗試,請打開瀏覽器,從網頁上隨便復制一段文字,然后打開VIM,用VIM,用"p"粘貼一下,你會發現,什么都沒有站貼過來,原因是這樣的,不同于Windows,VIM具有多個剪貼板,并且和系統剪貼板是完全獨立的,所以當你復制瀏覽器里的文字的時候,這段文字保存在了系統剪貼板,當你是用"p"來粘貼的時候,實際上,他讀取的是VIM的剪切板。
?????? 那怎么方便的將系統剪貼板的內容復制過來呢?簡單!用另外一個快捷方式"Shift+Insert"就可以了,如果你在使用Gvim的話,直接用鼠標中鍵也可起到相同的作用。是不是很簡單?
?????? OK!我們開始進階!
?????? 我們前面說過,VIM具有多個剪切板,目的是為了用戶在做較復雜的字符處理的時候,可以更方便的復制粘貼。請現在使用一下":reg"命令(先按 ESC鍵,退出編輯模式,然后按:進入命令模式,然后輸入reg回車),看到了?屏幕上的輸出結果!是不是特別眼熟,對了!就是您之前復制過的所有內容!也許這時候您還發現,VIM的剪切板原來有這么多個,按照數字還有符號一個一個的區分開的,這里舉一個編號的例子--""5,看到了嗎?是以"開頭的。還有!有沒有看到編號為"+的剪切板?里面的內容是不是剛才你在瀏覽器里復制的那段文字啊?呵呵……沒錯了!系統剪切板的編號就是"+。
?????? 好了,這時候您已經知道了如何查看之前的所有剪貼板內容,我們現在就試著把某一個特定剪切板的內容復制進我們正在編輯的文件中。我們知道,vi的粘貼指令是"p",但是如果要粘貼一個特定的剪貼板,只是用p就不行了,那怎么辦?簡單!把剪貼板的編號帶上不就可以了?現在先按ESC,退出編輯模式,然后依次按"+p這三個字符(怎么按?不會吧!"和+怎么按?用Shift啊!),好了!你看看,之前在瀏覽器中復制的這段文本,是不是被粘貼進文檔中了? 如何將系統剪切板里的內容復制進VIM當中,您已經清楚了。那如何將ViM中復制的字符粘貼到其他地方呢?很簡單,我們只需要把要復制的文字,復制進 "+剪切板不就可以了?("+剪切板是系統剪切板,忘記了?)在VIM中,復制的指令是y(在非編輯模式下按y就可以了),那要將文本復制進指定的剪切板,只需要加上剪切板的編號就可以了。舉個例子,我們希望把VIM中的一段文本復制下來,然后粘貼到瀏覽器的地址欄中:第一步,現把需要復制的文字選中(非編輯模式下),然后在鍵盤上依次按"+y這三個字符,OK!已經復制下來了,現在用:reg命令看看,是不是在"+剪切板中了? 好了,目前為止,您已經大致掌握了VIM剪切板的基本用法,當然,VIM剪切板的功能還很強大,本文也不能盡數道來,就請您繼續發掘吧。
vi中多個文件相互之間的復制、粘貼功能簡介!
發布: 2007-6-08 22:43 | 作者: seanhe | 來源: | 查看: 25次 | 進入軟件測試論壇討論
昨天有人提出此類問題,我特地加以編輯一下,請大家共享,可能寫的不好!?
大家在vi編輯中,常常遇到想把文件A里面的一行或多行,復制到B文件里面去?
(可能很多人不知道怎么辦),該怎么做了??
下面是幾中方法:?
1.如果你有多臺機器,而且是聯網的,你可以.netterm虛擬終端,telnet登陸主機對A文件進行修改、復制,然后打開B文件粘貼過去!?
2.如果是單機,當然要用unix自帶的編輯功能呢?
??先簡單介紹一些vi編輯里的命令:?
??(A).yw?將當前字存入無名緩沖區,前面可加"x,表示存入名字為x的有名??
緩沖區(x為a-z),也可加數字表示存入的字數,以后可用P或p命??
令取出??
yy?將當前行存入無名緩沖區,用法參看yw??
???(B).命令如下:a-Z?是緩沖區,也可移出數字1-9指定的刪除緩沖區??
利用命名緩沖區可很好地保存若干文本段,便于以后存取、移動或者重排。這些緩沖區用a到z字母命名!為了訪問這些緩沖區中的一個,要使用雙引號??
例如:要把一行插入a緩沖區,可鍵入:??
"ayy??
為了把這個文本放回該文件中,鍵入"ap??
??(c).m做標志命令:?
??m?字母?用字母標記當前行,以后可用?'字母使光標移動到當前行,??
(參看'命令)?
列子:1。將a文件中的4行到b文件中?
??????命令如下:"ay4+??
??????????????????:ex?b?(轉到b文件中)?
???????????????????然后"ap?
????????2.?將a中多行復制到b文件中?
先在開始處做標志mk??
然后在末尾用"ay'k?(光標自動回到開始處,此時已經把你的內容放到緩沖區了)?
其中a表示緩沖區a??
然后用ex轉義到你的文件B中,然后用"ap命令粘貼就行?
3。如果你文件中有多次要復制粘貼的話,看下面:?
a表示緩沖區a?,你還繼續可以使用緩沖b嗎??
緩沖區有a-z和1-9這么多??
緩沖區就好象windows下的煎切版一樣,它有好多個,你可以把你想要的復制進去,然后粘貼,只不過你用"ay時候多換a就是了,如你要復制462行用"ay?,復制536行用"by?
? ??
轉載于:https://blog.51cto.com/10897969/1738260
總結
- 上一篇: 深入浅出Node.js (2) - 模块
- 下一篇: AngularJS之Directive(