操作符+位移

x命令可以删除一个字符,4x可以删除4个字符。
dw可以删除一个word,w事实上是向后移动一个word的命令;dw可以接上一个任意一个位移命令,它将删除从当前光标开始到位移终点处的文本内容。
 
  • d可以删除文本;
  • c可以修改文本;
 
操作符+位移命令,首先键入一个操作符命令,比如d或者c,接下来是一个位移命令,比如0,$,w等操作。
  • dd可以删除整行;
  • cc可以改变整行;
有一些操作符+位移命令的使用频率非常高,将它们以一个单独的字符作为其快捷方式:
  • x代表dl,删除当前光标下的字符;
  • X代表dh,删除当前光标前面的字符;
  • D代表d$,删除当前光标到行尾的内容;
  • C代表c$,修改当前光标到行尾的内容;
  • s代表cl,修改一个字符;
  • S代表cc,修改一整行;
 

替换单个字符

r命令不属于操作符命令,因此不适于上述说明中的“操作符+位移”操作中。它等待你键入下一个字符用以替换当前光标下的那个字符,类似于cl或s命令,但是不需要事后使用ESC回到正常编辑模式。
 
r命令支持前缀,可以使用3ra命令将当前光标后面的3个字符都替换成a,即aaa;
 

重复执行改动操作

“.”命令是vim中一个简单强大的命令,会重复执行上一次做的改动,记住,是改动,使用命令修改文本,但是不包括u,Ctrl+R和以“:”开头的命令。”.”是在Normal模式下执行,重复的是命令而不是改动的内容。如果要搜索abc并将其替换成def,可以按照以下方式执行:
  1. /abc, 查找abc字符串;
  2. cwdef,将当前word替换成def;
  3. esc,退出编辑模式;
  4. n并执行.就可以重复替换了。
 

Visual模式

删除简单,短小的文本对象,“操作符+位移”命令就已经足够使用,但是如果想像windows中文本编辑器移动光标选择一整段文本,就需要进入Visual模式。
 
v命令可以进入Visual模式,此时移动光标就可以覆盖想操纵的文本范围,移动操作与正常模式相同,同时被选中的文本将会高亮显示,选择完成后,键入操作符命令。
 
ESC命令退出Visual模式。
 
如果想要整行地操作文本,可以使用大写”V"进入Visual模式,此时就会发现被选中的文本是一整行为单位的,左右移动失效。
 
在使用d或者x这样的命令删除文本时,被删除的内容还是被保存下来的,可以使用p命令取回来(put回来)。p命令会将删除的整行内容都放到光标的下面作为单独一行,如果删除的是一行中的部分内容,p命令就会把这部分内容放到当前光标后面。
 
P命令与p一样都能取回被删除的内容,不过其将被取回的内容置于光标之前。可以多次调用p或者P来调回被删除的内容。
 

复制文本

要把文本内容从一个地方复制到另一个地方,一种比较折腾的方法就是先删除它,再用u恢复,然后用p粘贴到你想要编辑的地方上去。不过对于复制有一种非常方便的方法,就是使用y命令(yanking),y命令操作符会将文本复制到一个寄存器中,然后用p命令将其取回。
 
y也是个命令,同时也可以像d,x,c等命令一样,使用yw复制一个word,yb向前复制一个word,yy可以复制一整行(像dd一样),使用nyy可以复制下面的n行数据。 
 

文本对象

 
如果光标位于一个单词的中间,而需要删除整个单词,可能需要把光标移到该单词的开头,然后用dw命令,不过有个简单的方法,使用命令”daw”。
 
daw中的d是删除命令,aw是一个文本对象(A word),整体的意思可以表述为(Delete a word),该word之后的空白字符也会被删除。
 
如果要修改一行的数据,可以使用命令cis,就会将光标置于原来的空白位置,此时可以键入新的语句;如果想要删除整个句子,如果希望将其后面的空白也删除,此时可以使用das命令。
 

替换模式

 
R命令可以让vim进入replace模式,这个模式下,所有输入的字符都会替换掉当前光标下的字符,直到键入ESC为止,或是整行没有字符可以替换时,继续拓展该行的内容,并不会延续到下一行。
 
 
 

