2017-08-03 20:26:59 @唯愿此心无怨尤linux
学习linux之文本编辑器vim正则表达式
今天对vim中一些经常使用的基本功能进行总结。vim
vim(visual interface improved)windows
三种主要模式:app
命令模式:默认模式,移动光标,剪切/粘贴文本dom
插入模式(编辑模式):修改文本编辑器
扩展命令模式:保存、退出等学习
三种模式之间的转换:测试
vim打开文件经常使用方式:url
-m 只读方式打开文件
-b 二进制打开文件
-d file1 file2 打开多个文件
直接打开文件,如文件不存在则建立
经常使用功能总结:
1、文件的保存以及退出
扩展模式:
q退出
q!强制退出
w保存
wq或x保存并退出
wq!或x!当文件对当前用户权限为read-only时,能够强制保存并退出(仅限root和当前文件的owner)
命令模式:
ZZ:保持而且退出
ZQ:不保存而且退出
2、所编辑的文本中一些经常使用跳转操做命令
ctrl +f 向下翻一屏
ctrl +b 向上翻一屏
ctrl +d 向下翻半屏
ctrl +u 向上翻半屏
gg:跳到首行
H:跳到当前页的首行
L: 跳到当前页的尾行
M: 跳到当前而的中间行
hijk:左右下上
3、文本删除操做经常使用命令
d$: 删除到行尾
d^:删除到非空行首
d0:删除到行首
dw:从光标所在处删除到单词尾
de:从光标所在处删除到单词尾
db:从光标所在处删除到单词头
dd: 删除光标所在的行
#dd:多行删除 ,其中#为所要删除行的数字
4、文本复制操做经常使用命令
y$:复制到行尾
y0:复制到行首
y^:复制到非空行首
yy:复制当前行
#yy: 复制多行
ps:其实用鼠标选中须要复制内容便可
5、文本粘贴操做经常使用命令
p:缓冲区存的若是为整行,则粘贴当前光标所在行的下方;不然,则粘贴至当前光标所在处的后面
P:缓冲区存的若是为整行,则粘贴当前光标所在行的上方;不然,则粘贴至当前光标所在处的前面v
6、文本搜索替换经常使用命令
s/要查找的内容/替换为的内容/修饰符
其中修饰符为:
i:忽略大小写
g:全局替换
gc:全局替换,每一次替换前询问时否进行替换
ps:关于全局替换的问题,能够在s前加%,如%s/aaa/bbb/g,该命令表示在全文搜索aaa,而且把全部aaa替换为bbb;若这里没有%或者没有g,只会替换每一行所搜索到的第一个aaa。
查找:/查找的内容
ps以上都支持正则表达式,例子以下:
复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号
解决方法1 %s/^[[:spacge:]]/# /g
解决方法2 %s/^\([[:space:]]\)/#\1/g
解决方法3 %s/^[[:space:]]/#&/
7、撤销更改以及重复操做经常使用命令
#u:撤销以前#次更改
U:撤消光标落在这行后全部此行的更改
:e! :恢复到上次保存该文件的状态
按Ctrl - r重作最后的“撤消”更改
. 重复前一个操做
n.重复前一个操做n次
位置参数介绍以及使用
$1-$9 按照打开须要编辑的文件依次传入数据,例:vim test.txt 3,若文件中有$1,则直接赋值为3,若没有,则忽略
$0 表示文件名字
$10 及其之后的位置参数要用{},不然会被认为是$1和0,表示为${10}
位置参数的应用:
在每一次写脚本时,为了规范,都须要在开头写一些注释,好比做者名字,日期等等等,其次在每一次写完
脚本都须要进行一些操做,好比给予执行权限等等,那么咱们利用位置参数能够简化这些操做
测试截图以下,当我建立一个名字为test9.sh时,效果及其代码以下:
Vim配置一些基本功能
全局设置的配置文件:(已存在)/etc/vimrc
本用户的配置文件:(不存在,须要本身建立)~/.vimrc
一、行号
二、括号成对匹配
三、自动缩进
四、高亮搜索
五、语法高亮
六、忽略字符大小写
七、设置文件的格式
八、设置文本的宽度