vim經常使用命令

進入vi的命令 
vi filename :打開或新建文件,並將光標置於第一行首 
vi +n filename :打開文件,並將光標置於第n行首 
vi + filename :打開文件,並將光標置於最後一行首 
vi +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處 
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename 
vi filename....filename :打開多個文件,依次進行編輯 

移動光標類命令
h :光標左移一個字符 
l :光標右移一個字符 
space:光標右移一個字符 
Backspace:光標左移一個字符 
k或Ctrl+p:光標上移一行 
j或Ctrl+n :光標下移一行 
Enter :光標下移一行 
w或W :光標右移一個字至字首 
b或B :光標左移一個字至字首 
e或E :光標右移一個字至字尾 
) :光標移至句尾 
( :光標移至句首 
}:光標移至段落開頭 
{:光標移至段落結尾 
nG:光標移至第n行首 
n+:光標下移n行 
n-:光標上移n行 
n$:光標移至第n行尾 
H :光標移至屏幕頂行 
M :光標移至屏幕中間行 
L :光標移至屏幕最後行 
0:(注意是數字零)光標移至當前行首 
$:光標移至當前行尾 

屏幕翻滾類命令 
Ctrl+u:向文件首翻半屏 
Ctrl+d:向文件尾翻半屏 
Ctrl+f:向文件尾翻一屏 
Ctrl+b;向文件首翻一屏 
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。 

插入文本類命令 
i :在光標前 
I :在當前行首 
a:光標後 
A:在當前行尾 
o:在當前行之下新開一行 
O:在當前行之上新開一行 
r:替換當前字符 
R:替換當前字符及其後的字符,直至按ESC鍵 
s:從當前光標位置處開始,以輸入的文本替代指定數目的字符 
S:刪除指定數目的行,並以所輸入文本代替之 
ncw或nCW:修改指定數目的字 
nCC:修改指定數目的行 

刪除命令 
ndw或ndW:刪除光標處開始及其後的n-1個字 
do:刪至行首 
d$:刪至行尾 
ndd:刪除當前行及其後n-1行 
x或X:刪除一個字符,x刪除光標後的,而X刪除光標前的 
Ctrl+u:刪除輸入方式下所輸入的文本 

搜索及替換命令 
/pattern:從光標開始處向文件尾搜索pattern 
?pattern:從光標開始處向文件首搜索pattern 
n:在同一方向重複上一次搜索命令 
N:在反方向上重複上一次搜索命令 
:s/p1/p2/g:將當前行中全部p1均用p2替代 
:n1,n2s/p1/p2/g:將第n1至n2行中全部p1均用p2替代 
:g/p1/s//p2/g:將文件中全部p1均用p2替換 

選項設置 
all:列出全部選項設置狀況 
term:設置終端類型 
ignorance:在搜索中忽略大小寫 
list:顯示製表位(Ctrl+I)和行尾標誌($) 
number:顯示行號 
report:顯示由面向行的命令修改過的數目 
terse:顯示簡短的警告信息 
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息 
nomagic:容許在搜索模式中,使用前面不帶「\」的特殊字符 
nowrapscan:禁止vi在搜索到達文件兩端時,又從另外一端開始 
mesg:容許vi顯示其餘用戶用write寫到本身終端上的信息 

最後行方式命令 
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下 
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下 
:n1,n2 d :將n1行到n2行之間的內容刪除 
:w :保存當前文件 
:e filename:打開文件filename進行編輯 
:x:保存當前文件並退出 
:q:退出vi 
:q!:不保存文件並退出vi 
:!command:執行shell命令command 
:n1,n2 w!command:將文件中n1行至n2行的內容做爲command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容做爲command的輸入 
:r!command:將命令command的輸出結果放到當前行 

寄存器操做 
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?爲一個字母,n爲一個數字 
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?爲一個字母,n爲一個數字 
"?nyl:將當前行及其下n個字符保存到寄存器?中,其中?爲一個字母,n爲一個數字 
"?p:取出寄存器?中的內容並將其放到光標位置處。這裏?能夠是一個字母,也能夠是一個數字 
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。

VI的使用
--------------------------------------------------------------------------------

1、插入文本 
┌──┬────────────┐ 
│命令│描述          │ 
├──┼────────────┤ 
│i  │在當前字符前插入文本  │ 
├──┼────────────┤ 
│I  │在行首插入文本      │ 
├──┼────────────┤ 
│a  │在當前字符後添加文本  │ 
├──┼────────────┤ 
│A  │在行末添加文本     │ 
├──┼────────────┤ 
│o  │在當前行後面插入一空行 │ 
├──┼────────────┤ 
│O  │在當前行前面插入一空行 │ 
├──┼────────────┤ 
│R  │以改寫方式輸入文本   │ 
└──┴────────────┘ 
2、移動光標 
┌─────┬───────────┐ 
│命令   │描述         │ 
├─────┼───────────┤ 
│j或下箭頭 │向下移動一行     │ 
├─────┼───────────┤ 
│k或上箭頭 │向上移動一行     │ 
├─────┼───────────┤ 
│h或左箭頭 │左移一個字符     │ 
├─────┼───────────┤ 
│l或右箭頭 │右移一個字符     │ 
├─────┼───────────┤ 
│w     │右移一個詞      │ 
├─────┼───────────┤ 
│W     │右移一個以空格分隔的詞│ 
├─────┼───────────┤ 
│b     │左移一個詞      │ 
├─────┼───────────┤ 
│B     │左移一個以空格分隔的詞│ 
├─────┼───────────┤ 
│0     │移到行首       │ 
│Ctrl-F  │向前翻頁       │ 
├─────┼───────────┤ 
│Ctrl-B  │向後翻頁       │ 
├─────┼───────────┤ 
│nG    │到第n行        │ 
├─────┼───────────┤ 
│G     │到最後一行      │ 
└─────┴───────────┘ 
3、替換文本 
┌─────┬──────┐ 
│命令   │描述    │ 
├─────┼──────┤ 
│$     │到行尾   │ 
├─────┼──────┤ 
│(     │到句子的開頭│ 
├─────┼──────┤ 
│)     │到句子的末尾│ 
├─────┼──────┤ 
│{     │到段落的開頭│ 
├─────┼──────┤ 
│}     │到段落的末尾│ 
└─────┴──────┘ 

4、刪除文本 
┌───┬───────────┐ 
│命令 │描述          │ 
├───┼───────────┤ 
│r   │替換一個字符      │ 
├───┼───────────┤ 
│c   │修改文本直到按下Esc健 │ 
├───┼───────────┤ 
│cw  │修改下一個詞      │ 
├───┼───────────┤ 
│cnw  │修改接下來的n個詞   │ 
└───┴───────────┘ 
5、文本編輯 
┌──┬──────────────────────┐ 
│命寺│描述                    │ 
├──┼──────────────────────┤ 
│yy │將一行文本移到缺省緩衝區中          │ 
├──┼──────────────────────┤ 
│yn │將下一個詞移到缺省緩衝區中          │ 
├──┼──────────────────────┤ 
│ynw │將後面的n個詞移到缺省緩衝區中        │ 
├──┼──────────────────────┤ 
│p  │若是缺省緩衝區中包含一行文本,則在當前   │ 
│  │行後面插入一個空行井將缺省緩衝區中的聲   │ 
│  │容粘貼到這一行中;若是缺省緩衝區中包含   │ 
│  │多個詞,把這些詞粘貼到光標的右邊.     │ 
├──┼──────────────────────┤ 
│P  │若是缺省緩衝區中包含一行文本,則正當前    │ 
│   │行前面插入一個空行井將缺省緩衝區中的內    │ 
│  │容粘貼到這一行中;若是缺省緩衝區中包含    │ 
│   │多個詞,把這些詞粘貼到光標的左邊    

  │ 
└──┴──────────────────────┘ 
6、保存退出 
┌───────────┬───────────────┐ 
│命令         │描述             │ 
├───────────┼───────────────┤ 
│zz          │保存並退出          │ 
├───────────┼───────────────┤ 
│:w filename      │寫入文件            │ 
├───────────┼───────────────┤ 
│:W          │寫入文件           │ 
├───────────┼───────────────┤ 
│:x          │保存(若是當前文件修改過)並退出│ 
├───────────┼───────────────┤ 
│:q!          │不保存文件,直接退出      │ 
├───────────┼───────────────┤ 
│:q          │退出vi            │ 

VI經常使用技巧

VI命令能夠說是Unix/Linux世界裏最經常使用的編輯文件的命令了,可是由於它的命令集衆多,不少人都不習慣使用它,其實您只須要掌握基本命令,而後加以靈活運用,就會發現它的優點,並會逐漸喜歡使用這種方法。本文旨在介紹VI的一些最經常使用命令和高級應用技巧。 

1、基本命令介紹 

---- 1.光標命令 

k、j、h、l——上、下、左、右光標移動命令。雖然您能夠在Linux中使用鍵盤右邊的4個光標鍵,可是記住這4個命令仍是很是有用的。這4個鍵正是右手在鍵盤上放置的基本位置。 
nG——跳轉命令。n爲行數,該命令當即使光標跳到指定行。 
Ctrl+G——光標所在位置的行數和列數報告。 
w、b——使光標向前或向後跳過一個單詞。 
---- 2.編輯命令 
i、a、r——在光標的前、後以及所在處插入字符命令(i=insert、a=append、r=replace)。 
cw、dw——改變(置換)/刪除光標所在處的單詞的命令 (c=change、d=delete)。 
x、d$、dd——刪除一個字符、刪除光標所在處到行尾的全部字符以及刪除整行的命令。 
---- 3.查找命令 
---- /string、?string——從光標所在處向後或向前查找相應的字符串的命令。 
---- 4.拷貝複製命令 
---- yy、p——拷貝一行到剪貼板或取出剪貼板中內容的命令。 

2、常見問題及應用技巧 

---- 1.在一個新文件中讀/etc/passwd中的內容,取出用戶名部分。 
---- vi file 
---- :r /etc/passwd 在打開的文件file中光標所在處讀入/etc/passwd 
---- :%s/:.*//g 刪除/etc/passwd中用戶名後面的從冒號開始直到行尾的全部部分。 
---- 您也能夠在指定的行號後讀入文件內容,例如使用命令「:3r /etc/passwd」重新文件的第3行開始讀入 /etc/passwd的全部內容。 
---- 咱們還可使用如下方法刪掉文件中全部的空行及以#開始的註釋行。 
---- #cat squid.conf.default | grep -v ^$ | grep -v ^# 

---- 2.在打開一個文件編輯後才知道登陸的用戶對該文件沒有寫的權限,不能存盤,須要將所作修改存入臨時文件。 
---- vi file 
---- :w /tmp/1 保存所作的全部修改,也能夠將其中的某一部分修改保存到臨時文件,例如僅僅把第20~59行之間的內容存盤成文件/tmp/1,咱們能夠鍵入以下命令。 
---- vi file 
---- :20,59w /tmp/1 

---- 3.用VI編輯一個文件,但須要刪除大段的內容。 
---- 首先利用編輯命令「vi file」打開文件,而後將光標移到須要刪除的行處按Ctrl+G顯示行號,再到結尾處再按Ctrl+G,顯示文件結尾的行號。 
---- :23,1045d 假定2次獲得的行號爲23和1045,則把這期間的內容全刪除,也能夠在要刪除的開始行和結束行中用ma、mb命令標記,而後利用「:a,bd」命令刪除。 

---- 4.在整個文件的各行或某幾行的行首或行尾加一些字符串。 
---- vi file 
---- :3,$s/^/some string / 在文件的第一行至最後一行的行首插入「some string」。 
---- :%s/$/some string/g 在整個文件每一行的行尾添加「some string」。 
---- :%s/string1/string2/g 在整個文件中替換「string1」成「string2」。 
---- :3,7s/string1/string2/ 僅替換文件中的第3行到第7行中的「string1」成「string2」。 
---- 注意: 其中s爲substitute,%表示全部行,g表示global。 

---- 5.同時編輯2個文件,拷貝一個文件中的文本並粘貼到另外一個文件中。 
---- vi file1 file2 
---- yy 在文件1的光標處拷貝所在行 
---- :n 切換到文件2 (n=next) 
---- p 在文件2的光標所在處粘貼所拷貝的行 
---- :n 切換回文件1 

---- 6.替換文件中的路徑。 
---- 使用命令「:%s#/usr/bin#/bin#g」能夠把文件中全部路徑/usr/bin換成/bin。也可使用命令「:%s//usr/bin//bin/g」實現,其中「」是轉義字符,代表其後的「/」字符是具備實際意義的字符,不是分隔符。java

 

 

vim 選擇文本,刪除,複製,粘貼  
shell

 

文本的選擇,對於編輯器來講,是很基本的東西,也常常被用到,總結以下:

v    從光標當前位置開始,光標所通過的地方會被選中,再按一下v結束。 

V    從光標當前行開始,光標通過的行都會被選中,再按一下V結束。 

Ctrl + v   從光標當前位置開始,選中光標起點和終點所構成的矩形區域,再按一下Ctrl + v結束。 

ggVG 選中所有的文本, 其中gg爲跳到行首,V選中整行,G末尾vim


選中後就能夠用編輯命令對其進行編輯,如 
d   刪除 

y   複製 (默認是複製到"寄存器) 

p  粘貼 (默認從"寄存器取出內容粘貼) app

 

"+y    複製到系統剪貼板(也就是vim的+寄存器) 

"+p   從系統剪貼板粘貼 編輯器

=============================================================ui

vim命令總結加密

 

1.刪除字符
  要刪除一個字符,只須要將光標移到該字符上按下"x"。

2.刪除一行
  刪除一整行內容使用"dd"命令。刪除後下面的行會移上來填補空缺。

3.刪除換行符
  在Vim中你能夠把兩行合併爲一行,也就是說兩行之間的換行符被刪除了:命令是"J"。

4.撤銷
  若是你誤刪了過多的內容。顯然你能夠再輸入一遍,可是命令"u" 更簡便,它能夠撤消上一次的操做。

5.重作
  若是你撤消了屢次,你還能夠用CTRL-R(重作)來反轉撤消的動做。換句話說,它是對撤消的撤消。撤消命令還有另外一種形式,"U"命令,它一次撤消對一行的所有操做。第二次使用該命令則會撤消前一個"U"的操做。用"u"和CTRL-R你能夠找回任何一個操做狀態。

6.追加
  "i"命令能夠在當前光標以前插入文本。
  "a"命令能夠在當前光標以後插入文本。
  "o"命令能夠在當前行的下面另起一行,並使當前模式轉爲Insert模式。
  "O"命令(注意是大寫的字母O)將在當前行的上面另起一行。

7.使用命令計數
  假設你要向上移動9行。這能夠用"kkkkkkkkk"或"9k"來完成。事實上,不少命令均可以接受一個數字做爲重複執行同一命令的次數。好比剛纔的例子,要在行尾追加三個感嘆號,當時用的命令是"a!!!"。另外一個辦法是用"3a!"命令。3說明該命令將被重複執行3次。一樣,刪除3個字符能夠用"3x"。指定的數字要緊挨在它所要修飾的命令前面。

8.退出
  要退出Vim,用命令"ZZ"。該命令保存當前文件並退出Vim。

9.放棄編輯
  丟棄全部的修改並退出,用命令":q!"。用":e!"命令放棄全部修改並從新載入該文件的原始內容。

10.以Word爲單位的移動
  使用"w"命令能夠將光標向前移動一個word的首字符上;好比"3w"將光標向前移動3個words。"b"命令則將光標向後移動到前一個word的首字符上。
  "e"命令會將光標移動到下一個word的最後一個字符。命令"ge",它將光標移動到前一個word的最後一個字符上。、

11.移動到行首或行尾
  "$"命令將光標移動到當前行行尾。若是你的鍵盤上有一個鍵,它的做用也同樣。"^"命令將光標移動到當前行的第一個非空白字符上。"0"命令則老是把光標移動到當前行的第一個字符上。鍵也是如此。"$"命令還可接受一個計數,如"1$"會將光標移動到當前行行尾,"2$"則會移動到下一行的行尾,如此類推。"0"命令卻不能接受相似這樣的計數,命令"^"前加上一個計數也沒有任何效果。

12.移動到指定字符上
  命令"fx"在當前行上查找下一個字符x(向右方向),能夠帶一個命令計數"F"命令向左方向搜索。"tx"命令形同"fx"命令,只不過它不是把光標停留在被搜索字符上,而是在它以前的一個字符上。提示:"t"意爲"To"。該命令的反方向版是"Tx"。這4個命令均可以用";"來重複。以","也是重複一樣的命令,可是方向與原命令的方向相反。

13.以匹配一個括號爲目的移動
  用命令"%"跳轉到與當前光標下的括號相匹配的那一個括號上去。若是當前光標在"("上,它就向前跳轉到與它匹配的")"上,若是當前在")"上,它就向後自動跳轉到匹配的"("上去.

14.移動到指定行
  用"G"命令指定一個命令計數,這個命令就會把光標定位到由命令計數指定的行上。好比"33G"就會把光標置於第33行上。沒有指定命令計數做爲參數的話, "G"會把光標定位到最後一行上。"gg"命令是跳轉到第一行的快捷的方法。
  另外一個移動到某行的方法是在命令"%"以前指定一個命令計數好比"50%"將會把光標定位在文件的中間. "90%"跳到接近文件尾的地方。
  命令"H","M","L",分別將光標跳轉到第一行,中間行,結尾行部分。

15.告訴你當前的位置
  使用CTRL-G命令。"set number"在每行的前面顯示一個行號。相反關閉行號用命令":set nonumber"。":set ruler"在Vim窗口的右下角顯示當前光標位置。

16.滾屏
  CTRL-U顯示文本的窗口向上滾動了半屏。CTRL-D命令將窗口向下移動半屏。一次滾動一行可使用CTRL-E(向上滾動)和CTRL-Y(向下滾動)。要向前滾動一整屏使用命令CTRL-F。另外CTRL-B是它的反向版。"zz"命令會把當前行置爲屏幕正中央,"zt"命令會把當前行置於屏幕頂端,"zb"則把當前行置於屏幕底端.

17.簡單搜索
  "/string"命令可用於搜索一個字符串。要查找上次查找的字符串的下一個位置,使用"n"命令。若是你知道你要找的確切位置是目標字符串的第幾回出現,還能夠在"n"以前放置一個命令計數。"3n"會去查找目標字符串的第3次出現。
  "?"命令與"/"的工做相同,只是搜索方向相反."N"命令會重複前一次查找,可是與最初用"/"或"?"指定的搜索方向相反。
  若是查找內容忽略大小寫,則用命令"set ignorecase", 返回精確匹配用命令"set noignorecase" 。

18.在文本中查找下一個word
  把光標定位於這個word上而後按下"*"鍵。Vim將會取當前光標所在的word並將它做用目標字符串進行搜索。"#"命令是"*"的反向版。還能夠在這兩個命令前加一個命令計數:"3*"查找當前光標下的word的第三次出現。

19.查找整個word
  若是你用"/the"來查找Vim也會匹配到"there"。要查找做爲獨立單詞的"the"使用以下命令:"/the\>"。"\>"是一個特殊的記法,它只匹配一個word的結束處。近似地,"\<"匹配到一個word的開始處。這樣查找做爲一個word的"the"就能夠用:"/\"。

20.高亮顯示搜索結果
  開啓這一功能用":set hlsearch",關閉這一功能:":set nohlsearch"。若是隻是想去掉當前的高亮顯示,可使用下面的命令:":nohlsearch"(能夠簡寫爲noh)。

21.匹配一行的開頭與結尾
   ^ 字符匹配一行的開頭。$字符匹配一行的末尾。
   因此"/was$"只匹配位於一行末尾的單詞was,因此"/^was"只匹配位於一行開始的單詞was。

22.匹配任何的單字符
  .這個字符能夠匹配到任何字符。好比"c.m"能夠匹配任何前一個字符是c,後一個字符是m的狀況,無論中間的字符是什麼。

23.匹配特殊字符
  放一個反斜槓在特殊字符前面。若是你查找"ter。",用命令"/ter\。"

24.使用標記
  當你用"G"命令從一個地方跳轉到另外一個地方時,Vim會記得你起跳的位置。這個位置在Vim中是一個標記。使用命令" `` "可使你跳回到剛纔的出發點。
  ``命令能夠在兩點之間來回跳轉。CTRL-O命令是跳轉到你更早些時間停置光標的位置(提示:O意爲older). CTRL-I則是跳回到後來停置光標的更新的位置(提示:I在鍵盤上位於O前面)。
    注:使用CTRL-I 與按下鍵同樣。

25.具名標記
   命令"ma"將當前光標下的位置名之爲標記"a"。從a到z一共可使用26個自定義的標記。要跳轉到一個你定義過的標記,使用命令" `marks "marks就是定義的標記的名字。命令" 'a "使你跳轉到a所在行的行首," `a "會精肯定位a所在的位置。命令:":marks"用來查看標記的列表。
  命令delm!刪除全部標記。

26.操做符命令和位移
  "dw"命令能夠刪除一個word,"d4w"命令是刪除4個word,依此類推。相似有"d2e"、"d$"。此類命令有一個固定的模式:操做符命令+位移命令。首先鍵入一個操做符命令。好比"d"是一個刪除操做符。接下來是一個位移命。好比"w"。這樣任何移動光標命令所及之處,都是命令的做用範圍。

27.改變文本
  操做符命令是"c",改變命令。它的行爲與"d"命令相似,不過在命令執行後會進入Insert模式。好比"cw"改變一個word。或者,更準確地說,它刪除一個word並讓你置身於Insert模式。
  "cc"命令能夠改變整行。不過仍保持原來的縮進。
  "c$"改變當前光標到行尾的內容。
  快捷命令:x 表明dl(刪除當前光標下的字符)
            X 表明dh(刪除當前光標左邊的字符)
            D 表明d$(刪除到行尾的內容)
            C 表明c$(修改到行尾的內容)
            s 表明cl(修改一個字符)
            S 表明cc(修改一整行)
  命令"3dw"和"d3w"都是刪除3個word。第一個命令"3dw"能夠看做是刪除一個word的操做執行3次;第二個命令"d3w"是一次刪除3個word。這是其中不明顯的差別。事實上你能夠在兩處都放上命令記數,好比,"3d2w"是刪除兩個word,重複執行3次,總共是6個word。

28.替換單個字符
  "r"命令不是一個操做符命令。它等待你鍵入下一個字符用以替換當前光標下的那個字符。"r"命令前輟以一個命令記數是將多個字符都替換爲即將輸入的那個字符。要把一個字符替換爲一個換行符使用"r"。它會刪除一個字符並插入一個換行符。在此處使用命令記數只會刪除指定個數的字符:"4r"將把4個字符替換爲一個換行符。

29.重複改動
  "."命令會重複上一次作出的改動。"."命令會重複你作出的全部修改,除了"u"命令CTRL-R和以冒號開頭的命令。"."須要在Normal模式下執行,它重複的是命令,而不是被改動的內容,

30.Visual模式
  按"v"能夠進入Visual模式。移動光標以覆蓋你想操縱的文本範圍。同時被選中的文本會以高亮顯示。最後鍵入操做符命令。

31.移動文本
  以"d"或"x"這樣的命令刪除文本時,被刪除的內容仍是被保存了起來。你還能夠用p命令把它取回來。"P"命令是把被去回的內容放在光標以前,"p"則是放在光標以後。對於以"dd"刪除的整行內容,"P"會把它置於當前行的上一行。"p"則是至於當前行的後一行。也能夠對命令"p"和"P"命令使用命令記數。它的效果是一樣的內容被取回指定的次數。這樣一來"dd"以後的"3p"就能夠把被刪除行的3 份副本放到當前位置。
  命令"xp"將光標所在的字符與後一個字符交換。

32.複製文本(VIM編輯器內複製)
  "y"操做符命令會把文本複製到一個寄存器3中。而後能夠用"p"命令把它取回。由於"y"是一個操做符命令,因此你能夠用"yw"來複制一個word. 一樣可使用命令記數。以下例中用"y2w"命令複製兩個word,"yy"命令複製一整行,"Y"也是複製整行的內容,複製當前光標至行尾的命令是"y$"。

33.文本對象
  "diw" 刪除當前光標所在的word(不包括空白字符) "daw" 刪除當前光標所在的word(包括空白字符)

34.快捷命令
  x 刪除當前光標下的字符("dl"的快捷命令)
  X 刪除當前光標以前的字符("dh"的快捷命令)
  D 刪除自當前光標至行尾的內容("d$"的快捷命令)
  dw 刪除自當前光標至下一個word的開頭
  db 刪除自當前光標至前一個word的開始
  diw 刪除當前光標所在的word(不包括空白字符)
  daw 刪除當前光標所在的word(包括空白字符)
  dG 刪除當前行至文件尾的內容
  dgg 刪除當前行至文件頭的內容
  若是你用"c"命令代替"d"這些命令就都變成更改命令。使用"y"就是yank命令,如此類推。

35.編輯另外一個文件
  用命令":edit foo.txt",也可簡寫爲":e foo.txt"。

36.文件列表
  能夠在啓動Vim時就指定要編輯多個文件,用命令"vim one.c two.c three.c"。Vim將在啓動後只顯示第一個文件,完成該文件的編輯後,能夠用令:":next"或":n"要保存工做成果並繼續下一個文件的編輯,命令:":wnext"或":wn"能夠合併這一過程。

37.顯示當前正在編輯的文件
  用命令":args"。

38.移動到另外一個文件
  用命令":previous" ":prev"回到上一個文件,合併保存步驟則是":wprevious" ":wprev"。要移到最後一個文件":last",到第一個":first".不過沒有":wlast"或者":wfirst"這樣的命令。能夠在":next"和":previous"命令前面使用一個命令計數。

39.編輯另外一個文件列表
  不用從新啓動Vim,就能夠從新定義一個文件列表。命令":args five.c six.c seven.h"定義了要編輯的三個文件。

39.自動存盤
  命令":set autowrite","set aw"。自動把內容寫回文件: 若是文件被修改過,在每一個:next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令時進行。
  命令":set autowriteall","set awa"。和 'autowrite' 相似,但也適用於":edit"、":enew"、":quit"、":qall"、":exit"、":xit"、":recover" 和關閉 Vim 窗口。置位本選項也意味着 Vim 的行爲就像打開 'autowrite' 同樣。

40.切換到另外一文件
  要在兩個文件間快速切換,使用CTRL-^。

41.文件標記
  以大寫字母命名的標記。它們是全局標記,它們能夠用在任何文件中。好比,正在編輯"fab1.java",用命令"50%mF"在文件的中間設置一個名爲F的標記。而後在"fab2.java"文件中,用命令"GnB"在最後一行設置名爲B的標記。在能夠用"F"命令跳轉到文件"fab1.java"的半中間。或者編輯另外一個文件,"'B"命令會再把你帶回文件"fab2.java"的最後一行。
  要知道某個標記所表明的位置是什麼,能夠將該標記的名字做爲"marks"命令的參數":marks M"或者連續跟上幾個參數":marks MJK"
  能夠用CTRL-O和CTRL-I能夠跳轉到較早的位置和靠後的某位置。

42.查看文件
  僅是查看文件,不向文件寫入內容,能夠用只讀形式編輯文件。用命令:
vim -R file。若是是想強制性地避免對文件進行修改,能夠用命令:
vim -M file。

43.更改文件名
  將現有文件存成新的文件,用命令":sav(eas) move.c"。若是想改變當前正在編輯的文件名,但不想保存該文件,就能夠用命令:":f(ile) move.c"。

44.分割一個窗口
  打開一個新窗口最簡單的辦法就是使用命令:":split"。CTRL-W 命令能夠切換當前活動窗口。

45.關閉窗口
  用命令:"close".能夠關閉當前窗口。實際上,任何退出文件編輯的命令":quit"和"ZZ"都會關閉窗口,可是用":close"能夠阻止你關閉最後一個Vim,以避免以意外地整個關閉了Vim。

46.關閉除當前窗口外的全部其餘窗口
  用命令:":only",關閉除當前窗口外的全部其它窗口。若是這些窗口中有被修改過的,你會獲得一個錯誤信息,同時那個窗口會被留下來。

47.爲另外一個文件分隔出一個窗口
  命令":split two.c"能夠打開第二個窗口同時在新打開的窗口中開始編輯做爲
參數的文件。若是要打開一個新窗口並開始編輯一個空的緩衝區,使用命令:":new"。

48.垂直分割
  用命令":vsplit或::vsplit two.c"。一樣有一個對應的":vnew"命令,用於垂直分隔窗口並在其中打開一個新的空緩衝區。

49.切換窗口
  CTRL-W h 到左邊的窗口
  CTRL-W j 到下面的窗口
  CTRL-W k 到上面的窗口
  CTRL-W l 到右邊的窗口
  CTRL-W t 到頂部窗口
  CTRL-W b 到底部窗口

50.針對全部窗口操做的命令
  ":qall"放棄全部操做並退出,":wall"保存全部,":wqall"保存全部並退出。

51.爲每個文件打開一個窗口
  使用"-o"選項可讓Vim爲每個文件打開一個窗口:
"vim -o one.txt two.txt three.txt"。

52.使用vimdiff查看不一樣
  "vimdiff main.c~ main.c",另外一種進入diff模式的辦法能夠在Vim運行中操做。編輯文件"main.c",而後打開另外一個分隔窗口顯示其不一樣:
  ":edit main.c"
  ":vertical diffpatch main.c.diff"。
53.頁籤
   命令":tabe(dit) thatfile"在一個窗口中打開"thatfile",該窗口占據着整個的Vim顯示區域。命令":tab split/new"結果是新建了一個擁有一個窗口的頁籤。以用"gt"命令在不一樣的頁籤間切換。
spa

 

本文轉自: http://fableking.iteye.com/blog/11415183d

---------------------------------------------------------------------------------------------------------orm

這是我總結的一些基本用法,可能對初用者會有幫助,獨樂樂不如衆樂樂,是吧!說明:如下黑色爲vi和vim均有的通常功能,而紅色爲Vim(Vi Improved)所特有功能。Vim通常的Unix和Linux下均有安裝。 三種狀態Command: 任何輸入都會做爲編輯命令,而不會出如今屏幕上,任何輸入都引發當即反映Insert:  任何輸入的數據都置於編輯寄存器,按ESC,可跳回command方式Escape:  以「:」或者「/」爲前導的指令,出如今屏幕的最下一行,任何輸入都被當成特別指令。 離開vi:q!    離開vi,並放棄剛在緩衝區內編輯的內容。:wq   將緩衝區內的資料寫入磁盤中,並離開vi。:x    同wq。(注意—— :X 是文件加密,必定要與:x存盤退出相區別) 進入輸入模式a (append)  由遊標以後加入資料。A    由該行之末加入資料。i (insert)   由遊標以前加入資料。I    由該行之首加入資料。o (open)   新增一行於該行之下供輸入資料之用。O    新增一行於該行之上供輸入資料之用。 刪除與修改x    刪除遊標所在該字元。X    刪除遊標所在以前一字元。r    用接於此指令以後的字元取代(replace)遊標所在字元。如:ra將遊標所在字元以 a 取代之。R    進入取代狀態,直到《ESC》爲止。s    刪除遊標所在之字元,並進入輸入模式直到《ESC》。S    刪除遊標所在之該行資料,並進入輸入模式直到《ESC》。 光標的移動m<a-z>  設置書籤<a-z>‘<a-z>  移至書籤<a-z>處0    移至該行之首$    移至該行之末。e   移動到下個字的最後一個字母w    移動到下個字的第一個字母。b    移動到上個字的第一個字母。^    移至該行的第一個字元處。H    移至視窗的第一行。M    移至視窗的中間那行。L    移至視窗的最後一行。G    移至該文件的最後一行。+    移至下一列的第一個字元處。- 移至上一列的第一個字元處。:n    移至該文件的第 n 列。n+    移至遊標所在位置以後的第 n 列。n-    移至遊標所在位置以前的第 n 列。<Ctrl><g>  顯示該行之行號、文件名稱、文件中最末行之行號、遊標所在行號佔總行號之百分比。(Vim) 光標移動基本用法小解:(這隻要組合上邊的功能就能夠明白了,不用再一一講解了吧!)ge     b   w          e←    ←    ---→        --→This is-a  line,  with special/separated/words (and some more).←-  ←--    -----------------→     ---→GE   B        W      E 視窗的移動<Ctrl><f>  視窗往下卷一頁。<Ctrl><b>  視窗往上卷一頁。<Ctrl><d>  視窗往下卷半頁。<Ctrl><u>  視窗往上卷半頁。<Ctrl><e>  視窗往下卷一行。<Ctrl><y>  視窗往上卷一行。 剪切、複製、刪除Operator + Scope = command Operatord    剪切y    複製。p    粘帖,與 d 和 y 配和使用。可將最後d或y的資料放置於遊標所在位置之行列下。c    修改,相似delete與insert的組和。刪除一個字組、句子等之資料,並插入新建資料。 Scopee    由遊標所在位置至該字串的最後一個字元。w    由遊標所在位置至下一個字串的第一個字元。b    由遊標所在位置至前一個字串的第一個字元。$    由遊標所在位置至該行的最後一個字元。0    由遊標所在位置至該行的第一個字元。 整行動做dd    刪除整行。D    以行爲單位,刪除遊標後之全部字元。cc    修改整行的內容。yy   使遊標所在該行復制到記憶體緩衝區。 取消前一動做(Undo)u    恢復最後一個指令以前的結果。U    恢復遊標該行之全部改變。(vim) u   能夠屢次撤消指令,一次撤消一個操做,直至本次操做開始爲止。(vim) Ctrl+r 能夠恢復撤消前內容,按屢次可恢復屢次。 查找與替換/字串   往遊標以後尋找該字串。?字串   往遊標以前尋找該字串。n    往下繼續尋找下一個相同的字串。N    往上繼續尋找下一個相同的字串。%   查找「(」,「)」,「{」,「}」的配對符。s   搜尋某行列範圍。g   搜尋整個編輯緩衝區的資料。:1,$s/old/new/g 將文件中全部的『old』改爲『new』。:10,20s/^/ /  將第10行至第20行資料的最前面插入5個空白。(vim) /字符串   後邊輸入查詢內容可保存至緩衝區中,可用↑↓進行以往內容選擇。另外:將光標移動在選定單詞下方按*,則能夠選中此單詞做爲查詢字符,能夠避免輸入一長串字符的麻煩。 (vim) 大小寫替換首先用按v開啓選擇功能,而後用↑↓←→鍵來選定所要替換的字符,如果小寫變大寫,則按U;反之按u;若是是選擇單詞,則能夠在按v後,按w,最後按U/u,這樣就能夠將字符隨意的改變大小寫了,而不用刪除後從新敲入。 資料的鏈接J    句子的鏈接。將遊標所在之下一行鏈接至遊標該行的後面。 環境的設定:set all  可設置的環境變量列表:set   環境變量的當前值:set nu   設定資料的行號。:set nonu  取消行號設定。:set ai   自動內縮。:set noai   取消自動內縮。(vim) :set ruler  會在屏幕右下角顯示當前光標所處位置,並隨光移動而改變,佔用屏幕空間較小,使用也比較方便,推薦使用。:set hlsearch 在使用查找功能時,會高亮顯示全部匹配的內容。:set nohlsearch  關閉此功能。:set incsearch  使Vim在輸入字符串的過程當中,光標就可定位顯示匹配點。:set nowrapscan 關閉查找自動迴環功能,即查找到文件結尾處,結束查找;默認狀態是自動迴環 ex指令 讀寫資料:10,20w test  將第10行至第20行的資料寫入test文件。:10,20w>>test 將第10行至第20行的資料加在test文件以後。:r test   將test文件的資料讀入編輯緩衝區的最後。:e [filename] 編輯新的文件。:e! [filename] 放棄當前修改的文件,編輯新的文件。:sh   進入shell環境,使用exit退出,回到編輯器中。:!cmd  運行命令cmd後,返回到編輯器中。 刪除、複製及搬移:10,20d   刪除第10行至第20行的資料。:10d   刪除第10行的資料。:%d   刪除整個編輯緩衝區。:10,20co30  將第10行至第20行的資料複製至第30行以後。:10,20mo30  將第10行至第20行的資料搬移至第30行以後。

相關文章
相關標籤/搜索