vim编辑器及文件测试
vim编辑器
在Linux中,使用文本文件来保存配置文件
1、几种基本的模式:
命令模式:键盘上输入的任何字符都作为编辑命令来解释:
命令包括编辑保存,移动光标,页面滚动,字符,字或行的删除、移动、复制。
(命令方式下的所有命令并不在屏幕上显示出来,也不需要按Enter键确认命令执行)
不管用户处于何种工作模式下,按Esc键就可以使vim进入命令模式
插入模式:只能在该模式下进行文本输入,且输入的任何字符都会被vim当做文件内容保存起来,并将其显示在屏幕上
末行模式:vim的内置的命令行接口,执行vim内置命令
在这三种工作模式之间进行切换就可以实现文本编辑的功能
末行命令执行时需要按Enter键确认,执行完毕自动回到命令模式
2、模式之间的切换:
命令模式-->插入模式(从编辑模式进入到输入模式)
i:当前光标所在处输入内容
I: 在当前光标所在行的行首
a:在当前光标所在处的后面
A:在当前光标所在行的行尾输入
o:在光标所在行的下方新增一行空白行输入
O:在光标所在行的上方新增一行空白行输入
插入模式-->命令模式(从输入模式进入编辑模式)
ESC
命令模式-->末行模式(末行模式只能从编辑模式进入)
:
末行模式-->命令模式(末行模式进入编辑模式)
ESC,ESC(连按两次)
3、vim命令的使用格式
vim [options] /path/to/file...
退出:(一般在末行模式下进行)
:q!强制退出,不保存并退出(中间没有空格)【命令之间没有空格】
:wq 保存修改并退出
:x,保存并退出
编辑模式下的退出
编辑模式:ZZ,保存退出
打开:(一次可以打开多个);然后在末行模式下进行切换,
多文件跳转
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
:qall 退出所有的文件
:wqall 修改并退出多个文件
分隔窗口打开多个文件:
-o:水平分隔
ctrl+w,左右箭头
进入下面的窗口:Ctrl+w,向下的箭头
-O:垂直分隔
ctrl+w,上下箭头
进入右边的窗口 Ctrl+w,向右的箭头
+[#]:打开文件后在第#号行首
+:打开文件后在最后一行
光标移动:
单字符移动:
h:左
l:右
j:下
k:上
可以和数字组合(数字在前,字母在后)
单词间移动:
w:调至下一个单词的词首
b:当前或前一个的词首
e:当前或下一个词的词尾
行内移动:
0:绝对行首 (此处是数值零)
^:第一个非空白字符(行首锚定符)
$:绝对行尾 (行尾锚定符)
句子间移动:
):上一句
(: 下一句
段落间移动:
}:上一段
{:下一段
行间移动:
#G:第几行
G:最后一行
1G:第一行
编辑操作:
x:删除光标所在处的字符
#x:删除光标所在处向后的#个字符
r:替换光标所在处的字符
d:删除命令
结合光标跳转命令使用
%:全部删除
dd:删除一行
#dd:删除所在行后的#行
末行模式:范围定界
start,end:可以使用绝对定界,也可以使用相对定界
.:表示当前行
$:最后一行
.,$-2:倒数第3行
/pat1(模式)/,/pat2/:起始处为光标所在行
从第一次被模式1匹配到的行开始,到第一次被模式2匹配到的行结束,中间的所有行
c:改变(替换)
跟d一样操作(最后转换成输入模式)
y:yank,复制
跟d一样操作
p:paste 粘贴
复制或删除的是整行
(小写)p:当前行的下一行
(大写)P:当前行的上一行
复制或删除的为非整行
(小写)p:粘贴在光标所在字符的后面
(大写)P: 粘贴在光标所在字符的前面
撤销编辑:
u:undo
#u:最近50次操作
撤销此前的撤销操作:
ctrl+r
重复执行此前的命令:
.
翻屏:
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
Enter:下一行
k :上一行
查找:
/keyword
?keyword
n:
N:
支持正则表达式
:set nohlsearch 关闭高亮显示,对当前shell有效
4、vim的可视化模式
编辑模式:
v: 按照光标走过的区域选择
V:选择矩形块
打开多个文件,分窗口:
vim -o
vim -O
Ctrl+w, 上下箭头
分割当前窗口(平均分割):
Ctrl+w, s
Ctrl+w, v
窗口属性的定义:
:set nu : 显示行号
:set nonu : 不显示行号
:set ai 自动缩进
:set noai
:set ic 忽略大小写
:set noic
:set sm (show match)显示匹配(对应)的括号
:set nosm
语法高亮:
:syntax on
:syntax off
搜索高亮:
:set hlsearch
:set nohlsearch
5、vim的配置文件:
全局:/etc/vimrc
个人:~/.vimrc
查找替换:
:地址定界s/查找模式/替换为的内容/gi
g:全局替换(global)
i:不区分大小写(ignore-case)
:地址定界s@查找模式@替换为的内容@gi
&:用于在替换为的内容部分中引用前面匹配到的所有内容
bash的文件测试
[ 测试文件 ]
[[ 测试文件 ]]
test 测试文件
单目测试:
-e /path/to/file :测试文件是否存在
-a /path/to/file :测试文件是否存在
-f /path/to/file: 测试是否为普通文件
-d /path/to/somefile: 测试是否为目录文件
-b /path/to/somefile : 测试文件是否存在并且是否为一个块设备文件
-c /path/to/somefile : 测试文件是否存在并且是否为一个字符设备文件
-h|-L /path/to/somefile : 测试文件是否存在并且是否为符号链接文件
-p /path/to/somefile : 测试文件是否存在并且是否为管道文件:
-S /path/to/somefile : 测试文件是否存在并且是否为套接字文件:
-r /path/to/somefile: 测试其有效用户是否对此文件有读取权限
-w /path/to/somefile: 测试其有效用户是否对此文件有写权限
-x /path/to/somefile: 测试其有效用户是否对此文件有执行权限
-s /path/to/somefile: 测试文件是否存在并且不空
双目测试:
file1 -nt file2 :测试file1是否比file2更新一些
file1 -ot file2 :测试file1是否比file2更老一些
带配置文件的脚本:
在脚本中使用source命令——倒入别的文件(即将另外的文件读入)
写脚本时可以使用配置文件
配置文件只有存在,且当前用户拥有读权限才能够将其载入进去
[ -r 配置文件 ] && source 配置文件