vim介绍
vim是一款Unix/linux平台下的文本编辑器.相对于其他编辑器,vim为使用者提供了很多的操作,以实现各种各样的功能.如果能把这些功能融汇贯通,使用者就可以大大提升文本编辑的效率.除了传统的文本编辑以外,很多人把它直接当作一款软件开发工具,来加速开发.vim就像原来的五笔打字一样,操作负责,上手困难,但如果学好了,是可以提高开发效率的.虽然现在各类IDE的功能都设计的比较完善了,所以vim的这方面的优势也比以前相对缩小了.但是作为一款经典老牌编译器,仍然有很多开发者热衷于使用它进行开发,可以预见,在未来很长一段时间内,仍然会有很多人使用vim在linux下开发程序.
vim的进入和退出
在shell中输入vim filename,即可编辑filename.编辑完成以后,输入:wq,即可退出.
vim模式介绍
vim共有三种基本模式:
- 命令模式: vim的初始模式,在此模式下敲击键盘会被vim视为输入命令,很多新手使用vim时常常会犯试图在命令模式下输入内容的错误.命令模式可以实现很多基础操作,如输入,删除,撤销等.
- 输入模式:进入输入模式以后,才能为文件添加内容.进入输入模式的方法包括在命令模式下敲击多种命令,如i,I,a,A等.
- 底线命令模式:在命令模式下输入:,可以进入底线命令模式.相比命令模式,底线命令模式的能执行一些更加复杂的操作.
三大模式之间的转换
可视模式
在三大模式之外,vim还有一个可视模式.可视模式便于选择文本,选择的文本被高亮显示,之后输入的命令,就是对这部分文字进行操作.可视化模式又分为三种:
-
- 字符可视模式: 以字符为单位选中.
- 行可视模式: 以行为单位选中.
- 块可视模式: 以块为单位选中.该模式很适合对列进行操作,如删除多行注释.
vim操作大全
vim操作技巧
1. 光标移动
命令 | 作用 |
H | 将光标移动到屏幕顶行 |
M | 将光标移动到屏幕中间 |
L | 将光标移动到屏幕底部 |
h/← | 将光标移动到前一个字符处 |
j/↓ | 将光标移动到下一行 |
k/↑ | 将光标移动到上一行 |
l/→ | 将光标移动到后一个字符处 |
0/Home | 将光标移动到行首 |
$/End | 将光标移动到行尾 |
G | 将光标移动到文件的最后一行 |
gg | 将光标移动移动到文件的第一行 |
W/w | 将光标移动到前一单词处 |
N/n | 将光标移动到后一单词处 |
{ | 将光标移动到一个文本段(文本中连续和行)的上一行 |
} | 将光标移动到一个文本段的下一行 |
[[ | 将光标移动到上一个代码块的开头 |
]] | 将光标移动到下一个代码块的开头 |
( | 将光标移动到上一个代码块的开头 |
) | 将光标移动到上一个代码块的结尾 |
2. 插入,修改和删除
命令 | 作用 |
i | 在当前光标处插入 |
I | 在当前行首插入 |
o | 在当前行下一行新起一行插入 |
O | 在当前行上一行新起一行插入 |
a | 在当前光标之后一个字符处插入 |
A | 在当前行尾插入 |
cw | 修改当前光标到单词尾部的所有内容,相当与删除并插入 |
C/cc | 修改当前光标到行末的所有内容,相当与删除并插入 |
s | 删除当前光标处的字符并插入 |
S | 删除当前行并插入 |
x | 删除字符 |
X | 退格 |
D | 删除从当前光标到行尾的所有内容 |
dd | 删除当前行 |
dw | 删除一个单词 |
dG | 删除从光标开始到文档结尾的所有内容 |
3 复制和粘帖
命令 | 作用 |
Y | 复制一行 |
yy | 复制一行 |
P | 在当前行前面新起一行并粘帖 |
p | 在当前行后面新起一行并粘帖 |
4. 查找和替换
命令 | 作用 |
R | 字符替换模式,从当前光标处逐个开始替换字符 |
r | 字符替换模式,替换单个字符 |
/word | 在文件中向下查找word |
?word | 在文件中向上查找word |
n | 向下查找,继续查找下一个 |
N | 向上查找,继续查找下一个 |
f[ch] | 在本行内向前查找地一个以ch开头的单词 |
F[ch] | 在本行内向后查找地一个以ch开头的单词 |
:s/old/new | 将当前行中的old换为new |
:%s/old/new/g | 将全文中所有的old全部换为new |
5.组合命令
组合模式 | 作用 |
nComand | n为数字,代表连续执行n次command,如10dd,就是连续删除10行,10yy,就是复制下面10行 |
n1,n2Command | n1,n2是一个范围,代表在n1,n2这个范围内执行command命令 |
6. 其他
命令 | 作用 |
u | 撤销 |
U | 撤销行内命令 |
CTRL+r | 反撤销 |
g~ | 大小写转换 |
ZZ | 保存并退出,同:wq |
. | 重复前一个动作 |
<space> | 光标向前移动一个空格 |
<Enter> | 光标向下移动一行 |
7. 可视模式
命令 | 作用 |
v | 进入可视模式 |
V | 进入可视行模式 |
CTRL+V | 进入可视块模式 |
8. 输入模式
快捷键 | 作用 |
CTRL+N | 关键字补全 |
ESC+o | 光标跳转下一行 |
9.底部命令模式
命令 | 作用 |
:set nu/number | 设置行号 |
:set nonu | 取消行号 |
:syntax on | 开启语法高亮显示 |
:syntax off | 关闭语法高亮显示 |
:q | 退出 |
:q! | 强制退出 |
:w | 保存 |
:w! | 强制保存 |
:w newfile | 另存为其他文件 |
:wq | 保存并退出 |
:wq! | 强制保存并退出 |
:r | 在当前文件中读入另一个文件的数据 |
:! command | 离开vim,执行command命令 |