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命令 |
浙公网安备 33010602011771号