Vim编辑器基本操作学习(二)的更多相关文章

  1. Vim编辑器基本操作学习(一)

      最近在服务端编辑文件总不可避免要使用vim编辑器,下面就对学习到的常用命令进行总结,以便自己以后查看.   基本编辑命令   删除字符:x 删除一行:dd 删除换行符:J,同时将两行合并成一行 撤 ...

  2. vim编辑器基本操作介绍

    vim编辑器基本操作介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 可能很多小伙伴都听说过vi编辑器或是vim编辑器.它们是Unix和Linux世界最流行的编辑器之一,他们的特 ...

  3. git vim 编辑器基本操作

      用 git 命令行提交文件时,默认使用 vim 编辑器,基本操作: 按 a, i 或 o 进入编辑模式 按 ESC 进入操作模式 在操作模式下,:wq 为写入退出,:q! 不保存退出

  4. vi/vim编辑器基本操作

    一.vi/vim的三种模式 vi编辑器有三种模式:命令模式(command mode).插入模式(Insert mode).底行模式(last line mode). 就是你直接用命令(vi  文件名 ...

  5. Vim编辑器的学习

    在老师的带领下,最近也算是涨了见识.自己安装并尝试着体验了Vim的一些基本功能,可能是作为初学者,总感觉其指令太过复杂,就文本编辑而言,给我的最大感受就是神而乎之,一头雾水.目前我对这款编译器的掌握水 ...

  6. vim编辑器基本操作及文件权限,sudo命令等介绍

    一:vim 操作命令,在命令模式下操作 pageup 往上翻页 pagedown 往下翻页 H 移动到屏幕首行 gg 移动光标到文档的首行 前面加数字n表示移动到n行内容 G 移动到文档最后一行/查找 ...

  7. vim编辑器基本操作

    命令模式: 按(i)键进入编辑模式,将在光标前面插入: 按(I)键进入编辑模式,将在光标行首插入: 按(a)进入编辑模式,在光标后面插入: 按(A)键进入编辑模式,将在光标行末插入: 按(o)进入编辑 ...

  8. 【第五课】VIM编辑器(学习笔记)

    4月10日学习笔记打卡

  9. VI和VIM编辑器深入学习笔记--基本vi命令

    双十一过后有点闲,找本书给这段时间碰到的一些问题充充电,先从linux vi命令开始: 移动光标: “h” 向左一个字符,“j”向下一行,“k” 向上一行,“l” 向右一个字符(虽然我们可以用方向键, ...

随机推荐

  1. html5: 新特性(表单)

    表单: 在html4中,表单内的从属元素必须写在表单内部.在html5中,可以吧他们书写在页面任何位置,然后指定form属性,属性值为表单ID,这样就指定表单了. formaction,formmet ...

  2. DataTable和实体类通过反射相互转换

    using System.Runtime.Serialization; using System.Data; using System.Reflection; using System.Collect ...

  3. Kotlin Reference (三) Coding Conventions

    most from reference 命名规则 1.使用驼峰式命名规则,尽量避免在命名中使用下划线 2.类型以大写字母开头 3.方法和属性以小写字母开头 4.使用4个空格缩进 5.public的方法 ...

  4. GitHub原来也可以用SVN客户端的.

    不知道是不是自己真的太宅了. 一直以为只能用git client 来clone github工程的.  偶然今日发现还可以用 SVN 来下载的. 果断一试. 太好用了. 这回windows 上不用纠结 ...

  5. python爬虫入门(4)-补充知识:XPath 教程(转自w3school)

    http://www.w3school.com.cn/xpath/index.asp 参考手册:http://www.w3school.com.cn/xpath/xpath_functions.asp ...

  6. Codeforces 280C Game on tree【概率DP】

    Codeforces 280C Game on tree LINK 题目大意:给你一棵树,1号节点是根,每次等概率选择没有被染黑的一个节点染黑其所有子树中的节点,问染黑所有节点的期望次数 #inclu ...

  7. 使用 Visual Studio Code(VSCode)搭建简单的 Python + Django 开发环境

    写在前面的话 作为有个 Python 菜逼,之前一直用的 Pycharm,但是在主题这一块怎么调整都感觉要么太骚,看起来不舒服,要么就是简直不能看.似乎用大 JB 公司 IDE 的人似乎都不怎么重视主 ...

  8. Python 实现汉诺塔问题(递归)

    有三根柱子一次为A,B,C 现在A柱子上有3个块,按照汉诺塔规则移动到C柱子上去,打印步骤? 我们这样理解:A为原始柱,C为目标柱,B为缓冲柱 1.定义一个函数move(n,a,b,c),n为原始柱上 ...

  9. python 之 list,tuple,dict,set

    基本类型,  其中set好像提到的很少 list : []  根据字面, 是一个列表,  所以有序, 可以通过序号方位 tuple: ()  是不变的list, 通过序号访问 dict: {},  字 ...

  10. [datatables杂记] sAjaxSource 数据源 Search 后 fnInitComplete 不执行。

    var oTable = $('#div_list').dataTable({ "oLanguage": {//语言国际化 "sUrl": "/Adm ...