vi命令詳解
阿新 • • 發佈:2019-02-16
想想無意中闖入Linux世界已經兩年整了,是時候提升下操作的逼格了。簡單介紹下Linux中的vi命令,可以像在操作Windows中的操作文字一樣舒服。
vi的三種模式
- 指(命)令行模式(編輯模式)
- 文字輸入模式
末行模式
三種模式的切換
指令行模式(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 --向上翻,向下翻