vim是个很好的编辑器,远古神器嘛,当你熟悉了这个编辑器你的逼格是不是瞬间就会高了许多
首先安装vim
当然学习一个编辑器都是为了方便自己,提高效率,可是vim这个文本编辑器的学习曲线是陡峭的
但苦练会让你带来搞效率
而我自己在用git命令的时候再配合vim确实是很强大的开发组合,虽然vim没有代码提示,但是它本身其实是有很多的插件供使用的,当我们git提交代码的时候,用vim来对代码进行解决冲突和编辑都是非常方便的
VIM下载
vim
启动vim
![image](https://cloud.githubusercontent.com/assets/17243165/15735486/e3a3ce82-28cb-11e6-9fe9-a2f635ba3e06.png)
i
Insert模式,按 ESC 回到Normal模式
反正如果不知道现在是在什么模式下,就一直按ESC,回到Normal模式,下面功能键都是在Normal模式触发的
![image](https://cloud.githubusercontent.com/assets/17243165/15736143/39e29856-28d0-11e6-8e8b-3749f49447f2.png)
此时Insert模式跟记事本一样
![image](https://cloud.githubusercontent.com/assets/17243165/15735997/57c179b0-28cf-11e6-9c44-70021d2a882e.png)
操作vim会经常在这两个模式下切换,就如同在记事本中你在选项卡和编辑内容窗口中切换一样
![image](https://cloud.githubusercontent.com/assets/17243165/15736686/f77866cc-28d3-11e6-99bf-8a16fb254b07.png)
![image](https://cloud.githubusercontent.com/assets/17243165/15736698/0f22cace-28d4-11e6-9502-c6f3e5fac5c3.png)
只不过这里大部分变成了键盘操作
所以在Normal模式下,键盘上所有的键都变成对应的功能键了,就如同我们按c跟按ctrl+c一样,c在后面就变成了对应的功能键了
x
Normal模式下,按x删除当前光标所在的一个字符
![image](https://cloud.githubusercontent.com/assets/17243165/15735983/4160caf4-28cf-11e6-880a-ad7355668827.png)
其实这个相当于Insert模式下的退格键
:wq
保存+退出vim(:w 保存 :q 退出) 后面跟文件名
![image](https://cloud.githubusercontent.com/assets/17243165/15735873/80b8b640-28ce-11e6-80d0-640b738746a8.png)
这个相当于记事本中的文件->(保存)另存为
dd
删除当前行,并把删除的行保存到剪贴板里面,也是IDE里面常用的,快速删除一行代码,不用长按退格了
p
粘贴剪切板,这个功能挺常用的,如果在外面复制完东西,直接在vim界面按p就可以粘贴了
yy
复制当前行到剪切板
![image](https://cloud.githubusercontent.com/assets/17243165/15739705/da811428-28e3-11e6-92a6-cf371a09e4e9.png)
help
显示相关命令的帮助
![image](https://cloud.githubusercontent.com/assets/17243165/15736024/970c7048-28cf-11e6-8b31-e68af97c17d3.png)
:q
退出
:q!
不保存直接退出
![image](https://cloud.githubusercontent.com/assets/17243165/15736071/da18aea6-28cf-11e6-82ad-7f21225f734a.png)
a
在光标后插入,如果本来光标不在最后就会自动帮你定格到最后输入
![image](https://cloud.githubusercontent.com/assets/17243165/15737026/337c97e0-28d6-11e6-8de3-82e6a719a4fc.png)
o
在当前行后面插入一个新行,相当于记事本一行的最后敲回车键
![image](https://cloud.githubusercontent.com/assets/17243165/15737108/bca6971e-28d6-11e6-87d9-d95c084c8861.png)
0
按数字0就是到行头,跟a是相反的
![image](https://cloud.githubusercontent.com/assets/17243165/15737198/6388d236-28d7-11e6-9f9a-fb8ef9c30965.png)
^
这个是要结合shift+6,到本行第一个非blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
![image](https://cloud.githubusercontent.com/assets/17243165/15738017/ce6194d6-28db-11e6-9183-9eacc226bd69.png)
$
光标切换到本行行尾
![image](https://cloud.githubusercontent.com/assets/17243165/15739026/bc335af6-28e0-11e6-9125-5d09a56074b0.png)
/pattern
搜索 pattern 的字符串
![image](https://cloud.githubusercontent.com/assets/17243165/15739370/51c321b8-28e2-11e6-887c-61bc2451d13d.png)
如果搜索出多个匹配,按n可以定位到下一个
![image](https://cloud.githubusercontent.com/assets/17243165/15739415/83473288-28e2-11e6-914d-a22a4b2bc075.png)
u
撤销 就是Undo
![image](https://cloud.githubusercontent.com/assets/17243165/15740981/ff1fa370-28e9-11e6-8681-290770b9b9e3.png)
这个功能基本IDE都是有的,挺常用的,如同我用PS时候ctrl+z那样方便
ctrl+r
重做 也就是Redo
![image](https://cloud.githubusercontent.com/assets/17243165/15740996/15211bc2-28ea-11e6-899d-98f6d0746677.png)
:e <文件路径/文件名>
打开一个文件,这个在cmd中我常常cd到指定目录,然后dir显示再用vim来打开相应的文件来进行编辑
![image](https://cloud.githubusercontent.com/assets/17243165/15741153/f5b44506-28ea-11e6-9306-6b4194a6772b.png)
:w
保存
![image](https://cloud.githubusercontent.com/assets/17243165/15741264/74e711e6-28eb-11e6-9633-c97ab7d38835.png)
保存后会出现written的提示
![image](https://cloud.githubusercontent.com/assets/17243165/15741300/a3f6f1ae-28eb-11e6-9ecf-ba584779e866.png)
:saveas <文件路径/文件名>
另存为
![image](https://cloud.githubusercontent.com/assets/17243165/15741522/a32b971a-28ec-11e6-800f-70236b05035c.png)
保存成功后也会出现written的提示
![image](https://cloud.githubusercontent.com/assets/17243165/15741533/ae459a88-28ec-11e6-9e43-5a010112cb20.png)
有一点需要注意的是如果只是保存或者另存为但是一直没有退出vim编辑的话,文件会一直以下图后缀在文件夹
![image](https://cloud.githubusercontent.com/assets/17243165/15741735/9f1179d2-28ed-11e6-8f2d-93858fbf8ed7.png)
但是如果保存并退出了,就会变成保存时候定义的文件名和后缀了
![image](https://cloud.githubusercontent.com/assets/17243165/15741783/c9d3233c-28ed-11e6-9d0e-4f229b373996.png)
:x
ZZ
shift+z
:wq
上面这三个都是保存并退出,注意ZZ是不需要输入冒号和回车的
![image](https://cloud.githubusercontent.com/assets/17243165/15741845/1b588422-28ee-11e6-9721-e773a5dd05fe.png)
:q!
退出但不保存
:qa
强行退出所有的正在编辑的文件,就算别的文件有更改
:bn
:bq
有时候我们需要打开多个文件,就是在一个文件已经打开的情况下我们可以继续用:e
来打开其他文件,当打开多个文件的时候,可以使用上面这两个命令来切换下一个或者上一个文件
![image](https://cloud.githubusercontent.com/assets/17243165/15742072/5d78ade0-28ef-11e6-8494-0fdb4788be42.png)
.
这个命令可以重复执行自己运行的上一个命令
N<命令>
打这个的时候是不可见的,也就是盲打
N就是输入一个数字,比如我输入9p,就会出现下图这个
![image](https://cloud.githubusercontent.com/assets/17243165/15742284/7ffb1474-28f0-11e6-92e0-8c0484b54879.png)
G
将光标定位到最后一行的头部
![image](https://cloud.githubusercontent.com/assets/17243165/15765991/2efda816-296d-11e6-81d6-73925485ece4.png)
w
到下一个单词的开头。
e
到下一个单词的结尾。
- 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成
- 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。
*和#
当你把光标放到catwsscat上的时候按*或者#就会移动到匹配该单词的上一个或者下一个
- *在键盘左边是匹配上一个单词
-
在键盘右边是匹配下一个单词
![image](https://cloud.githubusercontent.com/assets/17243165/15766219/c1b0dba0-296e-11e6-8681-3af6c20020ba.png)
%
匹配括号移动,支持(,{, [,你需要把光标先移到括号上
![image](https://cloud.githubusercontent.com/assets/17243165/15766266/51637f6e-296f-11e6-9672-9aeb3bc5055c.png)
v
进入可视化选择后按键盘的上下左右的方向键都会帮你自动选择
![qq 20160603100040](https://cloud.githubusercontent.com/assets/17243165/15766888/d9a9894e-2975-11e6-8d5b-4f05ea497c62.png)
可视化选择下
J →
把所有的行连接起来(变成一行)< 或 >
→ 左右缩进= →
自动给缩进 (这个确实挺方便的)
网友评论