远古神器VIM的必备指令
vim是个很好的编辑器,远古神器嘛,当你熟悉了这个编辑器你的逼格是不是瞬间就会高了许多
首先安装vim
当然学习一个编辑器都是为了方便自己,提高效率,可是vim这个文本编辑器的学习曲线是陡峭的
但苦练会让你带来搞效率
而我自己在用git命令的时候再配合vim确实是很强大的开发组合,虽然vim没有代码提示,但是它本身其实是有很多的插件供使用的,当我们git提交代码的时候,用vim来对代码进行解决冲突和编辑都是非常方便的
VIM下载
vim
启动vim

i
Insert模式,按 ESC 回到Normal模式
反正如果不知道现在是在什么模式下,就一直按ESC,回到Normal模式,下面功能键都是在Normal模式触发的

此时Insert模式跟记事本一样

操作vim会经常在这两个模式下切换,就如同在记事本中你在选项卡和编辑内容窗口中切换一样


只不过这里大部分变成了键盘操作
所以在Normal模式下,键盘上所有的键都变成对应的功能键了,就如同我们按c跟按ctrl+c一样,c在后面就变成了对应的功能键了
x
Normal模式下,按x删除当前光标所在的一个字符

其实这个相当于Insert模式下的退格键
:wq
保存+退出vim(:w 保存 :q 退出) 后面跟文件名

这个相当于记事本中的文件->(保存)另存为
dd
删除当前行,并把删除的行保存到剪贴板里面,也是IDE里面常用的,快速删除一行代码,不用长按退格了
p
粘贴剪切板,这个功能挺常用的,如果在外面复制完东西,直接在vim界面按p就可以粘贴了
yy
复制当前行到剪切板

help
显示相关命令的帮助

:q
退出
:q!
不保存直接退出

a
在光标后插入,如果本来光标不在最后就会自动帮你定格到最后输入

o
在当前行后面插入一个新行,相当于记事本一行的最后敲回车键

0
按数字0就是到行头,跟a是相反的

^
这个是要结合shift+6,到本行第一个非blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)

$
光标切换到本行行尾

/pattern
搜索 pattern 的字符串

如果搜索出多个匹配,按n可以定位到下一个

u
撤销 就是Undo

这个功能基本IDE都是有的,挺常用的,如同我用PS时候ctrl+z那样方便
ctrl+r
重做 也就是Redo

:e <文件路径/文件名>
打开一个文件,这个在cmd中我常常cd到指定目录,然后dir显示再用vim来打开相应的文件来进行编辑

:w
保存

保存后会出现written的提示

:saveas <文件路径/文件名>
另存为

保存成功后也会出现written的提示

有一点需要注意的是如果只是保存或者另存为但是一直没有退出vim编辑的话,文件会一直以下图后缀在文件夹

但是如果保存并退出了,就会变成保存时候定义的文件名和后缀了

:x
ZZ
shift+z
:wq
上面这三个都是保存并退出,注意ZZ是不需要输入冒号和回车的

:q!
退出但不保存
:qa
强行退出所有的正在编辑的文件,就算别的文件有更改
:bn
:bq
有时候我们需要打开多个文件,就是在一个文件已经打开的情况下我们可以继续用:e
来打开其他文件,当打开多个文件的时候,可以使用上面这两个命令来切换下一个或者上一个文件

.
这个命令可以重复执行自己运行的上一个命令
N<命令>
打这个的时候是不可见的,也就是盲打
N就是输入一个数字,比如我输入9p,就会出现下图这个

G
将光标定位到最后一行的头部

w
到下一个单词的开头。
e
到下一个单词的结尾。
- 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成
- 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。
*和#
当你把光标放到catwsscat上的时候按*或者#就会移动到匹配该单词的上一个或者下一个
- *在键盘左边是匹配上一个单词
-
在键盘右边是匹配下一个单词

%
匹配括号移动,支持(,{, [,你需要把光标先移到括号上

v
进入可视化选择后按键盘的上下左右的方向键都会帮你自动选择

可视化选择下
J →
把所有的行连接起来(变成一行)< 或 >
→ 左右缩进= →
自动给缩进 (这个确实挺方便的)