Vim简介
Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器。它的作用是建立、编辑、显示文本文件。
Vim只有命令,没有菜单
Vim工作模式
插入命令
a: 在光标所在字符后插入
A: 在光标所在行行尾插入
i: 在光标所在字符前插入
I: 在光标所在行行首插入
o: 在光标下插入新行
O: 在光标上插入新行
定位命令
:set number :设置行号(可以简写为set nu)
:set nonumber:取消行号(可以简写为set nonu)
gg: 到第一行
G:到最后一行
nG:到第n行
:n:到第n行
$:移至行尾
0(零):移至行首
删除命令
x:删除光标所在处的字符
nx:删除光标所在处后的n个字符
dd:删除光标所在行,ndd删除n行
dG:删除光标所在行到文件末尾内容
D:删除光标所在处到行尾内容
:n1.n2d:删除指定范围的行
复制和剪切命令
yy:复制当前行
nyy:复制当前行以下n行
dd:剪切当前行
ndd:剪切当前行以下n行
p、P:粘贴在当前光标所在行下或行上
替换或取消命令
r:取代光标所在处的字符
R:从光标所在处开始替换字符,按Esc结束
u:取消上一步操作
搜索和搜索替换命令
/string:搜索指定字符串,搜索时忽略大小写:set ic
n:搜索指定字符串的下一个出现位置
:%s/old/new/g:全文替换指定字符串
:n1,n2/s/old/new/g:在一定范围内替换指定字符串
保存和退出文件
:w:保存修改(write)
:w new_filename:另存为指定文件
:wq:保存修改并退出
ZZ:快捷键,保存修改并退出
:q!:不保存修改并退出
:wq!:保存修改并退出(文件所有者及root可用)
注意:
#chmod u-w /文件
# vi 文件 提示W10: Warning: Changing a readonly file
:wq 无法保存
:wq!成功保存(仅root和文件所有者可以使用)
Vim使用技巧
- 导入某文件到当前文件中
- :r 文件名
- 不退出Vim时,查询命令位置
- :! which 命令
- 导入命令执行结果 (前两者的结合)
- :r ! 命令
结果:
- :r ! 命令
- 定义快捷键
- :map 快捷键 触发命令
- eg: :map ^p I#< ESC >
- 注意:^是Ctrl+V生成的,而不是Shift+6产生的
- :map < F1 > < Esc >
就可以把 < F1 > 映射到 < Esc > 上,之后按 < F1 > 就和按 < Esc > 一样。这可以修改已有的快捷键。
如果想删除,可以用:
:map < Esc > < Nop >
< Nop > 是个特殊的功能,表示无操作。所以上面那条就可以关闭 < Esc > 的功能,相当于删除快捷键。
但要注意,如果这两个映射你都有定义,那么 < F1 > 映射到 < Esc > 而后者又映射到 < Nop > 相当于 < F1 > 也间接映射到 < Nop > 了。如果你不希望递归映射,可以使用 noremap 来代替 map,比如:
:noremap < F1 > < Esc >
这样你再映射 < Esc > 并不会对 < F1 > 产生影响。
- 连续行注释:
- :n1,n2s/^/#/g(g表示不需要确认)
- :n1,n2s/^#//g(n1到n2行行首的#去掉,//之间为空表示删除)
- :n1,n2s/^/\/\//g(\转义符,区分/是分隔还是字符)
- 替换
- :ab mymail hhhhhh@Linux.com
- Vim编辑时敲击mymail 回车 ,会输入hhhhhh@Linux.com
- 保存自定义快捷键和替换信息:
- 将命令写入家目录下.vimrc(写入此文件时不加:)