vim編輯器
【從今天開始,多晚都是早;從明天開始,多早都是晚】
vi:Visual Interface,文本編輯器
文本:ASCII,Unicode
VIM:vi的增強
vim [option]... [file]...
+[num] 打開文件,光標在num行,只有一個+,打開文件,光標在文件尾部
+/{pat} 打開文件,光標跳轉到模式匹配處
vimtutor,vim編輯器教程
VIM編輯器的模式
命令模式(編輯模式)
字符間跳轉
h 左
j 下
k 上
l 右
上下左右鍵也可以完成跳轉
n l 跳轉指定個數(n個)的字符
n -> 向右跳轉指定n個字符
單詞之間的跳轉
w 下一單詞的詞首
e 當前或下一個單詞的詞尾
b 當前或前一個單詞的詞首
n w|e|b 指定跳轉的單詞數n
行首未跳轉
^ 跳轉至行首的第一個非空白字符
0 跳轉至行首
$ 跳轉至行尾
行間移動
n G 跳轉至第n行
G 跳轉至行尾
1G或gg 跳轉至第一行
段落間移動
{ 光標移至段落開頭
} 光標移至段落結尾
字符編輯
x 刪除光標處的字符
n x 刪除光標處及向後n個字符
xp 交換光標所在處的字符及後面字符的位置
刪除命令
d 結合光標跳轉字符,實現範圍刪除
dd 刪除光標所在的行
2dd 光標向下,實現(2行)多行刪除
d$ 刪除至行尾
d0 刪除至行首
dw
de
db
3dw
粘貼命令
p 緩存區的如果爲整行,則粘貼當前光標所在的下方,否則,則粘貼至當前光標所在的後面
P 緩存區的如果爲整行,則粘貼當前光標所在的上方,否則,則粘貼至當前光標所在的前面
複製命令
y 工作行爲相似與d命令
yy
3yy 複製行
y$
y^
ye
yw
yb
改變命令
c:修改 命令模式 => 輸入模式
c$,到行尾刪除,轉換爲輸入模式
cc,刪除當前行,轉換爲輸入模式
替換命令
r 替換光標所在處的字符
撤銷此前的編輯
u 撤銷此前的操作
ctrl+r 撤銷此前的撤銷
重複前一個編輯操作
. 點
翻屏操作
ctrl+f 向文件尾部翻一屏
ctrl+b 向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏
可視化模式
v,跳轉光標可選,y複製可選塊,p可粘貼可選塊,d可以刪除可選塊
V,跳轉光標可選行,y複製可選行,p粘貼可選行,d可以刪除可選行
輸入模式(插入模式)
命令模式 => 輸入模式
a 在當前光標所在行的第二個字符進入編輯模式
i 在光標所在的當前位置進入編輯模式
o 在光標所在行的下一行進入編輯模式
I 在當前光標所在行的行首輸入
A 在當前光標所在行的行未輸入
O 在光標所在行的上一行進入編輯模式
c
C
進入編輯模式後,在窗口的左下方會顯示 -- INSERT --
末行模式:vim內建命令行接口
1、地址定界
:start_pos ,end_pos
n 具體第n行,5表示第5行
n1,n2 從n1表示行起始位置,到n2行結束位置
n1,+n2 從n1表示起始行,加上n2的行數, 1,+3第一行,並往下在數三行
. 表示當前行
$ 表示最後一行
.,$-1 當前行到倒數第二行
% 表示全文,等價於1,$
/pat1/,/pat2/ 從pat1模式匹配到的行開始,到pat2模式匹配到的行結束
n,/pat/ 從n行開始,到pat模式匹配到的行結束
/pat/,$ 從pat模式匹配到的行開始,行尾
操作方式
地址定界後面緊跟一個編輯命令
d 刪除
y 複製
w /路徑/文件名 將指定範圍的行保存到指定文件
r /路徑/文件名 將指定位置處插入指定文件的內容
2、查找
/PATTERN 從當前光標所在處向文件尾部查找
? PATTERN 從當前光標所在處向文件首部部查找
n,與命令同方向,/PATTERN 向文件尾部查找匹配到的內容
3、替換
s 在末行模式下完成查找替換操作
s/要查找的內容/替換爲的內容/修飾符
要查找的內容可以使用模式,替換爲的內容不能使用模式,可以使用\1,\2,……後項引用,可以使用 “&”引用前面查找時查找到的所有內容
修飾符
i忽略大小寫
g全集替換,默認每一行只替換第一次出現的
查找替換間的分割符
s@@@
s###
s///
1、:%s/^[[:space:]]\+///或 :%s/^[[:space:]]\+///g
2、:%s/^[[:space:]]/#&/
關閉文件
:q 退出
:wq或:x 保存退出
:w /path/to/file 保存文件到
命令模式下ZZ也可以退出
模式轉換
命令模式 => 輸入模式
i a 0 I A O
輸入模式 => 命令模式
esc
命令模式 => 末行模式
:
末行模式 => 命令模式
esc:會間隔一段時間,回到命令模式
連續兩次esc:快速回到命令模式
進階用法
多文件模式
vim同時編輯接多個文件
vim file1 file2 file3
默認打開第一個文件
:next 切換到下一個文件
:prev 切換到上一個文件
:last 切換到最後一個文件
:first 切換到第一個文件
:wall 保存所有文件
:qall 全部退出
vim可以跨文件複製粘貼
窗口分割模式
單文件分割,vim編輯一個文件分屏顯示
Ctrl+w 鬆開,按s鍵 水平拆分窗口
Ctrl+w 鬆開,按v鍵 垂直拆分窗口
在窗口之間切換光標
Ctrl+w 鬆開, 向上箭頭
Ctrl+w 鬆開, 向下箭頭
Ctrl+w 鬆開, 向左箭頭
Ctrl+w 鬆開, 向右箭頭
:q退出一個窗口
:wall 保存所有窗口
:qall 退出所有窗口
vim分屏顯示多個文件
vim -o file1 file2 file3 ...(水平拆分顯示)
vim -O(大寫) file1 file2 file3 ... (垂直拆分顯示)
定製vim的工作特性:
1、配置文件
全局:/etc/vimrc
個人:~/.vimrc
vim配置文件(~/.vimrc)默認是不存在的
編輯配置文件vim /etc/vimrc
2、末行模式,設置vim的特性,對當前vim進程有效
:set nu | 顯示行號 |
:set noun | 取消顯示行號 |
:set ai | 自動縮進 |
:set noai | 取消自動縮進 |
:set hlsearch | 查找的關鍵字高亮 |
:set nohlsearch | 取消查找的關鍵字高亮 |
:syntax on | 語法高亮 |
:syntax off | 取消語法高亮 |
:set showmatch | 簡寫爲set sm 括號匹配 |
:set nosm | 取消括號匹配 |
擴展:
獲取幫助 :help [subject] 如 :help help
如何設置table鍵自動縮進爲4個字符