一、簡介:
vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。
1、viimproved,vim
全屏編輯器,模式化,功能強大,短小精悍
2、使用格式:
#vim[Options] /path/to/somefile
二、使用模式:
1、默認模式:命令模式,編輯模式,可對文件進行刪除,複製,粘貼等操作
2、輸入模式:對文本文件進行修改,輸入
3、末行模式:可以執行保存、查找、替換、退出等命令
4、模式間轉換:
編輯模式-->輸入模式
i:insert,實現在當前光標所在字符前面轉爲輸入模式;
a:append,實現在當前光標所在字符後面轉爲輸入模式;
o:在光標所在行的下方新建一個空白行並轉爲輸入模式;
I:在當前光標所在行的行首轉爲輸入模式;
A:在當天光標所在行的行尾轉爲輸入模式;
O:在當前光標所在行的上方,新建一個空白行並轉爲插入模式;
輸入模式-->編輯模式:
按下Esc鍵;
編輯模式-->末行模式
輸入":"模式
末行模式-->編輯模式
按兩次Esc退出末行模式,不能從莫忙模式直接轉到輸入模式;
三、光標跳轉:
1、字符間跳轉:
h:向左跳轉一個字符;
l:向右跳轉一個字符;
j:向下跳轉一個字符;
k:向上跳轉一個字符;
↑k
←h l→
↓j
#h:向左跳轉#個字符;
#j:向下跳轉#個字符;
#k:向上跳轉#個字符;
#l:向右跳轉#個字符;
2、單詞間跳轉:
w:跳至後一個單詞的詞首;
e:跳至當前或下一個單詞詞尾;
b:跳至當前或前一個單詞詞首;
3、句間跳轉:
):跳至下一句;
(:跳至上一句;
4、段落間跳轉:
}:跳至下一段;
{:跳至上一段;
5、行間跳轉:
1G,gg:跳至文件首行;
G:跳至文件最後一行;
#G:跳轉到#行;
6、行內跳轉:
^:跳至行首;
$:跳至行尾;
0:零跳至絕對行首;
7、翻屏操作:
Ctrl+f:向文件尾部翻一屏或按PageDown鍵;
Ctrl+b:向文件首部翻一屏或按PageUp鍵;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
四、關閉文件:
1、在末行模式下:
:w保存;
:q退出;
:!強制;
:wq保存並推出;
:q!強制退出不保存,對文件做了修改不想保存時就可以用強制退出;
:wq! 強制保存並推出,對於有些文件不讓保存,但我們又非要保存不可的時候就用強制保存;
:x 保存退出;
2、在編輯模式先:
ZZ:保存退出;
五、打開文件
1、vim +#/path/to/file 打開文件光標自動跳轉至#行;
2、打開多個文件:
vim[optios] FILE1 FILE2 FILE3
可使用以下命令在多個文件之間跳轉:
next下一個;
last最後一個;
first第一個;
prev前一個;
3、打開多個文件並分屏顯示
vim-[o|O] FILE1 FILE2 FILE3
-O:垂直分割窗口;
-o:水平分割窗口;
Ctrl+w+(↑↓):在多個文件間跳轉
六、編輯操作:
1、x命令:
x:向後刪除一個字符
X:向前刪除一個字符
#x:刪除#個字符
2、d:刪除命令;
dw:刪除當前光標到後一個單詞詞首;
db:刪除光標所在處到詞首,或前一個單詞詞首
de:刪除光標所在處當詞尾,或下一個單詞詞尾
d^:刪除光標所在處到行首;
d$:刪除光標所在處到行尾
dd:刪除光標所在行
#dd:刪除當前光標向下#行
3、在末行模式使用d命令
末行模式可以使用地址定界;
起始地址,結束地址
$:最後一行
.:當前光標所在行
%:全文
1,7d:刪除第一行到第七行;
1,$:第一行到最後一行;
1,+6:第一行到第六行;
1,$-2:第一行到倒數第三行;加d命令可以直接刪除
.,+3:當前光標所在行和下面的三行;加d命令可刪除4行
4、c:編輯,轉換至輸入模式
cc:刪除當前光標所在行並轉換至輸入模式;
#cc:刪除當前光標所在行向下#行並轉換至輸入模式;
c^:刪除當前光標所在處到行首並轉換至輸入模式;
c$:刪除當前光標所在處到行尾並轉換至輸入模式;
5、粘帖操作:p命令
用d命名刪除的字符可用p命令來粘貼;
a、刪除的是整行:
p:刪除的是整行在當天光標所在行的下方粘貼;
P:刪除的是整行在當前光標所在行的上方粘貼;
b、刪除不是整行:
p:在當前光標所在處的後方粘貼;
P:在當前光標所在處的前方粘貼;
6、複製:y,yank
yy:複製當前光標所在行;
y^:複製當前光標所在處到行首;
y$:複製當前光標所在處到行尾;
#yy:複製當前光標所在行向下#行;
a 、複製的是整行:
p:複製的是整行在當天光標所在行的下方粘貼;
P:複製的是整行在當前光標所在行的上方粘貼;
b、複製不是整行:
p:在當前光標所在處的後方粘貼;
P:在當前光標所在處的前方粘貼;
7、編輯操作可撤銷
在編輯模式下:
u:vim默認會保存最近50次,可逐次撤銷
Ctrl+r:撤銷此前的撤銷操作
七、文本搜索:
/keyword(關鍵字):從當前光標向文件尾部查找;
?keyword(關鍵字):從當前光標向文件首部查找;
n:查找下一個
N:查找前一個
支持模式:
/\<d[[:alpha:]]\{2\}n\>:精確匹配以d開頭,後跟兩個任意字符,並且以n結尾的字符串;
基本正則表達式
^:錨定行首的符合條件的內容,用法格式"^pattern";
$:錨定行尾的符合條件的內容,用法格式"pattern$";
.:匹配任意單個字符;
*:匹配緊挨在其前面的字符的字符任意次;
[]:匹配指定範圍內的任意單個字符
[^]:匹配指定範圍外的任意單個字符
\?:匹配緊挨在其前面的字符0次或1次;
\{m,n}:匹配其前面的字符至少m次,至多n次
\{0,n}:至多n次,0-n次;
\{m,\}:至少m次
\{m,\}:精確匹配m次
\<錨定詞首,用法格式:\<pattern
\b:\bpattern
\>錨定詞尾,用法格式:pattern\>
\b:pattern\b
\(\):分組,用法格式;
\(a.b\).*\1:前匹配後引用;
八、vim可視化模式
1、visual模式
v:選中光標劃過的字符;
V:選中光標劃過的行,整行選取
2、 按兩次Esc鍵,回到編輯模式;
3、 同一文檔分屏顯示
Ctrl+w,s:水平分割;
Ctrl+w,v:垂直分割;
在其間切換Ctrl+w(↑↓)
九、窗口屬性定義:
1、顯示行號:
set number,簡寫:set nu;
set nonumber,簡寫:set nonu;
2、自動縮進
set autoindent,簡寫:set ai;
set noautoindent,簡寫:set noai;
3、不區分字符大小寫
set ignorecase,簡寫:set ic;
set noic;
4、獲取幫助:
set 可以查看set可以配置的功能;
5、顯示匹配的括號:
set showmatch,簡寫:set sm;
set nosm
6、語法着色:
syntax on;
syntax off
7、查找結果高亮顯示:
set hlsearch
set nohlsearch
十、vim的配置文件:在文件中用set修改的只對當前vi進程有效。要想長期有效就需要要修改配置文件;
1、全局:/etc/vimrc;
2、個人:~/.vimrc 文件不存在可自己創建;
3、修改時直接將set COMMAND放在配置文件中就可以了;