美文网首页VimLinux上古神器Vim
vim操作技巧:操作+文本选择

vim操作技巧:操作+文本选择

作者: xinxingzhao | 来源:发表于2016-06-06 12:51 被阅读182次

在编写代码的过程中,选择代码是一项非常常见的操作,其他文本编辑器都是使用鼠标进行选择,我在使用其他编辑器的时候,编写到一半的时候总是想着要去找鼠标,然后选择代码,然后在回到键盘上进行操作。对于vim来说代码选择再加上操作是非常强大的功能。

首先我们需要了解一下什么是文本对象,我对文本对象的理解就是在成对符号之间的字符串,比如",',{等,包括xml的标签之间的都属于文本对象。选中文我们都是为了操作文本,vim里面有一些按键用于操作,称之为操作符,比如d,c,y等,d表示删除,c表示删除插入,y表示提取。

我们以一个实例来解释文本操作加文本对象的使用。


This is a series of commands.

上面这句话假设光标所在位置是句首,我们想把commands改为hello,我们要完成这件事情有很多种方法,下面我们一个一个的来说。

第一种办法就是用l或者<Right>将光标移动到.上面,然后用i进入插入模式,使用<Backspace>删除commands,输入hello,<ESC>退出插入模式。不得不说,我在最开始接触vim的时候,我就是这么干,而且还这么干了很久,现在回想起来不得不佩服当初的愚蠢。因为我们还有更好的方式。

第二种办法使用$将光标一次性移动到行尾,使用i进入插入模式,或者是A将上面这个两个操作合并起来,删除commands,输入hello。这个方案明显比第一个方案高效了很多,因为我们可以一次就可以将光标移动到位了。当然,我们还有更加高效的办法。

第三种方案是使用fc将光标移动到c字母上面,使用cw删除commands并进入插入模式,输入hello。

上面这三种方案都还没涉及到文本对象的选择,如果我们使用fm将光标移动到commands上时,我们就需要使用到文本对象的选择了,因为cw是从当前光标开始删除,还会遗留下co没有被删除,所以我们可以输入ciw会将光标所在的单词整个删除并进入插入模式。这个方案在这里不一定是最好的,但是可以适用范围更加广。

现在我们改一下需求,删除commands和.号,因为这句话我们还没输入完成,我们输入hello之后,还需要继续输入,号。

这里就涉及到单词和字符串的概念了,单词就是我们平常所理解的单词,比如上面的This,is,commands等,而字符串是指两个空格之间的字符,如果我们需要删除commands.使用面向字符的文本对象操作起来会更加高效一些。

首先我们将光标移动到commands上面,也可以移动到.号上面,使用fc或者fm或者f.都可以,然后执行ciW会将commands.都删除并进入插入模式。

OK,我们再接着修改一下需求,我们仅仅只要将commands删除,而不进行其他操作。

首先我们还是要先移动光标到commands上面,和上面的方法是一样的,使用f+字符的模式来移动光标,这里特别说明一下,我以前很少使用f+字符来移动光标,一般都是用w,e,b等,后来我习惯使用f之后,在单行内移动光标的效率提升了很多,这里也建议大家使用这种模式来移动光标。我们要删除文本,所以执行命令以d开头,我们还用iw作为文本对象,即执行diw就可以删除commands了,比起使用c开头的命令,我们并不会进入插入模式,毕竟我们仅仅就是删除单词。但是我们会发现一个问题,就是of和.之间还有一个空格,我们需要再执行一次x才能删除空格。

这时候我们希望能一步到位,就是把commands和以前的空格以前删除了。这里就涉及到i和a的区别了,i表示的是单词本身或者字符串本身,a表示单词本身加上单词周围的一个或多个空格,为什么会有这样的区别呢?因为我们在编辑文本的时候,有时候需要删除+修改,有时候仅仅删除就好了。而删除修改空格往往需要保存原样,而删除总会有一个或多个多余的空格。所以在这种情况下,我们执行daw会一次性将commands和前面的空格一起删除,这样明显编辑效率就提高。

这样就形成了一个模式了,操作符(y,d,c等)+文本对象(iw,aw,iW,aW等),把这个模式推广开来,在其他类似的场合也能迅速的提高了编辑效率。大家可以通过:h text-objects来查看所有的文本对象。下面进行简单的列举一下,同时还能给出快速记忆的办法。

  • aw 一个单词包括一个空格,快速记忆:a word

  • iw 一个单词,快速记忆:inner word

  • aW 一个字符串包括一个空格,快速记忆:a WORD

  • iW 一个字符串,快速记忆: inner WORD

  • as 一个句子包括一个空行,快速记忆:a sentence

  • is 一个句子,快速记忆:inner sentence

到这里大家应该已经发现规律了吧,赶紧通过帮助文档查看完整的文本对象吧。

从这篇文章开始,针对vim的文章我换了一个写作方式,以我的实际编辑的例子来进行深入解析,这样可操作性更加强一些。

文章同步发布在:http://www.xinxingzhao.com/blog/2016/05/29/vim-select-boject.html

相关文章

  • vim操作技巧:操作+文本选择

    在编写代码的过程中,选择代码是一项非常常见的操作,其他文本编辑器都是使用鼠标进行选择,我在使用其他编辑器的时候,编...

  • vim技巧小更

    vim:全屏文本编辑器,没有菜单只有命令。 1、vim的工作模式 2、操作技巧以及命令 :set nu...

  • Linux的基础命令二

    一、文本操作 文本编辑器vi/vim vi命令是Linux操作系统和类Linux操作系统中最通用的全屏幕纯文本编辑...

  • vim操作技巧

    vim操作技巧 进入插入模式 很多新手进入插入模式都只是用 i。这样当然可以进入插入模式,但通常不是那么合适,因为...

  • vim操作技巧

    不知不觉使用vim已经有一些时间了,也算得上真正掌握使用技巧了吧。想不起来当初为什么去学习这个编辑器,也不记得怎么...

  • 入坑!VIM编辑器(最强整理版)

    VIM的三种模式 VIM 小抄图 VIM具体操作 进入vi的命令 移动光标命令 操作在命令模式下 插入文本命令 操...

  • 第五章-vim编辑器

    文本编辑器vim 1.vim常用操作 vim 是功能强大的全屏幕文本编辑器 作用:建立、编辑、显示文本文件 特点:...

  • vim常用命令

    自我总结篇: 对文件的操作技巧: vim文件一个有三种状态:命令(浏览/输入命令转变末行模式),文本(添加/编辑/...

  • vim编辑操作

    Vim有三种基本工作模式: + 命令模式 + 文本输入模式 + 末行模式。 vim基础操作 vim是从 vi 发展...

  • linux文本编辑器vi/vim

    linux文本编辑器vi/vim 超全!VIM 编辑器操作指南[https://zhuanlan.zhihu.co...

网友评论

    本文标题:vim操作技巧:操作+文本选择

    本文链接:https://www.haomeiwen.com/subject/oyordttx.html