vim模式:
- 編輯模式(命令模式)
- 輸入模式
- 末行模式
模式轉換:
編輯-->輸入:
i: 在當前光標所在字符的前面,轉爲輸入模式; a: 在當前光標所在字符的後面,轉爲輸入模式; o: 在當前光標所在行的下方,新建一行,並轉爲輸入模式; I:在當前光標所在行的行首,轉換爲輸入模式 A:在當前光標所在行的行尾,轉換爲輸入模式 O:在當前光標所在行的上方,新建一行,並轉爲輸入模式;
輸入-->編輯:
ESC
編輯-->末行:
:
末行-->編輯:
ESC, ESC
一、打開文件
vim +# :打開文件,並定位於第#行 vim +:打開文件,定位至最後一行 vim +/PATTERN : 打開文件,定位至第一次被PATTERN匹配到的行的行首
二、關閉文件
1、末行模式關閉文件
:q 退出 :wq 保存並退出 :q! 不保存並退出 :w 保存 :w! 強行保存 :wq --> :x
2、編輯模式下退出
ZZ: 保存並退出
三、移動光標(編輯模式)
1、逐字符移動:
h: 左 l: 右 j: 下 k: 上 #h: 移動#個字符
2、以單詞爲單位移動
w: 移至下一個單詞的詞首 e: 跳至當前或下一個單詞的詞尾 b: 跳至當前或前一個單詞的詞首 #w: 移動#個單詞
3、行內跳轉:
0: 絕對行首 ^: 行首的第一個非空白字符 $: 絕對行尾
4、行間跳轉
#G:跳轉至第#行 gg: 第一行 G:最後一行
5、末行模式
.: 表示當前行 $: 最後一行 #:第#行 +#: 向下的#行
四、翻屏
Ctrl+f: 向下翻一屏 Ctrl+b: 向上翻一屏 Ctrl+d: 向下翻半屏 Ctrl+u: 向上翻半屏
五、刪除單個字符
x: 刪除光標所在處的單個字符 #x: 刪除光標所在處及向後的共#個字符
六、刪除命令: d
d命令跟跳轉命令組合使用
#dw, #de, #db
dd: 刪除當前光標所在行
#dd: 刪除包括當前光標所在行在內的#行;
七、粘貼命令 p
p: 如果刪除或複製爲整行內容,則粘貼至光標所在行的下方,如果複製或刪除的內容爲非整行,則粘貼至光標所在字符的後面 P: 如果刪除或複製爲整行內容,則粘貼至光標所在行的上方,如果複製或刪除的內容爲非整行,則粘貼至光標所在字符的前面
八、複製命令 y
用法同d命令
九、修改:先刪除內容,再轉換爲輸入模式
c: 用法同d命令
十、替換:
r:單字符替換 #r: 光標後#個字符全部替換 R: 替換模式
十一、撤消編輯操作 u
u:撤消前一次的編輯操作 #u: 直接撤消最近#次編輯操作 連續u命令可撤消此前的n次編輯操作 撤消最近一次撤消操作:Ctrl+r
十二、重複前一次編輯操作
.:編輯模式重複前一次編輯操作
十三、可視化模式
v: 按字符選取 V:按矩形選取
十四、查找
/PATTERN ?PATTERN n 下一個 N 上一個
十五、查找並替換
在末行模式下使用s命令
headline,footlines#PATTERN#string#g 1,$:表示全文 %:表示全文
十六、使用vim編輯多個文件
vim FILE1 FILE2 FILE3 :next 切換至下一個文件 :prev 切換至前一個文件 :last 切換至最後一個文件 :first 切換至第一個文件 :q退出當前文件 :qa 全部退出
十七、分屏顯示一個文件
Ctrl+w, s: 水平拆分窗口 Ctrl+w, v: 垂直拆分窗口
在窗口間切換光標:
Ctrl+w, ARROW(h,j,k,l或方向鍵) :qa 關閉所有窗口
十八、分窗口編輯多個文件
vim -o : 水平分割顯示 vim -O : 垂直分割顯示
十九、將當前文件中部分內容另存爲另外一個文件
末行模式下使用w命令
:ADDR1,ADDR2w /path/to/somewhere
二十、將另外一個文件的內容填充在當前文件中
:r /path/to/somefile 附加到當前文件光標後
二十一、跟shell交互
:! COMMAND
二十二、高級話題
1、顯示或取消顯示行號
:set nu :set nonu mu = number
2、顯示忽略或區分字符大小寫
:set ic :set noic ic = ignorecase
3、設定自動縮進
:set ai :set noai ai = autoindent
4、查找到的文本高亮顯示或取消
:set hlsearch :set nohlsearch
5、語法高亮
:syntax on :syntax off
二十三、配置文件
/etc/vimrc 針對所有用戶 ~/.vimrc 針對當前用戶