什么是 vim?
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
Vim键盘图
vi/vim 的使用 搜索
使用分为三种模式:命令模式、输入模式、底线命令模式。用户通过vi/vim刚进入时默认进入命令模式,此时输入i则进入输入模式,输入模式按Esc进入命令模式。
入门使用
- i —> 进入输入模式,按Esc返回命令模式
- x —> 删除当前光标字符进入输入模式
- a —> 光标往后移动一位进入输入模式
- o —> 向下换行进入输入模式
- O —> 线上换行进入输入模式
- :wq —> 存盘 + 退出 (:w 存盘, :q 退出)
- dd —> 删除当前行,并把删除的行存到剪贴板里
- yy —> 复制当前行
- p —> 粘贴剪贴板
- u —> 撤销
- . —> 重复执行最近一次命令
- hjkl —> 命令模式移动光标
进阶
- cw → 替换从光标所在位置后到一个单词结尾的字符
- 0 → 数字零,到行头
- ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
- $ → 到本行行尾
- g_ → 到本行最后一个不是blank字符的位置。
- /pattern → 搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
- e <path/to/file> → 打开一个文件
- :w → 存盘
- :saveas <path/to/file> → 另存为 <path/to/file>
- :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
- :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
- :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)
高级
- N
→ 重复某个命令N次 - NG → 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
- gg → 到第一行。(陈皓注:相当于1G,或 :1)
- G → 到最后一行。
- * 和 #: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
- 按单词移动:
- w → 到下一个单词的开头。
- e → 到下一个单词的结尾。
- d (删除 )
- v (可视化的选择)
- gU (变大写)
- gu (变小写)