转载请标明出处
欢迎交流
zltqzj@163.com
我是一个单线程妞~
对文本的操作,当要求不怎么高时,无非就是插入文字,修改文字,删除文字,或者复制剪切粘贴这么几种。
插入文字,因为是insert,快捷键就是“i”,但是用你想在一行末尾插入的时候,用i就蛋疼了,因为i是在光标 前面插入字符,所以末尾插入字符就等于在倒数第二个字符的地方插入了!这时候要用”a“,a和i的功能完全一样, add的缩写,增加的意思,在光标的后面插入字符。
有时候,特别是敲代码的时候,我们要另起一行对吧,在上一行的任意位置按“o”,open new line ,哈哈,你已经在
新的一行插入文字咯.(同时从普通模式转为编辑模式)
修改文字,change,快捷键“c”,不过在普通模式下你按一个c没反应.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就是新文本。很方便对不,~~~……
要删除一个字符,用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就好啦。(光标最开始需要放到单词的第一个字母上)
VIM 是对命令的大小写敏感的,上面介绍的全是最基本的小写指令,下面来看看那大写命令的快捷之处!
想到本行的开头插入吗?用“I” 想到本行的末尾插入吗?用“A“ 想在本行的上一行新开一行写代码吗?用“O” 想把剪切后者复制的文本放在光标之前吗?用“P“ 想在移动过程中撇开那些烦人的标点嘛?用“W”,“B”,“E”
C是c$的缩写,即是从当前光标到本行末尾的所有文本更改 D是d$的简写
现在我有两行句子:
I love you ,please come back.
上述两个句子应该在同一行对吧,我不用吧光标移动到第二行,然后按i进入插入模式,然后再来个退格键。
我只需吧光标移到第一句,用一个”J“就搞定了~
在英文中每个句子的开头第一个字母要大写对吧,万一我当时没大写然后我要改呢,传统做法,把光标移动上去, 然后rA,文艺青年,把光标移动到上面,用“~”搞定,这个符号在“1”的左边,按住shift键。(就说明了一个问题,~改大小写的)
再介绍一个有用的命令,“.”,就是句号,vim会记住你上次操作是什么,然后用“.”就可以重复执行上次命令!