工作模式
命令模式:是主要使用快捷键的模式,是我们后面学习的重点。命令模式想要进入输入模式,可 以使用以下的方式
输入模式:主要用于文本编辑,和记事本类似,输入数据就好。
:w 保存不退出
:w 新文件名
把文件另存为新文件
:q 不保存退出
:wq 保存退出
:! 强制
:q! 强制不保存退出,用于修改文件之后,不保存数据退出。
:wq! 强制保存退出,当文件的所有者或者root用户,对文件没有写权限的时候,强制写入数据使用
删除字母
x 删除单个字母
nx 删除n个字母 n是数字,如果打算从光标位置删除连续的10个字母,可以使用“10x”即可。
删除整行或剪切
dd 删除单行
ndd 删除多行
:n1,n2d 删除指定范围的行
删除整行或多行,这是比较常用的删除方法。这里的dd快捷键既是删除,也是剪切。删除内容 放入了剪切板,如果不粘贴就是删除,如果粘贴就是剪切。
粘贴方法如下:
p 粘贴到光标后
P(大) 粘贴到光标前
复制
yy 复制单行
nyy 复制多行
复制之后的粘贴,依然可以使用p键或P(大)键
撤销
u 撤销
ctrl+r 反撤销
“u”键能一直撤销到文件打开时的状态,类似Windows下“ctrl+z”键的作用。 “ctrl+r”能一直反撤销到最后一次操作状态,类似Windows下“ctrl+y”键的作用。
替换
r 替换光标所在处的字符
R 从光标所在处开始替换字符,按ESC结束
“r”键替换单一字符,不用进入输入模式,实际使用时,比进入输入模式删除后再修改,要方 便。
查找
/查找内容 从光标所在行向下查找
?查找内容 从光标所在行向上搜索
n 下一个
N 上一个
替换
:1,10s/old/new/g 替换1到10行的所有old为new
:%s/old/new/g 替换整个文件的old为new
替换字符串,我举几个例子:在shell中“#”开头是注释,那我是否可以注释文件的前10行呢? 手工一个一个注释很麻烦,那么批量替换吧:
:1,10s/^/#/g 注释1到10行
:1,10s/^#//g 取消注释
导入其他文件内容
:r 文件名 把文件内容导入光标位置
可以把其他文件的内容导入到光标所在位置
在vim中执行系统命令
:!命令 在vim中执行系统命令
这里只是在vim中执行系统命令,但并不把系统命令的结果写入到文件中。主要用于在文件编辑 中,查看系统信息,如时间。
导入命令结果
:r !命令 在vim中执行系统命令,并把命令结果导入光标所在行
在vim中执行系统命令,并把命令结果导入光标所在行。
字符替换
:ab 源字符 替换为字符 字符替换
在vim编辑中,有时候需要频繁输入某一个长字符串(比如邮箱),这时使用字符串替换,能增 加输入效率,例如:
:ab mymail shenchao@163.com 当碰到“mymail”时,转变为邮箱
注意:“源字符”不应设置的太短,否则有可能影响输入。
多文件打开
在vim中可以同时打开两个文件,只要执行如下命令:
vim -o abc bcd
vim -O abc bcd
#-o 小写o会上下分屏打开两个文件
#-O 大写O会左右分屏打开两个文件
这样可以同时打开两个文件,方便操作。如果是“-o”上下打开两个文件,可以通过先按“ctrl+w”, 再按“上下箭头”的方式在两个文件之间切换。 如果是“-O”左右打开两个文件,可以通过先按“ctrl+w”,再按“左右箭头”的方式在两个文 件之间切换。