1. 程式人生 > >vi命令詳解

vi命令詳解

想想無意中闖入Linux世界已經兩年整了,是時候提升下操作的逼格了。簡單介紹下Linux中的vi命令,可以像在操作Windows中的操作文字一樣舒服。

vi的三種模式

  1. 指(命)令行模式(編輯模式)
  2. 文字輸入模式
  3. 末行模式

    三種模式的切換

指令行模式(Command Mode) 下輸入 a、i、o進入文字輸入模式(Input Mode)
文字輸入模式(Input Mode) 下按ESC進入指令行模式(Command Mode)
指令模式(Command Mode)下輸入:進入末行模式(Last line Mode)
末行模式(Last line Mode)下指令錯誤則返回指令模式(Command Mode
) 任何時候,不管使用者處於何種模式,只要按一下“ESC”鍵,即可使Vi進入命令列模式

開啟檔案

vim /path/to/somefile          例子:vi  profile
vim +# :開啟檔案,並定位於第#行    例子:vi +13 profile
vim +:開啟檔案,定位至最後一行    例子:vi +: profile

vim +/PATTERN : 開啟檔案,定位至第一次被PATTERN匹配到的行的行首
例子:vi +/change profile     會定位到含有”change”的字串一行的開頭

關閉檔案

末行模式:
:q  退出  沒有動過檔案
:wq
儲存並退出 動過了,不後悔 :q! 不儲存並退出 動過了,後悔了 :w 儲存 :w! 強行儲存 :wq --> :x

強烈推薦。福音

ZZ: 儲存並退出   不需要冒號,編輯模式

編輯模式進入輸入模式各個引數 解釋

i: 在當前游標所在字元的前面,轉為輸入模式;--常用
a: 在當前游標所在字元的後面,轉為輸入模式;
o(歐): 在當前游標所在行的下方,新建一行,並轉為輸入模式;---常用
O(零):在當前游標所在行的上方,新建一行,並轉為輸入模式;  
I:在當前游標所在行的行首,轉換為輸入模式;--不用
A:在當前游標所在行的行尾,轉換為輸入模式;--不用

編輯模式下可用操作 –重點

1、移動游標

字元 --(雞肋,沒卵用)
h: 左;j: 下;k: 上;l: 右

單詞   --(雞肋,沒卵用)
w: 移至下一個單詞的詞首
e: 跳至當前或下一個單詞的詞尾
b: 跳至當前或前一個單詞的詞首

行內
0: 絕對行首
$: 絕對行尾

行間
G:跳到文章末尾
3G:從游標開始往下跳三行
gg:跳到文章開頭

翻屏
ctrl+f  向下翻屏
ctrl+b  向上翻屏

2、刪除和剪下

dd
刪除或剪下一行
ndd  
刪除或剪下以當前行開始的n行(例子:3dd,剪下三行)

3、複製

用vim寫程式碼時,經常遇到這樣的場景,複製多行,然後貼上。
 這樣做:
1. 將游標移動到要複製的文字開始的地方,按v進入可視模式。
2. 將游標移動到要複製的文字的結束的地方,按y複製。此時vim會自動將游標定位到選中文字的開始的地方,並退出可視模式。
3. 我移動游標到文字結束的地方,按p貼上。

4、撤銷&重做

u   撤銷
ctrl+r  重做 (撤銷的多了用這個在返回來)

5、末行模式

set nu  number   --顯示行數
set nonu nonumber  --不知道幹嘛
set readonly      --不知道幹嘛

查詢字元

/after  --查詢after字元
n,N    --向上翻,向下翻