Linux 系統 vim文本編輯器
vim編輯器:
文本編輯器:
文本:純文本,ASCIItext;
文本編輯種類:
行編輯器:sed
全屏編輯器:nano 、vi、vim;
圖形編輯器:
gedit:一個簡單的圖形編輯器;
gvim:vim編輯器的圖形版本;
vim模式化的編輯器:
基本模式:
命令模式;
輸入模式;
末行模式;
vim使用語法:
vim [options] [file ..]
+#:打開文件后,直接讓光標處于第#行的行首;
例:vim +10 file
+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首;
例:vim + /root /etc/passwd
+:打開文件后,直接讓光標處于最后一行的行首;
例:vim + file
-b:以二進制方式打開文件;
例:vim –b file
-d:多個文件比較,查看是否有差異;
例:vim -d file1 file2……
-m:只讀方式打開文件;
例:vim -m file
注:如果vim編輯的文件已存在,文件被打開并顯示內容;
如果vim編輯的文件不存在,當第一次編輯存盤保存時創建它;
模式轉換:
命令模式—–>輸入模式
a:在當前光標位置之后一個字符插入內容;
A:在光標所在行的行尾插入內容;
i:在當前光標位置插入內容;
I:在當前光標所在行的行首插入內容;
o:在光標所在行的后面插入一個新行;
O:在光標所在行的前面插入一個新行;
輸入模式——->命令模式
按ESC鍵即可;
命令模式——->末行模式
按shift +:組合鍵即可;
:1,10d(末行模式中輸入1,10d即可刪除10行內容)
末行模式——->命令模式
按ESC鍵即可;
退出文件編輯:
注:此操作需要切換至末行模式中操作;
:q 只是查看文件內容而未修改可以執行q退出;
:q! 已經修改文件內容卻沒有保存,可以執行q!強制退出,不保存此前編輯內容;
:wq 保存并退出;
:w 保存 :q 退出
:x 保存并退出,等價于wq;
: w /path/to/somefile 將文件另存為指定的文件路徑中;
例: :w /testdir/f1
:r /etc/fstab 將/etc/fstab文件內容讀取到當前文件中;
:!command 可以使用命令;
:r!command 將命令查找的內容讀取到當前文件中;
命令模式退出:
ZZ :保存退出;
ZQ :不保存退出;
命令模式光標跳轉:
字符間跳轉:
h:左、 j:下、k:上、l:右
#{h、j、k、l}:跳#個字符;
單詞間跳轉:
w:跳到下一個單詞詞首;
e:跳到下一個單詞的詞尾;
b:跳到當前單詞或前一個單詞的的詞首;
#{w、e、b}跳#個單詞;
行內跳轉:
^:跳轉到行首第一個非空白字符;
0:跳轉到絕對行首;
$:跳轉到絕對行尾;
行間跳轉:
1G或gg:跳轉到第一行;
G:跳轉到最后一行;
#G:直接跳轉到第#行;
句子間跳轉:
( :跳到上一句;
) :跳到下一句;
段落間跳轉:
{:跳到上一段落;
}:跳到下一段落;
文件內容查找:
/string :按/鍵可以輸入指定的字符串,從當前光標處開始向后進行查找,完成查找內容后可以按N、N鍵在不同查找結果中選擇。
翻屏操作:
ctrl+f:向文件尾部翻一屏;
ctrl+b:向文件首部翻一屏;
ctrl+d:向文件尾部翻半屏;
ctrl+u:向文件首部翻半屏;
vim的編輯命令:
刪除單個字符命令:
x:刪除光標所在處得字符;
#x:刪除光標處后#個字符;
xp:交換光標所在處的字符與其后的字符的位置;
替換命令
r:替換光標所在處的字符;(按r鍵再按想要替換成的字符)
刪除命令:
d:刪除命令,可結合光標跳轉字符操作,實現范圍刪除;
d$:刪除當前光標處當行尾的所有字符;
d^:刪除當前光標處到行首的所有字符;
dd:刪除光標所在的行;
#dd:刪除光標處開始的#行內容;
粘貼命令:
p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方,否則,則粘貼至當前光標所在處的后方;
P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方,否則,則粘貼至當前光標所在處的前方;
復制命令:
y:復制結合光標跳轉字符使用,復制跳轉范圍內的字符;
y$ y^ y0 yw ye yb
yy:復制一整行的內容;
#yy:復制從光標處開始的#行內容;
100 i zheng [ESC] 粘貼zheng100次;
改變命令:
修改結合光標跳轉字符使用,修改跳轉范圍內的字符;
w、e、b、^、$、0
所謂的修改就是先刪除,在轉換為輸入模式;
cc:刪除光標所在處的整行而后跳轉為輸入模式;
#cc:刪除光標所在行后的#行內容跳轉為輸入模式;
vim可視化模式:
v:選中光標走過的字符;
V:選中光標走過的行;
注:經常結合編輯命令d、c、y使用;
撤銷編輯:
u:撤銷此前的操作;
#u:撤銷最近的#次操作;
撤銷此前的撤銷操作:
ctrl+r
vim的末行模式:
末行模式:內建的命令行接口;
地址定界:
:start_pos[,end_pos]
#:特定的第#行,例如5即第5行;
.:表示當前行;
$:表示最后一行;
#,#:指定行范圍,左側為起始行,右側為結束行;
#,+#:指定范圍,左側為起始行絕對編號,右側為相對左側行號的偏移量;例如:3,+7 表示從第3行開始后再加7行,一共為8行;
%:表示全文;
/pattern:從光標所在處起始向文件尾部第一次被模式匹配到的行;
/pattern1/,/pattern2/:從光標所在處起始,第一次有pattern1匹配到的行開始,至第一次有pattern2匹配到的行結束之間的所有行;
w /patn/to/somefile:將范圍內的文本保存至指定的文件中;
r /path/from/somefile :將指定的文件中的文本讀取并插入至指定位置;
文件內容查找:
/pattern:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;
/pattern:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;
n:按n鍵可以移動到下一個查找結果;
N:按N鍵可以移動到上一個查找結果;
查找并替換:
sub 或 s :末行模式的命令;
使用格式:
s/要查找的內容/替換為的內容/修飾符;
要查找的內容:可以使用正則表達式;
替換為的內容:不能使用正則表達式,但可以引用;
如果“要查找替換的內容”部分在模式中使用分組符號,在“替換為的內容”中使用后向引用;直接引用查找模式匹配到的全部文本;
修飾符:
i:替換時忽略大小寫;
g:全局替換,意味著一行中如果匹配到多次,則均替換;
分隔符替換:
可以把分隔符替換為其它非常用字符;
例如:s@@@ 或 s###
例:
復制/etc/grub2.cfg文件至/testdir目錄中,用查找替換命令刪除/testdir/grub2.cfg文件中以空白字符開頭的行的行首的空白字符;
:%s@^[[:space:]]\+@@
復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/testdir/functions文件的每個以空白字符開頭的行的行首加上#;
:%s@^[[:space:]]@#@
為/testdir/grub2.cfg文件的前三行的行首加上#號;
:1,3s@^@#@
將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換成enabled=1,所有的gpgcheck=0替換成gpgcheck=1;
:%s@\(enabled\|gpgcheck\)=0@\1=1@g
vim的多文件功能:
多文件:
vim file1 file2 file3………………..
在文件間切換:
:next 切換到下一個文件;
:prev 切換到上一個文件;
:first 切換至第一個文件;
:lest 切換至最后一個文件;
退出所有文件:
:wqall 保存所有文件并退出;
:wall 保存所有文件;
:qall 退出所有文件;
多文件窗口分隔:
vim [options] file1 file2 file3…………..
-o :水平分隔多個文件;
-O :垂直分隔多個文件;
單個文件多窗口分隔:
命令模式下操作:
ctrl+w ,s split 水平分隔;
ctrl+w ,v vertical垂直分隔;
ctrl+w ,q 取消相鄰的窗口;
ctrl+w ,o 取消全部窗口;
:wqall 保存并退出所有;
:wall 保存所有;
:qall 退出所有;
定制vim的工作特性:
注意:在末行模式下的設定,僅對當前vim進程有效;
永久有效設置:
全局:/etc/vimrc
用戶個人:~/.vimrc
行號:
顯示:set number,簡寫 set nu
取消顯示: set 弄number 簡寫 set nonu
括號匹配:
匹配:set showmatch 簡寫 set sm
取消匹配:set noshownmatch 簡寫 set nosm
啟用字符縮進功能:
啟用:set ai
禁用:set noai
高亮文本搜索:
啟用:set hlsearch
禁用:set nohlsearch
語法高亮:
啟用:syntax on
禁用:syntax off
忽略字符大小寫
啟用:set ic
禁用:set noic
獲取幫助:
:help
:help subject
原創文章,作者:zhengyibo,如若轉載,請注明出處:http://www.www58058.com/35750