vi:Visueral Interface 文本编辑器
文本编辑种类
行编辑器:sed
全屏编辑器:nano,vi
VIM -Vi IMprowed
使用
vim:模式化的编辑
基本模式:
编辑模式:命令模式
输入模式:
末行模式:
内置的命令行接口
打开文件:
# vim [OPTION]…. FILE…..
+#:打开文件后,直接让光标处于第#行的行首
vim的编辑命令:
字符编辑:
x: 删除光标处的字符;
#x: 删除光标处起始的#个字符;
xp: 交换光标所在处的字符及其后面字符的位置;
替换命令(r, replace)
r: 替换光标所在处的字符
删除命令:
d: 删除命令,可结合光标跳转字符,实现范围删除;
dd: 删除光标所在的行;
#dd:多行删除;
粘贴命令(p, put, paste):
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面;
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面;
复制命令(y, yank):
y: 复制,工作行为相似于d命令;
yy:复制行
#yy: 复制多行;
改变命令(c, change)
c: 修改
编辑模式 –> 输入模式
cc:删除并输入新内容
#cc:
其它编辑操作
可视化模式:
v: 按字符选定
V:按行行定
Note:经常结合编辑命令;
d, c, y
撤消此前的编辑:
u(undo):撤消此前的操作;
#u: 撤消指定次数的操作;
撤消此前的撤消:
Ctrl+r
重复前一个编辑操作:
. 翻屏操作:
Ctrl+f: 向文件尾部翻一屏;
Ctrl+b: 向文件首部翻一屏;
Ctrl+d: 向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
vim自带的练习教程:
vim编辑器
j向下字符k向上一个字符l 向右移动一个字符h向左移动一个字符
b 向右移动一个单词
输入模式–>编辑模式
ESC
编辑模式–>末行模式
:
末行模式–>编辑模式
ESC
输入–>编辑–>末行
退出文件:
:q! 不保存退出
:wq 保存退出
:x 保存退出
:wq! 强制保存退出
编辑模式保存退出:ZZ
单词间移动:
w: 下一个单词词首
e: 当前单词或下一个单词词尾
b: 当前单词或前一个单词词首
#{w|e|b}:
行内移动:
^: 行首第一个非空白字符
0:绝对行首
$: 绝对行尾
dd: 删除光标所在行
d: 删除命令
p: paste, 粘贴
y: yank, 复制
撤消此前的撤消操作:Ctrl+r
翻屏:
Ctrl+f: 向文件尾部翻一屏
Ctrl+b: 向文件首部翻一屏
测试表达式的类别:
数值比较
字符串测试
文件测试:
存在性测试
-a FILE
-e FILE: 文件存在性测试,存在为真,否则为假;
存在性及类别测试
-b FILE:是否存在且为块设备文件;
-c FILE:是否存在且为字符设备文件;
-d FILE:是否存在且为目录文件;
-f FILE:是否存在且为普通文件;
-h FILE 或 -L FILE:存在且为符号链接文件;
-p FILE:是否存在且为命名管道文件;
-S FILE:是否存在且为套接字文件;
文件权限测试:
-r FILE:是否存在且可读
-w FILE: 是否存在且可写
-x FILE: 是否存在且可执行
文件特殊权限测试:
-g FILE:是否存在且拥有sgid权限;
-u FILE:是否存在且拥有suid权限;
-k FILE:是否存在且拥有sticky权限;
文件大小测试:
-s FILE: 是否存且非空;
文件是否打开:
-t fd: fd表示文件描述符是否已经打开且与某终端相关
-N FILE:文件自动上一次被读取之后是否被修改过;
-O FILE:当前有效用户是否为文件属主;
-G FILE:当前有效用户是否为文件属组;
双目测试:
FILE1 -ef FILE2: FILE1与FILE2是否指向同一个设备上的相同inode
FILE1 -nt FILE2: FILE1是否新于FILE2;
FILE1 -ot FILE2: FILE1是否旧于FILE2;
组合测试条件:
逻辑运算:
第一种方式:
COMMAND1 && COMMAND2
COMMAND1 || COMMAND2
! COMMAND
[ -e FILE ] && [ -r FILE ]
第二种方式:
EXPRESSION1 -a EXPRESSION2
EXPRESSION1 -o EXPRESSION2
! EXPRESSION
必须使用测试命令进行;
原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/76284