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.178linux.com/64543