VIM是什么,為什么要用
vim是什么
vim是一個(gè)文本編輯器,跟windows上notepad是一類編輯文本的工具
為什么要用
在Linux命令行界面下有很多文本編輯器,如Emacs壹堰、nano摊溶、vi等爬骤,vim就是一個(gè)加強(qiáng)了的vi編輯器,提供了語法作色莫换、可視化操作霞玄、兼容vi等特性。有些類UNIX上不一定就裝有vim 拉岁,有時(shí)vim命令打開的也有可能是vi編輯器坷剧,只是設(shè)置了別名
- 在很多類unix 的操作系統(tǒng)中系統(tǒng)編輯配置文件或文本會(huì)自動(dòng)調(diào)用vi編輯器
- vim 提供了語法高亮,語法作色能方便文本編輯喊暖、腳本編輯
- 可以做到不用鼠標(biāo)進(jìn)行文本編輯惫企,如多行復(fù)制,多行刪除(b格較高)
- ……
vim的三種模式
- 編輯模式
- 輸入模式
- 末行模式
編輯模式
通常鍵入鍵盤值被理解成一個(gè)操作; 如: dd(刪除行)、y(復(fù)制整行)
輸入模式
通常鍵盤的鍵入直接理解成文本
末行模式
通常:
打頭開始等待用戶鍵入操作
模式之間相互切換
輸入模式下不能直接進(jìn)入末行模式
- 編輯
-->
輸入
i:在當(dāng)前光標(biāo)所在字符
前面
狞尔,轉(zhuǎn)為輸入模式
a:在當(dāng)前光標(biāo)所在字符后面
丛版,轉(zhuǎn)為輸入模式
o:在當(dāng)前光標(biāo)所在行下新建一行
,轉(zhuǎn)為輸入模式
I:在當(dāng)前光標(biāo)所行的行首
偏序,轉(zhuǎn)為輸入模式
A:在當(dāng)前光標(biāo)所行的行尾
页畦,轉(zhuǎn)為輸入模式
O:在當(dāng)前光標(biāo)所在行上新建一行
,轉(zhuǎn)為輸入模式
- 輸入
-->
編輯
按
ESC
鍵
- 編輯
-->
末行
按
:
鍵
- 末行
-->
編輯
按
ESC
鍵(一次不管用多按一次)
打開文件
vim /PATH/TO/FILE
vim +# /PATH/TO/FILE
打開文件處在第#行(#表示數(shù)字)
vim + /PATH/TO/FILE
打開文件滯留在最后一行
vim +/PATTERN /PATH/TO/FILE
打開文件研儒,停留在第一次被PATTERN匹配之后
打開文件后默認(rèn)處于編輯模式
關(guān)閉文件
- 末行模式下關(guān)閉文件
- w:保存文件
- q:退出
- q!:強(qiáng)行退出
- wq:保存并退出
- w!:強(qiáng)行保存
- x:保存退出
- 編輯模式下關(guān)閉文件
- ZZ:保存退出
移動(dòng)光標(biāo)
編輯模式下
- 逐字符移動(dòng)
- h:左
- l:右
- j:下
- k:上
#h:表示向左移動(dòng)多個(gè)字符(#為數(shù)字)
- 按單詞為單位移動(dòng)
- w:移至下一個(gè)單詞的詞首
- e:跳至當(dāng)前或下一個(gè)單詞的詞尾
- b:跳至當(dāng)前或前一個(gè)單詞的詞首
#w:移動(dòng)#個(gè)單詞(#為數(shù)字)
- 行內(nèi)跳轉(zhuǎn)
- 0:絕對(duì)行首
- ^:行首第一個(gè)非空白字符
- $:絕對(duì)行尾
- 行間跳轉(zhuǎn)
-
#G
:跳至第#
行(#
表示數(shù)字) - G:最后一行
在末行模式下豫缨,可直接給出行號(hào)
翻屏
[ CTRL ] + [ f ]:向下翻一屏
[ CTRL ] + [ b ]:向上翻一屏
[ CTRL ] + [ d ]:向下翻半屏
[ CTRL ] + [ u ]:向上翻半屏
刪除字符或行
- x:刪除光標(biāo)所在處的單個(gè)字符
-
#x
: 刪除光標(biāo)所在處向后#
單個(gè)字符(#
為數(shù)字) - d:刪除命令(通常跟跳轉(zhuǎn)命令組合使用)
- 如:
#dw、#de殉摔、#db
州胳。表示光標(biāo)所在位置往后或往前刪除幾個(gè)單詞 - dd:刪除當(dāng)前光標(biāo)所在行
-
#dd
:刪除包括當(dāng)前光標(biāo)所在行內(nèi)的#
行(#
表示數(shù)字) - 末行模式下:
startLine
(開始行號(hào)),endLine
(結(jié)束行號(hào))d
-
.
:表示當(dāng)前行 -
$
:末行 -
+#
:向下#
行
如:0,$d
表示刪除全篇內(nèi)容逸月,0
表示首行栓撞,$
表示末行,d
表示刪除
-
- 如:
復(fù)制 & 黏貼 & 修改 & 替換 & 撤銷
粘貼命令
- p:如果刪除或復(fù)制的為整行內(nèi)容碗硬,則粘貼至光標(biāo)所在行的上方瓤湘;如果刪除或復(fù)制的為非整行內(nèi)容,則粘貼至光標(biāo)所在字符的前面
- P:如果刪除或復(fù)制的為整行內(nèi)容恩尾,則粘貼至光標(biāo)所在行的下方弛说;如果刪除或復(fù)制的為非整行內(nèi)容,則粘貼至光標(biāo)所在字符的后面
復(fù)制命令
- 用法跟
d
刪除命令一樣
修改命令
- 用法跟
d
刪除命令一樣
替換命令
- r:單個(gè)字符替換
- R:進(jìn)入替換模式
撤銷編輯操作
- u:撤銷前一次的編輯操作
連續(xù)u命令可撤銷此前n次操作 -
#u
:撤銷#
次操作(#
表示數(shù)字)
重復(fù)前一次編輯操作
.
符號(hào)
可視化模式
v:按字符選取
V:按矩形行選取
查找并替換
查找
-
/PATTERN
翰意、?PATTERN
PATTERN
表示模式或者是正則
n:(/PATTERN
下一個(gè)匹配結(jié)果木人;?PATTERN
上一個(gè)匹配結(jié)果)
N:(/PATTERN
上一個(gè)匹配結(jié)果;?PATTERN
下一個(gè)匹配結(jié)果)
查找并替換
在末行模式下使用s命令
StartLine,EndLines@PATTERN@STRING@修飾符
如:0,$s@^root$@ROOT@g
從第0行到最后一行將小寫的root替換成大寫的ROOT
修飾符: g 全局; i 忽略大小寫
%: 表示全文
&:引用模式匹配到的串
窗口文件操作
打開多個(gè)文件
vim FILE1 FIEL2 ...
如果需要進(jìn)行文件切換在末行模式下執(zhí)行
next :下一個(gè)文件
prev :上一個(gè)文件
last :最后一個(gè)文件
first:第一個(gè)文件
末行模式執(zhí)行qa退出此次打開所有文件
分屏顯示內(nèi)容
[ CTRL ] + w,s:水平拆分
[ CTRL ] + w,v:垂直拆分
在窗口間切換光標(biāo)
[ CTRL ] + w,方向光標(biāo)
qa:關(guān)閉所有
分窗口編輯多個(gè)文件
vim -o : 水平分割顯示
vim -O : 垂直分割顯示
將當(dāng)前文件中的部分內(nèi)容另存為另外一個(gè)文件
末行模式下使用命令
:w
:StartLine,EndLinew /PATH/TO/FILE
將另一個(gè)文件的的內(nèi)容填充在當(dāng)前文件中
末行模式下使用命令
:r /PATH/TO/FIEL
跟shell交互
:! COMMAND
冀偶,COMMAND為要執(zhí)行的命令
高級(jí)話題
- 顯示或取消顯示行號(hào)
:set number 顯示
:set nu 簡寫
:set nonu 取消
- 顯示忽略或區(qū)分字母大小寫
:set ignorecass 忽略
:set ic 簡寫忽略大小寫開啟
:set noic 關(guān)閉忽略
- 設(shè)定自動(dòng)縮進(jìn)
:set autoindent 開啟
:set ai 簡寫醒第;同上
:set noai 關(guān)閉
- 查找到的文本高亮顯示或取消
:set hlsearch 開啟
:set nohlsearch 關(guān)閉
- 語法作色
:syntax on 開啟
:syntax off 關(guān)閉
vim配置文件
-
/etc/vimrc
全局vim配置文件 -
~/.vimrc
自定義vim配置文件