vim末行模式:
內建的命令行接口
(1)地址界定
:start_pos[,end_pos]
#: 特定的第#行,例如5即第5行;
. :當前行;
$:最后一行;
#,#:指定行范圍,左側為起始行,右側為結束行;
#,+#:指定行范圍,左側為起始行絕對編號,右側為相對左側行的偏移量,例如:3,+7
. , $-1 從當前行倒數最后一行
1,$
%:全文
/pattern:從光標所在處起始向文件尾部第一次被模式所匹配到的行;
/first/,$
/pat1/,/pat2/:從光標所在處起始,第一次有pat1匹配到的行開始,至第一次有pat2匹配到的行解釋直接的所有行;
可同編輯命令一同使用,實現編輯操作:
d
y
c
w /PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中;
r /PATH/FROM/SOMEFILE:將指定的文件中的文本讀取并插入至指定位置;
(2)查找
/ pattern:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;
?PATTERN:從當前光標所在處向文件前部查找能夠被當前模式匹配到的所有字符串;
n:下一個,與命令方向相同;
N:上一個,與命令方向相反;
(3)查找并替換
s:末行模式的命令;使用格式:
s/要查找的內容/替換為內容、修飾符
要查找的內容:可使用正則表達式:
替換為的內容:不能使用正則表達式,但可以引用;
如果”要查找的內容“部分在模式中使用分組符號:在”替換為的內容“中使用后向引用;
直接引用查找模式匹配到全部文本;使用&符號
修飾符:
i :忽略大小寫;
g:全局替換,意味著一行中如果匹配到多次,則均替換:
可把分隔符替換為其他非常字符:
s@@@
s###
示例:%s\<t\([[:alpha:]]\+\)>@T\1@g
%s@\<t[[:alpha:]]\+\>@&er@g
練習:1、復制/etc/grub2.cfg文件至/tmpz目錄中,用查找替換命令刪除/tmp/grup1.cfg文件中一空白字符開頭的行的行首的空白字符;
%@^[[:space:]]\+@@
2、復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/tmp/functions文件的每個以空白字符開頭的行的行首加上#;
%s@^[[:space:]]\+[^[:space:]]@#&@g
3、為/tmp/grub2.cfg文件的前三行的行首加上#號;
4、將/etc/yum/repos.d/Centos-Base.repo文件中所有的enabled=0替換為enabled=1,所有gpgcheck=1;
%s\(enabled\|gpgcheck\)=0@1=1@g
vim的編輯功能:
多文件:
vim FILE1 FILE2…
在文件間切換:
:next 下一個
:prev 上一個
:first 第一個
:last 最后一個
退出所有文件:
:wqall 保存所有文件并退出;
:wall 保存所有文件
:qall 退出所有文件
多窗口:
-o:水平分割窗口
-O:垂直分割窗口
在窗口間切換:Ctrl+w,ARROW
注意:單個文件也可以分割為多個窗口進行查看:
Ctrl+w,s:水平分割窗口
Ctrl+w.v:垂直分割窗口
定制vim的工作特性:
注意:在末行模式下的設定,僅對當前vim進程有效:
永久有效:
全局:/etc/.vimrc
用戶個人:~/.vimrc
1、行號
顯示:set number,簡寫為set nu
取消為:set nomber 簡寫為set nonu
2、括號匹配高亮
匹配:set showmatch, set sm
取消:set nosm
3、自動縮進
啟用:set ai
禁用:set noai
4、高亮搜索
啟用:set hlsearch
禁用:set nohlsearch
5、語法高亮
啟用:syntax on
禁用:syntax off
6、忽略字符大小寫
啟用:set ic
禁用:set noic
7、獲取幫助:
:help
: help subject
課外作業:如何設置tab鍵縮進4個字符;
bash 腳本編程之算術運算
+,-,*,/,**,%
(1)let VAR=算術運算表達
(2)VAR=$[算術運算表達式]
(3)VAR=$((算術運算表達式))
(4)VAR=$(expr $arg1 $OP $arg2)
注意:乘法符號在有些場景中需要使用轉義符;
原創文章,作者:shadow,如若轉載,請注明出處:http://www.www58058.com/64543