一直很喜欢原装的vi,但vi对比vim真心有些弱了,ctrl+v的虚拟光标选中操作只支持删除,并且还不支持批量添加替换啥的,以及自定义功能大大受限,还是装了vim,于是接触vim也就有两年了.
看网上的评论,vim的对头是Emacs,不过Emacs在Linux发行版中较少自带,哥也没碰过,哪天有兴趣就试试.
在vim中,有四种模式(即状态):
- Command mode
- Last line mode
- Insert mode
- Visual mode
在刚使用vim打开某文件时,vim处于Command mode,这时候,前往不要乱按键盘,这时候键盘的按键有不同的功能:
移动与进入Insert mode
- h 光标左移
- j 光标上移
- k 光标下移
- l 光标右移
- e 光标跳跃到词尾(怎么分词,哥也不清楚)
- b 光标回到上个词首
- w 光标跳跃到下个词首
- G 光标移动到文章尾部
- 0 光标移动到文章开头
- $ 移动到行尾
- A 移动到行尾,并进入Insert mode
- ^ 移动到行首
- I 移动到行首,并进入Insert mode
- o 在当前行下方插入空白行,并进入Insert mode
- O 在当前行上方插入空白行,并进入Insert mode
- i 在当前光标的字前进入Insert mode
- a 在当前光标的字后进入Insert mode
- 数字 + l 移动到行的指定的位置
删除
- x 删除当前光标所在的字
- X 删除当前光标所在前面的字
- 数字 + x 删除当前光标及其后的指定字
- 数字 + X 删除当前光标前的指定字
- dd 删除光标所在行
- 数字 + dd 删除光标开始往下的指定行
复制
- yy 复制当前行到缓冲区
- yw 复制当前光标所在的词到缓冲区中(哥也不知道什么确定一个词的.)
- 数字 + yy 复制当前行及其往下的指定行数到缓冲区
- 数字 + yw 复制当前光标与其之后指定数量的词到缓冲区中
- p 将缓冲区的数据粘贴到当前光标位置.
翻页
- ctrl + f 翻到下页
- ctrl + b 翻回上页
- ctrl + d 下翻半页
- ctrl + u 上翻半页
替换
- r 替换,按下r键后,再按一个你要的数字或字母或标点按键就能完成替换
- R 替换光标所到之处的字符,直到按下
Esc
键为止,这个很强大。 - u 即撤销
- ctrl + r 即反撤销
- ctrl + v 批量选择模式
进入last line mode
- : 即shift+;进入 last line mode,可以执行相关的命令比如替换,修改编码之类的
- / 进入last line mode 然后输入要查找的字符回车即可
- ? 进入last line mode 然后输入要匹配的字符回车即可
保存
- command mode + w 回车保存
- command mode + wq 保存退出
- command mode + wq! 强制保存退出
- command mode + q 在未作改动的情况下,可以退出,不然会提示未保存.
- command mode + q! 强制退出,不会保存修改
- command mode + x 保存退出
- ZZ 保存退出