编辑器之神 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
set syntax=on
set tabstop=3
set softtabstop=4
set number
set enc=utf-8
set showmatch
常用的配置可以上github上去搜索,重要的是会编写代码,而不是会配置文件,了解一下就可以
vim中也有一些插件,整花里胡哨的插件有啥用,得会写才行
话说主包得把主包的idea更新一下了
配置好这个文件之后需要使用source .vimrc
来更新一下
跳跃到哪一行?55gg
就直接调到了第55行
快捷键
v + aw
就是快速选中光标所在的单词
v + ab
把复制单词所在的小括号全部内容
v + aB
就是复制单词所在的大括号全部内容
v + a<
就是选中尖括号<>
主包需要补充一些有用的快捷键了
这么多,主包这能知道啊,只能说是慢慢补充了
Vim也是根据个人习惯而言
好的代码和插件可以提高你的效率,但是并不能提高你的水准
不要让工具毁了你,不能变成过于依赖插件的人
只有用记事本编辑,才能变成最后的大佬hhhhhhhhh
micro_frank