vim的使用入门
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。在Mac OSX下vim是自带的,是在命令行下文本编辑器。
###声明: 使用平台为Mac OSX。强调的是实践操作,所以在每一个命令使用时都应实际操练。文中描述的命令,不包含『』符号,只需输入内部的命令。
入门:
第一部分 光标移动及进入vim
- 在Terminal中输入『vim 文件名 』<敲回车>,就能进入对于文件的vim界面,默认进入的是命令状态,等候命令输入。
从编辑状态进入正常命令状态,然后输入『:q!』<敲回车>(不保存退出)或『:wq』<敲回车>(保存后退出) - 在命令状态下输入『i』,即刻进入编辑插入状态,<敲ESC>可退出到正常命令状态。
- 在正常模式下,输入『x』,删除光标处的单个字符。
- 正常模式下,光标移动命令:
- h:左移
- j:下移
- k:上移
- l:右移
演示: 用vim打开文件test.md
第二部分 删除命令
- 从光标处删除到单字/词末尾,输入命令『dw』
- 从光标处删除到行末,输入命令『d$』
- 删除整行,输入命令『dd』
- 撤销操作,输入命令『u』;撤销在一行中的操作,输入命令『U』;恢复操作,输入命令『CTRL+R』
- 正常命令模式下,命令有一定格式:[command][number][object]或[number][command][object]
- [command]-代表要做的事情,比如删除命令『d』
- [number ]-代表命令要执行的次数
- [object ]-代表要操作的对象,『w』代表单字/词,『$』代表到行末等等。
演示
第三部分 更改字符/单词
- 粘贴已经删除的文本,输入命令『p』。该操作会把以及给你删除的内容粘贴到光标后面,如果删除的是整行文本,将会在光标的下面重新插入一行,内容为删除的文本。
- 要替换光标位置的字符,输入命令『r字符』,如『ra』,就是把光标处字符替换成字符a。
- 改变指定的对象,从光标位置知道对象末尾,比如『cw』,就是更改光标到单词末尾的的内容;『c$』,就是更改光标到行末的内容。
演示
第四部分 查找/替换及跳转
- 『ctrl-g』用来现实当前光标所在位置和文件状态信息。
- 『shift-g』用于将光标跳转到文件最后一行,如果先敲入一个数字,此数字就是代表文本行号,按下『shift-g』后光标就会跳转到此行。
- 查找字符串,输入命令『/要查找的字符串』,就会从当前光标位置向后查找,比如『/boy』<敲回车>,就会向后查找字符串boy;命令『?要查找的字符串』则是向前查找;完成一次查找命令后,输入『n』,会按前次查找方向继续查找。
- 查找光标位置配对的(、)、[、]、{、},输入命令『%』。
- 替换字符
- 替换一行内首个字符串old为新字符串new,输入命令『:s/old/new』<敲回车>;
- 替换一行内所有字符串old为新字符串new,输入命令『:s/old/new/g』<敲回车>;
- 替换两行内所有字符串old为新字符串new,输入命令『:#,#s/old/new/g』<敲回车>;
- 替换文件内所有字符串old为新字符串new,输入命令『:%s/old/new/g』<敲回车>;
- 全文替换字符串old为新字符串new时询问用户确认,输入命令『:%s/old/new/gc』<敲回车>。
演示
第五部分 执行sh命令/提取文件内容
- 执行一个外部命令cmd,输入命令『:!cmd』,如:『:!pwd』,用来显示当前目录。
- 将正在编辑的文件保存为FILENAME的文件,输入命令『:w FILENAME』<敲回车>,如『:w test.cpp』,就是将编辑的文件保存为test.cpp文件。
- 将当前编辑文件中第#行到第#行的内容保存到FILENAME文件中,输入命令『:#,#w FILENAME』,比如:『:12,67w test.c』,就是把编辑文件的第12行到67行的内容保存到test.c文件中。
- 提取文件FILENAME中的内容到光标处,输入命令『:r FILENAME』。
演示
第六部分 插入新行/文本,替换模式
- 在光标所在行下方插入新的一行并将光标置于行首,输入命令『o』;在光标所在行上方插入新的一行并将光标置于行首,输入命令『O』。
- 在光标所在位置之后插入文本,输入命令『a』;在光标所在行的行末之后插入文本,输入命令『A』。
- 进入文本替换模式,输入命令『R』。
- vim选项配置命令,格式为:『set xxx』
演示
第七部分 复制vim模板配置
创建一个vim启动脚本,将例程配置导入脚本文件『~/.vimrc』,添加vim下代码高亮功能按照下面几部完成:
- 进入~(用户目录),创建『.vimrc』文件,输入命令:『vim .vimrc』.
- 将例程配置导入到『.vimrc』文件,输入命令:『:read $VIMRUNTIME/vimrc_example.vim』<敲回车>
- 保存并退出,输入命令『:wq』<敲回车>
演示
鸣谢
主要参考vimtutor,感谢作者 梁昌泰 [email protected]