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