一、模式及模式間的切換
(一)模式介紹
1、vim文本編輯器提供了三種基本模式,分別是編輯模式(命令模式)、輸入模式以及末行模式(命令行模式)
(二)模式間的切換
二、基礎操作
(一)單文件的打開與關閉
1、單文件的打開:vim [options]… /path/to/somefile
2、單文件打開時的常用選項:
(1)+#:表示當文件打開時,直接讓光標處于第#行的行首
(2)+/pattern:表示當文件打開時,直接讓光標處于第一個被pattern匹配到的行的行首
3、如何在單文件打開時,實現多窗口功能?
ctrl+w松開后,按s,將單個窗口按照水平方式進行分割
ctrl+w洞開后,按v,將單個窗口按照垂直方式進行分割
4、單文件的關閉和另存為:
(1)ZZ:保存并退出
(2)wq:保存并退出
(3)x:保存并退出
(4)q:直接退出,不保存對文件內容的修改
(5)q?。簭娭浦苯油顺?/span>
(6)w /path/to/somefile:另存為至somefile
(二)多文件的打開與關閉
1、多文件的打開:vim [options]… /path/to/somefile1 /path/to/somefile2 /path/to/somefile3
2、多文件打開時的常用選項:
(1)-o:以水平分割多個窗口的形式打開多個文件
(2)-O:以垂直分割多個窗口的形式打開多個文件
3、如何在多個文件之間進行來回切換?
(1):next 切換至下一個文件
(2):prev 切換至上一個文件
(3):first 切換至第一個文件
(4):last 切換至最后一個文件
4、多文件的關閉:
(1)如果對其中一個文件進行關閉,即使用單文件的關閉方法即可
(2)如果對多個文件同時進行關閉,具體方法如下:
-
wqall:保存所有文件并且退出
-
qall:退出所有文件,但不保存
三、編輯模式
(一)如何操縱光標?
1、字符間的光標跳轉
(1)上下左右方向鍵
(2)k(上),j(下),h(左),l(右)
注意:以上2種字符間的光標跳轉的方式,都可以在其前加上一個數字,表示需要跳轉的字符的個數
2、單詞間的光標跳轉
(1)w:跳轉至下一個單詞的詞首
(2)e:跳轉至當前光標所在處的單詞的詞尾,或者光標所在處之后的一個單詞的詞尾
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
上述文本光標處在This的T處,在執行了“e”之后,光標會跳轉至This的s處
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
上述文本光標處在This后的空白字符處,在執行了“e”之后,光標會跳轉至all的第二個l處
-
# This all seem confusing? Look in /etc/sysconfig/init,
(3)b:跳轉至當前光標所在處的單詞的詞首,或者光標所在處之前的一個單詞的詞首
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
上述文本光標處在This的s處,在執行了“b”之后,光標會跳轉至This的T處
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
上述文本光標處在This后的空白字符處,在執行了“b”之后,光標會跳轉至This的T處
-
# This all seem confusing? Look in /etc/sysconfig/init,
注意:以上3種單詞間的光標跳轉的方式,都可以在其前加上一個數字,表示需要跳轉的單詞的個數
3、如何跳轉至行首OR行尾?
(1)^:直接跳轉至行首的第一個空白字符
(2)0:直接跳轉至首行
(3)$:直接跳轉至尾行
4、如何在行間進行跳轉?
(1)#G:“#”表示數字,“G”表示需要跳轉至的行的行號
(2)1G:跳轉至第一行,即首行
(3)G:跳轉至最后一行,即尾行
5、如何進行翻頁?
(1)ctrl+f:向文件尾部翻一頁
(2)ctrl+b:向文件首部翻一頁
(3)ctrl+d:向文件尾部翻半頁
(4)ctrl+u:向文件首部翻半頁
(5)Enter鍵:向文件尾部移動一行
(二)編輯命令 –> 主要針對于字符進行操作
1、刪除命令
(1)x:刪除光標所在處的字符
(2)2x:刪除從光標所在處開始的2個字符
(3)xp:交換光標所在處的字符與其后面的字符的位置
(4)d:結合光標跳轉字符,可以實現范圍刪除,具體如下:
-
d$:刪除光標所在處至行尾之間的所有字符
-
d^:刪除光標所在處至行首之間的所有字符
-
dw:刪除光標所在處至下一個單詞詞首之間的所有字符,并且光標跳轉至下一個單詞的詞首
-
2dw:刪除光標所在處至之后的第三個單詞的詞首,并且光標跳轉至第三個單詞的詞首
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
上述文本光標處在This的T處,在執行了“2dw”之后,“This all”會被刪除,且光標會跳轉至seem的s處
-
# seem confusing? Look in /etc/sysconfig/init,
-
de:刪除光標所在處至本單詞的詞尾之間的所有字符,并且光標跳轉至下一個單詞的詞首之前的空白字符處
-
2de:刪除光標所在處至之后的第三個單詞的詞首之間的所有字符,并且光標跳轉至第三個單詞之間的空白字符處
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
上述文本光標處在This的h處,在執行了“2de”之后,“his all”會被刪除,光標會跳轉至seem之前的空白字符處
-
# T seem confusing? Look in /etc/sysconfig/init,
-
db:刪除光標所在行至本單詞的詞首之間的所有字符,并且光標會停留在執行命令“db”之前的光標所在處
-
2db:刪除光標所在處至之前的兩個單詞的,并且光標會停留在執行命令“2db”之前的光標所在處
-
# This all seem confusing? Look in /etc/sysconfig/init,
-
上述文本光標處在seem的s處,在執行了“2db”之后,“This all”會被刪除,光標會停留在seem的s處
-
# seem confusing? Look in /etc/sysconfig/init,
-
dd:刪除光標所在行的整行
-
2dd:刪除2行,從光標所在行開始計數
2、替換命令
(1)r:替換光標所在處的字符
3、粘貼命令
(1)p:緩沖區中的內容如果為整行,則粘貼至當前光標所在行的下方;否則,則粘貼至當前光標所在行的后方
(2)P:緩沖區中的內容如果為整行,則粘貼至當前光標所在行的上方;否則,則粘貼至當前光標所在行的前方
4、復制命令
(1)y:結合光標跳轉字符,可以實現范圍復制,具體如下:
-
y$:復制光標所在處之后至行尾之間的所有字符串
-
y^:復制光標所在處之前至行首的空白字符之間的所有字符串
-
y0:復制光標所在處之前至行首之間的所有字符串
-
yy:復制光標所在行的整行
5、改變命令
(1)c:結合光標跳轉字符,可以實現范圍刪除,并且命令執行完成后,會轉換至輸入模式
-
c$:刪除光標所在處之后至行尾之間的所有字符串,并且轉換至輸入模式
-
c^:刪除光標所在處之前至行首的空白字符之間的所有字符串,并且轉換至輸入模式
-
c0:刪除光標所在處之前至行首之間的所有字符串,并且轉換至輸入模式
-
cc:刪除光標所在行的整行,并且轉換至輸入模式
6、撤銷命令
(1)u:撤銷之前一次操作
(2)3u:撤銷之前三次操作
(3)ctrl+r:撤銷之前執行的撤銷命令
7、特殊命令
(1).:重復執行之前一個編輯命令
(2)v:按字符選定(注意:當選定字符串后,可對選定的字符串執行d、y、c等命令)
(3)V:按行選定(注意:當選定字符串后,可對選定的字符串執行d、y、c等命令)
四、末行模式
1、地址界定:[start_position[,end_position]] –> 可以配合d,c,y,w,r等命令一起使用
(1)#:“#”表示行數,明確第幾行
(2).:表示當前行
(3)#,#:“#”表示行數,明確從第幾行至第幾行
(4)#,+#:“#”表示行數,明確從第幾行開始向后數幾行
-
5,+9:從第五行開始,向后數九行
-
.,$-1:從當前行開始至倒數第二行
(5)%:表示所有行
(6)/pattern/:表示從光標所在處開始向文件尾部至第一次被模式所匹配的行
(7)/pattern1/,/pattern2/:表示從被/patter1/匹配的行開始至被/pattern2/匹配的行
2、查找
(1)/pattern:從當前光標所在行處向文件尾部(或者向文件首部)查找能夠被/pattern所匹配到的所有字符串
-
n:下一個,與命令方向相同
-
N:上一個,與命令方向相反
3、替換
【格式】
-
s@查找內容@替換內容@修飾符
【知識】
-
查找內容:支持正則表達式
-
替換內容:不支持正則表達式,可以使用/1或&來引用“查找內容”中使用正則表達式所匹配到的內容
-
修飾符:
-
i:忽略字母大小寫
-
g:全局替換,默認情況下,只替換一次查找到的內容
【示例】
-
復制/etc/grub2.cfg文件至tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中以空白字符開頭的行的行首的空白字符;
-
%s@^[[:space:]]\+@@
-
復制/etc/rc.d/init.d/functions文件至tmp目錄中,用查找替換命令為/tmp/functions文件的每個以空白字符開頭的行的行首加上#;
-
%s@^[[:space:]]\+[^[:space:]]@#&@g
-
為/tmp/grub2.cfg文件的前三行的行首加上#號;
-
1,3s@^@#&@
-
將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換為enabled=1,所有gpgcheck=0替換為gpgcheck=1;
-
%s@\(enabled\|gpgcheck\)=0@&=1@g
五、如何定義vim的特性
(一)配置文件
1、全局配置文件:/etc/vimrc
2、個人配置文件:~.vimrc
(二)定義特定的方式?
1、直接在末行模式下即可完成對vim的特性的定義,但是僅對當前vim進程生效
2、在配置文件(全局OR個人)中定義vim的特性,永久生效
(三)常用特性定義
1、行號
(1)顯示行號::set number,可簡寫為“nu”
(2)取消行號::set monumber,可簡寫為“nonu”
2、高亮顯示括號
(1)開啟::set showmatch,可簡寫為“sm”
(2)關閉::set noshowmatch,可簡寫為“nosm”
3、自動縮進
(1)開啟::set autoindent,可簡寫為“ai”
(2)關閉::set noautoindent,可簡寫為“noai”
4、高亮搜索
(1)開啟::set hlsearch,可簡寫為“hls”
(2)關閉::set nohlsearch,可簡寫為“nohls”
5、語法高亮
(1)開啟:syntax on
(2)關閉:syntax off
6、忽略字符大小寫
(1)開啟::set ignorecase,可簡寫為“ic”
(2)關閉::set noignorecase,可簡寫為“noic”
7、設置tab縮進為4個字符
(1)設置::set softtabstop=4
8、獲取幫助信息
(1)全部::help
(2)指定::help subject,如:help ic
原創文章,作者:Tornado,如若轉載,請注明出處:http://www.www58058.com/55388