前言
通过使用开发工具可以帮助大家更快,更轻松地创建自己的应用,因此我们想做一个常用开发工具的介绍。第一个介绍的工具是Vim。
Vim
Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,深受程序员的欢迎,特别是Unix/Linux下程序员,当然主流的操作系统都有相应的版本可以使用。
Vim很灵活,功能也很强大,经过多年的发展,可以说是最强大的编辑器之一了,所以学习曲线很陡,不过对于程序员们来说,真是个好东西。
安装
Liunx的操作系统都自带Vim,Windows下叫GVim,下载地址:http://www.vim.org/download.php#pc。
在Liunx的命令行下输入:
1 | root@localhost:~# vim |
出现以下界面,上面有关于Vim的一些信息:
如果碰巧你的计算机上真的没有Vim,那你可以这样:
1
2root@localhost:~# sudo apt-get update
root@localhost:~# sudo apt-get install vim
开始
当你安装好Vim并进入Vim前,需要先了解一下Vim的工作模式:
Normal模式,主要用来浏览和修改文本内容的,一般情况打开Vim都是Normal模式。在任何模式下,只要按下Esc键就可以返回Normal模式。
Insert模式,用来向文本中添加内容的,按下键i。(注:你会看到vim左下角有一个–insert–字样,说明你进入了Insert模式,其他模式也有相应的字样)
Visual模式,可视模式相当于高亮选取文本后的普通模式。
Command模式,多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器等。
这几种模式可以互相转换:
- 其它模式—>Normal模式,按Esc键。
- Normal模式—>Insert模式。
- 按 i 在光标前插入;
- 按 I 在行首插入;
- 按 a 在光标后插入;
- 按 s 删除光标所在的字符再插入;
- 按 A 在行末插入;
- 按 o 在当前行之下新建行;
- 按 O 在当前行之上新建行;
- 按 S 删除光标所在行再插入。
- Normal模式—>Command模式,按shift键盘和分号键。
- Normal模式—>Visual模式,按下键v进入。
- 以行为单位进行选取的可视行模式,使用Shift+v键进入;
- 以块为单位进行选取的可视块模式,使用Ctrl+v键进入。
还需要说明的就是在Normal模式下,你的任何按键都是在按功能键,就像你用的最多的Ctrl C、Ctrl V一样。
了解了这些之后,就可以开始编写了,不然出了状况都不知道怎么回事。
重要命令
- ESC键 回到Normal模式。
- i Insert模式。
- x 删当前光标所在的一个字符。
- :w 存盘,:w 后可以跟文件名。
- :q 退出。:qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
- dd 删除当前行,并把删除的行存到剪贴板里。
- p 粘贴剪贴板。
- hjkl 和使用光标键 (←↓↑→)效果一样,h对←,j 对↓,k对↑,l对→。
- :help+command显示相关命令的帮助。你也可以就输入 :help 而不跟命令。
你可以试试上面这些命令,只要熟悉了这些命令,就不至于找到北了。
常用命令
- 各种插入模式
- a 在光标后插入。
- o 在当前行后插入一个新行。
- O 在当前行前插入一个新行。
- cw 替换从光标所在位置后到一个单词结尾的字符。
- 简单的移动光标
- 0 数字零,到行头。
- ^ 到本行第一个不是blank字符的位置(blank字符是指空格,tab,换行,回车)。
- $ 到本行行尾。
- g_ 到本行最后一个不是blank字符的位置。
- /sosososo 搜索sosososo这个字符串(如果搜到多个,可按n键到下一个)。
- 拷贝/粘贴
- p 或者P p是表示在当前位置之后,P表示在当前位置之前。
- yy 拷贝当前行当行于ddP。
- Undo/Redou
- u undo
- Ctrl+r redo
- 打开/保存/退出/改变文件(Buffer)
- :e \<path\/to\/file>打开一个文件
- :w 存盘。
- :saveas \<path\/to\/file> 另存为 <path/to/file>。
- :x,ZZ或:wq 保存并退出,:x表示仅在需要时保存,ZZ不需要输入冒号并回车。
- :q! 退出不保存。:qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
- :bn,:bp 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。:n也可以到下一个文件。
一些好玩的的命令
- 重复
- . (小数点) 可以重复上一次的命令
- N +command 重复某个命令N次
- 示例:
- 2dd 删除2行
- 3p 粘贴文本3次
- 10ijava 加ESC键 会写下 “java java java java java java java java java java”
- . 重复上一个命令,10个“java”。
- 3. 重复 3 次 “java” (注意:不是10,你看,VIM确实很厉害)。
- 光标
- NG 到第N行。
- gg 到第一行。
- G 到最后一行。
- w 到下一个单词的开头。对程序来说就是一个变量。
- e 到下一个单词的结尾。对程序来说就是一个变量。
- W 到下一个单词的开头。对程序来说就是一个语句。
- E 到下一个单词的结尾。对程序来说就是一个语句。
- % 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)。
- \ 匹配光标当前所在的单词,移动光标到下一个。
- # 匹配光标当前所在的单词,移动光标到上一个。
很多命令可以通过下面的方式和移动光标的命令连动:
例如 0y$ 命令意味着:
- 0 先到行头。
- y 从这里开始拷贝。
- $ 拷贝到本行最后一个字符。 然后你可以移动光标到你需要的地方按下p,就可以拷贝一行到这里了。