编辑器之神Vim
前言
简单介绍
这是linux中最能装逼的一个环节
服务器哪有界面版的,都是纯粹的命令行
这个时候操作就比较复杂,需要使用一些另类的编辑器
介绍几个编辑器吧vi nano emacs vim,这些都是命令版的编辑器,基本是后两个使用的比较多
这两个有传奇的称号emacs神之编辑器vim编辑器之神
这个不是初学者想学就学的,最重要的是适应
插件只是方便开打
牛逼的人写代码都是没有提示的
vim写代码是没有提示的,那确实叼
业界有个说法,牛逼的人都让工具变得越来越难用
vim虽然难,但是学会之后卧槽,其他的编辑器都是垃圾
在CentOS上可能显示的是vi
Vim的简单使用
入门的简单,但是使用的时候比较麻烦
Vim有两种操作模式普通模式(命令操作模式)操作文件插入模式就是编辑
拿记事本举例
这样保存等步骤操作文件的时候就是普通模式
编辑文件内容的时候就是插入模式insert i也就是i键,当你点击i键的时候就是插入模式
想要保存的时候就点Esc,然后输入英文的:然后输入wq,这个意思就是保存w然后退出q
点完Esc之后,右下角的INSERT就消失了
移动
如何来移动光标呢?
程序员在编程的时候,有时候会需要移动一下鼠标,或者够一下右下角的方向键
但是这样太麻烦了,而且会有很多的耗费时间
Vim之所以被称为编辑器之神,就是会把程序员的双手放到键盘的右半部分
为了解决这个问题,在普通模式下h,j,k,l这四个键来控制,但是这几个只能移动一格格子,但是这样做太蠢了
翻页
可以使用pageup,pagedown来翻页,但是这样又到了离开了键盘
使用快捷键ctrl + F向下移,ctrl + B向下移
也可以使用ctrl + E是向下移动,这个向下移动还包含了加换行符,和ctrl + Y是向上移动,这样是翻一点点的感觉
如果想要移动到最后一行G,注意vim当中的命令是分小写和大写的,所以这里的大G意味着要使用shift + G
如果想要移动到最开始的时候gg,就需要使用两下小写g
这样的模式都是普通模式
输入:冒号之后就是另外一种模式了
有时候不小心修改源代码了那就输入:q!,这个意思就是不保存
不同的方式编辑文本以及跳跃单词
插入模式的话是插入到前面
举个例子,是插入到,的前面i是在光标位置的前面插入a是在光标位置的后面插入,但是主包实测光标往后跳了一格,实际上也是i的模式,直接用i就行
还有一种如果我想再开一行再写怎么办呢?o就可以直接新开一行,然后到新的这一行去输入,光标在这一行的哪里都可以,只要点o就行
这不就直接跳过来了,但是注意这个只有在普通模式的时候才可以开下一行,如果是插入模式的话实际上是正常输入的x是删除当前光标所在的字符,这个同样需要在普通模式下进行,但是这个删除之后仍停留在普通模式dd点两下,直接就是把这一行干掉了u撤销,代替了ctrl + zdw就是移除当前所在光标往后的单词,这样做的话需要移动到当前单词的首字母b跨越单词的移动,向前跳跃单词,这个是跳到了单词的前面e跨越单词的移动,向后跳跃单词,这个是跳到了单词的末尾
如果
所以当光标移动到中间的时候,按下这两个键就可以实现移动到开头或者末尾w也是跳跃单词,这个是往后跳跃到单词的首字母,感觉w使用的会更广泛一点
假如我光标后面的东西都不想要了怎么办shift + w就是大跳,w跳的太慢了,跳跃的是大单词shift + b,shift + e同理
跳跃行首行尾
既然可以按照单词来跳跃,那么就可以按照行来进行跳跃shift + 6就代表的是跳跃本行的开头shift + 4就代表的是跳跃本行的末尾0的话是直接跳到本行的开头,这就是tab前面的内容,这个把空白字符包含了,前面两行是只能跳跃到有字的部分r替换字符,这个可以把光标选中的字符进行替换,之后按下要替换为的字符R就是一直替换,直到按下Esc键退出为止
在Vim中尽量不要使用退格键Backspace和delete,因为有可能会有一些命令和这些键是绑定的,不是你想的那样{和}可以进行代码中段落的跳跃,也就是代码块那样的东西
复制剪切粘贴
vim有一个缓冲区,会记录你复制剪切粘贴过的东西p就是把你刚刚操作过的东西,在粘回来,这样的话vim里面的剪切的实现逻辑就是删除,然后再从缓冲区里面贴出来
复制就是另一回事了yw这个意思就是复制这个单词,感觉就像是鼠标双击一样y$表示从当前开始一直复制到行末尾,之后使用p就可以释放出来
但是有个坏处就是你不知道你复制了什么东西,如果有一行特别长的话,你不知道他到底复制到哪了
那么如何解决这个问题呢?
Visual可视化模式
为了解决这个问题,就用上了可视化模式
这下可以吹牛逼说vim有四种模式了hhhhhh
v按v键,就会出现一个VISUAL,这个时候就可以使用hjkl进行选择了,选好之后点y,然后再按p,这样就能知道自己到底复制了什么玩意了V这个是按行来的,直接一次就是一行,显然v更灵活一点
那就有问题了,如果我想把所有的代码删了怎么办
要先进入首行g,v + G直接跳到末尾,然后按d就全删掉了,这就像一种全选然后删除的功能
这里v配合d就能删除选中的内容
选好一段内容之后,我想继续接着选怎么办o,这样就是跳到开头,再按一下o,就又跳到了末尾,可以使用oooooooooo,来回跳,卧槽有点搞笑hhhhhh
在可视化模式当中,可以使用所有上述的命令,随便你怎么跳
可以选中之后再按y就是复制选中内容ctrl + c是选中每一行ctrl + v是一种矩阵选择
在选中过程中0就是补全角落,把你没复制到的角落给你复制上
视图模式中的其他模式
如果我要把这一行缩进怎么办,或者是全选然后缩进
那就是使用v把这些全部选中,然后加上<>就是缩进,这两个分别是向前缩进和向后缩进v选中之后~就是大小写翻转v + U,把选中的内容全部变成大写的v + u,把选中的内容全部变成小写的
查找和替换
也就是ctrl + f
光标移到哪?就是从哪里开始查
输入一个\然后输入所要查询的单词,然后就跳到了要查询的单词
这样我想继续往下查该怎么办,那就是n就是一直查下一个
找到之后我想替换怎么办呢?
输入:s/const/let/g这样的意思就是:s是开始替换/const是要替换的内同/let是要替换成的内容/g是把这一行中的const全部替换
如果是替换整个文件的const该怎么做?:%s,换成了百分比,这样就给你文本里面的直接替换了
如果选择行号去替换该怎么办:set number就可以临时显示行号
就会出现这样的效果
如果我只想把某两行之间的const进行替换,其他的不变:2,15s/const/let/g后面的一样,这个意思就是把第2到15行的所有const都替换掉了
还有一种是有提示的替换:s/const/let/gc,这个就是一直往下查找,然后问问你确定要替换吗?然后你需要点y或者n,然后他会跳到下一个继续问你,或者替换完了就退出
Vim中的基础配置
Vim也是可以去配置的,包括主题,颜色乱七八糟的
要想配置vim的话必须去自己配置一个vim的配置文件
在/home/yangyeyuan下面使用touch .vimrc
1 | set syntax=on |
常用的配置可以上github上去搜索,重要的是会编写代码,而不是会配置文件,了解一下就可以
vim中也有一些插件,整花里胡哨的插件有啥用,得会写才行
话说主包得把主包的idea更新一下了
配置好这个文件之后需要使用source .vimrc来更新一下
跳跃到哪一行?55gg就直接调到了第55行
快捷键
v + aw就是快速选中光标所在的单词v + ab把复制单词所在的小括号全部内容v + aB就是复制单词所在的大括号全部内容v + a<就是选中尖括号<>
主包需要补充一些有用的快捷键了
这么多,主包这能知道啊,只能说是慢慢补充了
Vim也是根据个人习惯而言
好的代码和插件可以提高你的效率,但是并不能提高你的水准
不要让工具毁了你,不能变成过于依赖插件的人
只有用记事本编辑,才能变成最后的大佬hhhhhhhhh
micro_frank
