vim文本编辑及文件查找应用2

vim编辑器:
vim末行模式:
内建的命令行接口

(1)地址定界
:start_pos[,end_pos]
#:特定的第#行,例如5即第5行
.:当前行
.,+#:当前行,加#行的行范围
$:最后一行
#,#:指定行范围,左侧为起始行,右侧为结束行;
#,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧秸的偏移量;例如:3,+7
.,$-1:当前行到倒数第二行
1,$:表示全文
%:表示全文
/pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行
/pattern/,$:从光标所在处起始向文件尾部第一次被模式所匹配到的行至文件尾部
/pat1/,/pat2/:从光标所在处起始向文件尾部第一次被第一个模式所匹配到的行至第一次被第二个模式所匹配到的行结束之间的所有行

可同编辑命令一同使用,实现编辑操作:
d
y
c

w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;
r /PATH/TO/SOMEFILE:将指定的文件中的文本读取并插入至指定位置;

(2)查找
/PATTERN:从当前光标所在处文件尾部查找能够被当前模式匹配到的所有字符串;
?PATTERN:从当前光标所在处文件首部查找能够被当前模式匹配到的所有字符串;
n:下一个,与命令方向相同;
N:上一个,与命令方向相反;

(3)查找并替换
s:末行模式的命令:使用格式
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用正则表达式;
替换为的内容:不能使用正则表达式,但可以引用;
如果“要查找的内容”部分在模式中使用分组符号:在“替换为的内容”中使用后向引用;
直接引用查找模式匹配到的全部文本,要使用&符号;
修饰符:
i:忽略大小写
g:全局替换,意味着一行中如果匹配到多次,则均替换

可把分隔符替换为其它非常用的符号:
s@@@
s###

示例:
把全文中的以t开头的单词都改成T开头的单词
:%s@\<t\([[::alpha]]\+\)\>@T\1@g
把全文中的以t开头的单词都加上er
:%s@\<t[[:alpha:]]\+\>@&er@g
删除全文中的以#开头的行中的#
:%s@^#@@


vim的多文件功能:
同时打开多个文件
vim file1 file2 ……
大文件间切换:
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个

退出所有文件:
:wqall 保存并退出所有文件
:wall 保存所有文件
:qall 退出所有文件

多窗口打开多个文件:
-o:水平分割窗口显示不同文件,按ctrl + w 可以在不同文件间切换
-O:垂直分割窗口显示不同文件,按ctrl + w 可以在不同文件间切换
在窗口间切换:ctrl + w , ARROW
注意:单个文件也可以分割成多个窗口进行查看
ctrl+w,s:水平分割窗口
ctrl+w,v:垂直分割窗口


定制vim的工作特性:
注意:在末行模式下的设定,仅对当前vim进程有效
永久有效:
全局:/etc/vimrc
用户个人:~/.vimrc ##这个文件可能不存在,需要自己创建
~]# ll -a | fgrep vim
-rw------- 1 root root 5378 Jun 3 13:52 .viminfo
~]# touch ~/.vimrc && echo set nu > ~/.vimrc

1、行号
启用:set number,简写为set nu
禁用:set nonumber,简写为set nonu
2、括号匹配高亮
启用:set showmatch,简写为set sm
禁用:set nosm
3、自动缩进
启用:set autoindent,简写为set ai
禁用:set noai
4、高亮搜索
启用:set hlsearch
禁用:set nohlsearch
5、语法高亮
启用:syntax on
禁用:syntax off
6、忽略字符大小写
启用:set ic
禁用:set noic


获取帮助:
:help
:help subject


bash脚本编程之算术运算
+,-,*,**,%
算术运算格式:
(1) let VAR=算术运算表达式
(2) VAR=$[算术运算表达式]
(3) VAR=$((算术运算表达式))
(4) VAR=$(expr $ARG1 $OP $ARG2)
注意:乘法符号在有些场景中需要使用转义符

posted @ 2019-10-28 21:39  jianchen013  阅读(172)  评论(0编辑  收藏  举报