VIM命令快速记忆(转⾃杰哥)
因为⾃⼰也是个linuxer
熟练运⽤VIM是必须的,恰好学长杰哥对此有研究,
转来给⼤家分享。对此表达对杰哥的敬意。
有好东西分享给⼤家才能相互学习是吧。
要做个Linuxer,VIM的操作是必须就跟⼿指头盲打键盘那么熟练。
⾸先说下Vim的两种最常⽤模式,这是对菜鸟说的:),普通模式和输⼊模式,在普通模式下所有的按键都是命令,在输⼊模式下
可以输⼊字符。
在刚⽤vi打开⽂档时,都是普通模式,本⽂就介绍如何快速记住⼀些最基本的操作命令。
先讲讲在普通模式下的光标移动。
当你的打字速度到达⼀定境界时,⽐如我:),我⾮常不喜欢把⼿移到⼩键盘或者⽅向键那⾥去,因为那个地⽅操作起来太慢严重影响我⼼情有⽊有,所以VIM就是为⾼效的⼈设计的,它充分认识到这⼀点,在VIM⾥上下左右风别被 j k h l 代替,
vim命令进入编辑模式h:在最左边,当然是左移动啦!
l:同理,在最右边,右移动!
j:当刚打开⼀个⽂件,是不是⼀般都在开头,要往下移动啊!标准指法⾥右⼿⾷指在J上,⽤的最频繁,因此就⽤J来往下移咯!
k:有下移动当然得下移动,就在J旁边吧,多好记!
但是每次只移动⼀个,好⿇烦!
如果我要往下移动五⾏,按五次不是要累死我,⽽且磨损键盘!
⾼效的VIM当然已经解决问题,
在hjkl前加数字,⽐如3j就是向下移动三⾏,3l即使向右三⾏啦!
但是虽然hjkl移动很⽅便,但是只能逐个字符移动,好不爽,我想⼀个⼀个单词的移动,
w 可以解决,你⽤w就可以很⽅便的每次移动单词,
怎么记住这个快捷键呢,w就是word的缩写啊,亲!
w是向右移动⼀个单词,想移动多个单词,和上⾯⼀样加个数字就可以来,3w向右移动三个单词。
能向右移还得向左移动啊,b可以解决这个问题,b是back的缩写,后退⼀个单词嘛!3b的意思你懂的。
随便这⾥提下,w在移动过程中是每次光标都停留在单词的⾸字符,想让光标在移动中停留在尾字符或者
在⼀个单词中想跳到单词的尾字符,⽤“e”,end嘛
简单的移动掌握上⾯⼏个键就可以了,当然还得知道有时候我想快速移动到⼀⾏的开头和结尾怎么办呢,
数字“0”,第0个字符的意思,就可以将光标移到⼀⾏开头处,符号“$”,就是美元的符号,移动到⾏尾。
移动先介绍这么⼏个常⽤的,再讲讲⽂本操作
对⽂本的操作,当要求不怎么⾼时,⽆⾮就是插⼊⽂字,修改⽂字,删除⽂字,或者复制剪切粘贴这么⼏种。
插⼊⽂字,因为是insert,快捷键就是“i”,但是⽤你想在⼀⾏末尾插⼊的时候,⽤i就蛋疼了,因为i是在光标
前⾯插⼊字符,所以末尾插⼊字符就等于在倒数第⼆个字符的地⽅插⼊了!这时候要⽤”a“,a和i的功能完全⼀样,
add的缩写,增加的意思,在光标的后⾯插⼊字符。
有时候,特别是敲代码的时候,我们要另起⼀⾏对吧,在上⼀⾏的任意位置按“o”,open new line ,哈哈,你已经在
新的⼀⾏插⼊⽂字咯
修改⽂字,change,快捷键“c”,不过在普通模式下你按⼀个c没反应,为啥?你还没告诉VIM你要修改的对象呢,
光标停在那⾥,我是修改这个单词呢,还是要修改⼀整⾏呢。
cw,w是移动⼀个单词的快捷键,cw的意思就是对光标当前所在出到这个单词的结尾修改,cb的意思我就不说了。
那c2b呢?,嘿嘿,从光标往前两个单词修改!
c0,c$,分别是光标到本⾏开头和结尾的所有⽂本修改。
发现奥妙了吧,移动命令和⽂本操作命令可以搭配起来⽤有⽊有,这正是VIM最强⼤的地⽅,各个命令可以组合使⽤。
其实我们可以这么考虑,在移动命令中,如果按照word⾥边按住shift的思维,移动是不是就等于选中?移动的轨迹就是
⽂本的选择对象!所以在vim⾥⼀般的命令格式为
(command)(number)(text object)
command就是对⽂本的操作,“c”是修改,“d”是删除,“y”是复制等,number + text object 组合起来就是命令
所要操作的⽂本对象啦!
⽐如d2h,d是删除,2h是往左两个字符,那d2h就是删除光标左边的两个字符咯!
举⼀反三,各种组合等你实际应⽤中再⽤吧。
现在⽐如我有⼀个单词,love,不⼩⼼写成了loce,要把c改成v,如果我们⽤命令“c”的话,我们需要先定位到e,然后
c1h,改⼀个字符⽤得着这么⿇烦嘛?当然不⽤,把光标移动到”c”上,输⼊rv即可!r是replace,也是替换对吧,他的功能就是
替换⼀个字符,在r后⾯跟着的v就是新⽂本。很⽅便对不,~~~……
对应删除d,要删除⼀个字符,⽤x就可以了! x就是⼩学⽼师给我们打的⼤叉叉么,嘿嘿。
有时候我们不⼩⼼⼿贱,安了⼀个x,想撤销怎么办?
vim当然已经给我们考虑好了,你按“u”,u即是undo,就跟word⼀样,多次按u就是撤销多次哦~
插⼊修改删除我们都会了,下⾯我们来讲怎么剪切复制粘贴呢?
这时候我们要⽤到“p”命令,p就是place嘛,放置的意思。
前⾯我们说了删除命令“d”和“x”,其实删除就是剪切嘛,这些被删除的⽂本会被放到缓冲区中,
”p“命令会将缓冲区的中⽂本加⼊到当前光标的后⾯,如果我们⽤了d3j删除了3⾏,对于多⾏的⽂本,
p会放置在当前光标的下⼀新⾏。
对于x,有个妙⽤,还是⽤love这个单词吧,如果我输⼊成了loev,那我只要把光标移动到“e”上,然后xp就搞定了!呵呵,x先把当前字符给删除了,这时候光标在“v”,然后我们⽤p把“e”放到“v”后⾯,就完成两个字符的对掉啦。
剪切粘贴你也会了,复制怎么办呢,⽤”y“,⽐如yw,复制了⼀个单词,到想要放置的地⽅,p就好啦。
还得介绍⼏个⾮常规的组合。
cc,c更改,两个c算啥?两个c代表更改⼀整⾏
dd,删除⼀整⾏,
yy,复制⼀整⾏
VIM 是对命令的⼤⼩写敏感的,上⾯介绍的全是最基本的⼩写指令,下⾯来看看那⼤写命令的快捷之处!
想到本⾏的开头插⼊吗?⽤“I”
想到本⾏的末尾插⼊吗?⽤“A“
想在本⾏的上⼀⾏新开⼀⾏写代码吗?⽤“O”
想把剪切后者复制的⽂本放在光标之前吗?⽤“P“
想在移动过程中撇开那些烦⼈的标点嘛?⽤“W”,“B”,“E”
C是c$的缩写,即是从当前光标到本⾏末尾的所有⽂本更改
D是d$的简写
现在我有两⾏句⼦:
I love you ,please
come back.
上述两个句⼦应该在同⼀⾏对吧,我不⽤吧光标移动到第⼆⾏,然后按i进⼊插⼊模式,然后再来个退格
键。
我只需吧光标移到第⼀句,⽤⼀个”J“就搞定了~
在英⽂中每个句⼦的开头第⼀个字母要⼤写对吧,万⼀我当时没⼤写然后我要改呢,传统做法,把光标移动上去,然后rA,⽂艺青年,把光标移动到上⾯,⽤“~”搞定,这个符号在“1”的左边,按住shift键。
再介绍⼀个有⽤的命令,“.”,就是句号,vim会记住你上次操作是什么,然后⽤“.”就可以重复执⾏上次命令!
学完上述这些基本操作,就可以在⿊乎乎的屏幕上⼀把啦~!
当然vim的功能远远超过这些。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论