编辑器之神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 + z
dw
就是移除当前所在光标往后的单词,这样做的话需要移动到当前单词的首字母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