昨天在做练习,巩固之前的知识。
vim编辑器
文本编辑器,字处理器
ASCII
nano, sed
vi: Visual Interface
vim: VI iMproved
全屏编辑器,模式化编辑器
vim模式:
编辑模式(命令模式)
输入模式
末行模式
模式转换:
编辑-->输入:
i: 在当前光标所在字符的前面,转为输入模式;
a: 在当前光标所在字符的后面,转为输入模式;
o: 在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;
输入-->编辑:
ESC
编辑-->末行:
:
末行-->编辑:
ESC, ESC
二、关闭文件
1、末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存退出,强行退出
:w 保存
:w! 强行保存,对于只读文件来说,管理员可以强行保存
:wq -> :x 同一个意思
2、编辑模式下退出
ZZ:保存并退出
三、移动光标
1、逐字符移动:
h:左
l:右
j:下
k:上
#h:移动#个字符
2、以单词为单位移动
w:移至下一个单词的词首
e:跳到当前单词或下一个单词的词尾
b:跳到当前单词或前一个单词的词首
#w:
3、行内跳转:
0:绝对行首
^:行首的第一个空白字符
$:绝对行尾
4、行间跳转
#G:跳转至第#行
G:最后一行
末行模式下,直接给出行号即可
5、翻屏
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
五、删除单个字符
x:删除光标所在处的单个字符
#x:删除光标所在处及向后的共#个字符
六、删除命令:d
d命令跟跳转命令组合使用;
#d跳转符:删除跳转符范围内的#个
#dw,#de,#db
dd:删除当前光标所在行
#dd:删除包括当前光标所在行在内的#行
.:标识当前行
$:最后一行
+#:向下的#行
$-1 $-10
七、粘贴命令:p
p:如果删除或复制的为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;(大写P)
P:如果删除或复制的为整行内容,则粘贴至光标所在行的上方,...,则在前面(小写p)
八、复制命令:y
用法同d命令
九、修改:先删除内容,再转换为输入模式
c:同d命令
十、替换:r
R:替换模式
十一:撤销编辑操作,undo
u:撤销前一次的编辑操作
连续u命令可撤销此前的n次操作
#u:直接撤销最近#次编辑操作
撤销最近一次的撤销操作:Ctrl+r
十二、重复前一次编辑操作
.
十三、可视化模式
v:按字符选取
V:按矩形选取
十四、查找
/PATTERN:从文件首部开始查找
?PATTERN:当前光标至首部查找
n:下一个
N:上一个
十五、查找并替换
在末行模式下使用s命令
addr1,addr2s@@@
当前行:.
$-1:倒数第二行
%:表示全文
十六、使用vim编辑多个文件
vim file1 file2
末行模式:next prev last first
:qa:退出所有文件
十七、分屏显示一个文件
Ctrl+w,s:水平拆分窗口
Ctrl+w,v:垂直拆分窗口
在窗口间切换光标
Ctrl+w,ARROW
:qa:关闭所有窗口
十八、分窗口显示多个文件
vim -o file1 file2:水平分割显示
-O:垂直分割显示
十九、将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
:w
:addr1,addr2w /path/to/somefile
二十、将另外一个文件的内容填充在当前文件中
:r /path/to/somefile 填充在当前光标下
二十一、和shell交互
:! COMMAND
二十二、高级话题
1、显示或取消显示行号
:set number/nu
取消:
:set nonu(前面加no)
2、显示忽略或区分字符大小写
:set ingorecast(ic)
3、设定自动缩进
:set autoindent(ai)
4、查找到的文本高亮或取消
:set hlsearch
:set nohlsearch
5、语法高亮
:syntax on(off)
二十三、配置文件
/etc/vimrc(全局)
~/.vimrc(用户的配置文件)
测试:
整数测试:
-le
-lt
-ge
-gt
-eq
-ne
字符测试:
==
!=
>
<
-n:是否为空
-z:是否不为空
文件测试:
-e
-f
-d
-r
-w
-x
组合测试条件
-a:与
-o:或
!:非
if [ $# -gt 1 -a $# -le 3 ]
if [ $# -gt 1 ] && [ $# -le 3]