一、vim簡介
vim是vi的增強版,是一個模式化的編輯器,功能非常的強大。通常,vim共分爲3中模式,分別是編輯模式、輸入模式、和末行模式
編輯模式:是vim的默認模式,通過vim打開文件一開始就是編輯模式,可進行刪除,複製等操作
輸入模式:又叫插入模式,在該模式下輸入的內容都會當做文本內容來使用
末行模式:即在整個屏幕的最下方,在裏面可以鍵入命令實現一些在編輯模式下無法實現的特性和功能,比如查找替換,行標顯示等
用vim打開文件的格式爲:vim [options] /path/to/somefile
說明這裏的路徑可以省略,等文件內容寫完在決定保存的路徑也是可以的
二、模式轉換
編輯模式-——>輸入模式:
i:insert,實現在當前光標所在處轉換爲輸入模式
a:append,實現在當前光標所在處字符後面轉換爲輸入模式
o:實現在當前光標所在行的下方新建一個空白行並轉換爲輸入模式
I:在當前光標所在行的行首轉爲輸入模式
A:在當前光標所在行的行尾轉爲輸入模式
O:在當前光標所在行的上方新建一行,並轉換爲輸入模式
輸入模式——>編輯模式轉換
按下Esc鍵
編輯模式——>末行模式
鍵入“:”
末行模式——>編輯模式
一般要按兩次Esc,Esc
說明:輸入模式到末行模式是無法直接實現的,只能先轉換爲編輯模式,然後在轉換爲末行模式
三、光標跳轉
字符間跳轉:
h:向左
l:向右
j:向下
k:向上
在他們之前加上數字就可以實現向某個方向移動多少位,如:5h就表示向左側跳5個字符,這些操作都是在編輯模式下實現的
單詞間跳轉:
w:跳至後一個單詞的詞首
e:跳至當前或下一個單詞詞尾
b:跳至當前或者前一個單詞的詞首
句子間跳轉:
):跳至下一句
(:跳至前一句
段落間跳轉:
}:跳至後一段
{:跳至前一段
行間跳轉:
1G:跳到第一行
G:跳到最後一行
#G:跳到某一行
行內跳轉:
^:跳到行首,跳到行首第一個非空白字符
$:跳到行尾,絕對行尾
0:跳到行首,絕對行首
四、文件處理
關閉文件:
在末行模式下進行
:w 保存
:q 退出
:! 強制
:wq 保存退出
:q! 強制退出不保存
:x 保存並退出
:qall全部退出
:w!強制保存
:wall所有的都保存
:wqall所有的保存退出
在編輯模式下:
ZZ:保存退出
打開文件:
vim [options] /path/to/file
vim +# /path/to/file 打開文件光標直接定位到#行
vim + /path/to/file 只有一個“+”號,打開文件光標直接定位到最後一行
打開多個文件:
格式:vim 文件1 文件2 文件3...
多文件間跳轉在末行模式下進行:
:next下一個
:last最後一個
:first第一個
:prev 前一個
下面選項可實現多文件分割窗口格式爲:vim [Option] 文件1 文件2 文件3...
-O:垂直分割窗口
-o:水平分割窗口
文件間切換敲擊ctrl+w然後按上下左右箭頭
編輯命令:
x:刪除單個字符
#x:刪除光標所在處向右幾個字符
刪除命令d;
dw:刪除當前光標到單詞尾的所有字符
db:刪除當前光標之前的單詞
de:刪除光標之後的單詞
d^:刪除光標到行首的所有字符
d$:刪除光標到行尾的所有字符
dd:刪除光標所在行
#dd;刪除光標所在行及向下#行
在末行模式下使用d命令
末行模式支持地址定界:
用法: 起始地址,結束地址
$:最後一行
.:當前光標所在行
%:全文
1,7d:第一行到第七行刪除
%:表示全文
1,$:也表示全文
1,+6:第一行在向下數6行
1,$-2:第一行到倒數第三行
.,+3:當前行在向下3行
編輯操作可撤銷:
u:默認會保存最近50次的操作,u命令可逐一撤銷此前編輯的操作
撤銷此前的撤銷:ctrl+r
粘貼操作:
p:
刪除的是整行:
p:在當前光標所在行的下方粘貼
P;大寫P,在當前光標所在行的上方粘貼
刪除的不是整行;
p:在當前光標所在處字符的後面粘貼
P:大寫P,在當前光標所在處字符的前面粘貼
複製:用y鍵
yy:複製一行
#yy:複製#行
y$:複製光標到行尾
y^:複製光標到行首
複製的是整行:
p:在當前光標所在行的下方粘貼
P;大寫P,在當前光標所在行的上方粘貼
複製的不是整行;
p:在當前光標所在處字符的後面粘貼
P:大寫P,在當前光標所在處字符的前面粘貼
通過vimtutor命令可以幫助學習vim
翻屏:
ctrl+f;向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
文本搜索:
/keyword:從當前光標所在處向文件尾部查找
?keyword:從當前光標所在處向文件首部查找
n:下一個,跟查找命令相同的方向
N:前一個,跟查找命令相反的方向
說明:文本搜索支持模式匹配,也即支持正則表達式的匹配
例如:字母d中間有兩個字母后跟n的單詞/\<d[[:alpha:]]\{2\}n\>
編輯命令
cc:刪除當前光標所在行並轉化爲輸入模式
#cc:刪除當前光標所在行向下#行並轉化爲輸入模式
c$:刪除當前光標所在處到行尾並轉化爲輸入模式
c^:刪除當前光標所處到行首並轉化爲輸入模式
c0:刪除至行首並轉化爲輸入模式
vim支持可視化模式
v:選中光標劃過的字符
V:選中光標劃過的行,整行選取
按Esc即可返回到編輯模式
同一文檔窗口分割:
ctrl+w,s;水平分割
ctrl+w,v:垂直分割
ctrl+w,箭頭
窗口屬性定義:
顯示行號:
set number,set nu
set nonumber,set nonu
自動縮進
set autoindent,set ai
set noai
不區分字符大小寫
set ingorecase,set ic
set noic
獲取幫助
set 敲enter鍵
顯示匹配括號
set showmatch,set sm
set nosm
語法着色:
syntax on
syntax off
搜索高亮顯示
set hlsearch
set nohlsearch
vim的配置文件
全局 /etc/vimrc 只有管理員纔有權限修改配置,修改之後對所有用戶都有效
個人:~/.vimrc 這個文件實際不存在自己創建即可,修改之後只對當前用戶自己有效對其他用戶無效
查找替換在末行模式下
格式爲 :地址定界s/查找模式/替換成的內容不能使用模式/gi
也可以 :地址定界s@查找模式@替換成的內容不能使用模式@gi
查找模式可以使用正則表達式
global全局替換
ignorecase 查找時不區分大小寫
%表示全文搜索