删代码一时爽,一直删一直爽。

删除应该是编码过程中非常高频率的操作了,不用vim的时候,一般就是选中删除或者跳到目标位置一直按Backspace或者Delete。而在vim中,你可以有上百中删除的姿势,比如下面这些操作。

我这里列出来的都是我日常中用的比较多的操作,且很多命令之间都是可以互相替换和组合的,比如i/a,d/s等等,这也是vim的灵活之处,大家具体场景可以活学活用。

一个字符

x

剪贴当前光表处的字符, 默认剪贴到vim的"("表示vim的默认寄存器,输入:reg 即查看“”对应的内容)寄存器

s

删除当前光标所在的字符,并进入插入模式

vd

选中当前字符,并删除;

v:进入Visual模式,默认选中当前光标处字符;

d:删除当前选中的内容

vc

选中当前字符,并更改(更改的意思就是删除并进入插入模式)

v:进入Visual模式,默认选中当前光标处字符;

c:删除当前选中字符,并进入插入模式

一部分

dw

删除从光标从到当前所在单词的词尾。

diw/daw

删除光标所在处的单词,i/a的区别在于i不会删除匹配符号(比如词尾的空格),a则反之

D/d$/

删除从光标到行尾的所有内容

d0/d^

删除从光标到行首的所有内容

dt{目标}

删除从光标到行内目标的位置。t可以理解为 到为什么位置/直到 的意思(until)

df{目标}

删除光标到f搜寻的目标位置(行内向后)

dF{目标}

删除光标到F搜寻的目标位置(行内向前)

以上d/D可以使用c/C进行替换,区别就是c会进行插入模式,d不会。

整行

dd

删除 当前行

S

删除当前行并进入Insert模式

Vd

进入Visual模式并选中当前行,然后删除选中内容

{行首}D

跳到行首,然后从光标所在处删到行尾

这里的行首操作可以有很多选择:

^ 跳到当前行第一个非空(非空格等非打印字符)字符

0 跳到当前行的第一个字符

_ 效果和^相同

{行首}C

跳到行首,删除到行尾并进入插入模式。

di{匹配符号}

比如代码:obj.equal((a + b) + "this is a string");

光标在第一个字符a的时候,输入di(或者di),就会删除括号内容内的a + b。

光标在停留在字符串内的字符t的时候,输入di“,就会删除整个字符串内的字符,留下一个空字符串。输入di(或者di)就会删除整个equal方法括号内的所有内容,留下一个空括号。

i可以理解为一种对称匹配,和下面a不同地方在于i不包含目标匹配符号,a则会包含目标匹配符号。

da{匹配符号}

参考上面的i的操作,i/a的不同之处在于i不好喊匹配符号,a则会包含匹配符号一起操作。

{数字}dd

从当前行开始,向下删除数字个行

:from,to d

从from行删除到to行,from和to可以替换为数字。

全部

:%d

vi删除选中内容_如何优雅的删除代码-VIM相关推荐

  1. python如何删除对象属性_如何优雅的删除对象中的指定属性?

    要优雅的话,使用 Lodash 的 omit 方法移除不要的属性: const object = { 'a': 1, 'b': '2', 'c': 3 }; const result = _.omit ...

  2. python删除excel内容_用python批量删除sheet

    因为工作关系维护了一个Excel文件,格式是xlsx,每天一个sheet,从17年下半年到目前已经有上百个sheet,导致文件越来越大,发邮件加载也变得很慢.想要删除一部分,保留近一个月的,当然手动删 ...

  3. vi删除选中内容_vi/vim使用总结

    vim 使用笔记 V1. 默认字符编码为utf8,打开使用gb2312编码的文件,中文全为乱码,如何恢复正常显示? 输入 edit ++enc=cp936 V2. 如何在vim系统中执行命令? 输入 ...

  4. delphi删除文本内容_文本编辑器EmEditor快捷键指令

    EmEditor是一款非常实用且专业的文本编辑器,该软件内含众多便于文本编辑的功能.帮助用户以轻松.便捷.高效的方式处理文本文件,受到众多用户的喜爱. 对于一名快节奏的用户而言,深度运用EmEdito ...

  5. sed删除以什么开头的内容_使用 sed 命令删除文件中的行

    原标题:使用 sed 命令删除文件中的行 Sed 代表流编辑器 Stream Editor ,常用于 Linux 中基本的文本处理.sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要 ...

  6. oracle 删除主键_大数据量删除的思考 4

    译者  汤健 · 沃趣科技数据库技术专家 出品  沃趣科技 在本系列的前一期文章中,我制作了一些图,突出显示了按表扫描执行大量删除操作和按索引范围扫描执行大量删除之间的主要区别.根据所涉及的数据模式, ...

  7. 怎样在页面上查找请求内容_怎样快速裁剪删除PDF文档的页面内容?

    有时在编辑PDF文档时,有大段的内容需要删除,且又不是整页无法直接通过删除页面解决,特别是扫描件无法直接用delete键清除时,有什么办法能快速解决呢?如何直接裁切不需要或保留需要的内容部分呢? 首先 ...

  8. java 删除二进制内容_二进制搜索树节点删除不删除替换Java

    我试图从二进制搜索树中删除节点.除了一个特定的情况,我可以成功删除树上的任何其他节点.如果目标节点有2个子节点,并且左子节点具有右子树,我可以找到正确的替换节点并将值切换到目标节点,但是永远不会删除替 ...

  9. listview qt 选中内容_演练: 操作Qt应用中的QListView

    演练:操作Qt应用中的List 背景 需要针对Qt的ListView组件开发的列表应用进行操作和自动化测试.ListView通常用于含有大量可选项的窗口,比如文件列表.清单等等.以下我们对QListV ...

最新文章

  1. 完成个人中心—导航标签
  2. 简单直接的方法解析JSON数据
  3. 待发箱outbox空间已满
  4. C/C++蓝桥杯1 备赛准备
  5. linux 窗口管理器_您最喜欢的Linux窗口管理器是什么?
  6. 微信公众号可以开店吗?
  7. OwinStartup不触发
  8. 关于:win远程桌面连接命令怎么用
  9. mscomm32.ocx 注册 和 web 调用案例
  10. 大白用html5制作,暖心大白纸雕灯的制作过程 给圣诞节礼物助力啦
  11. 如何在计算机中增加字体,电脑如何添加字体?WinXP系统新增个性字体的方法
  12. STM32F103_study67_The punctual atoms(STM32 OLED display experiment)
  13. 平衡运输问题及其表上作业法---指派问题及其匈牙利解法
  14. 【项目三、车牌检测+识别项目】四、使用LPRNet进行车牌识别
  15. 如何搭建一个react项目?
  16. UIP协议栈移植到u-boot详解
  17. 计算机操作系统基础知识总结
  18. 如何使用旅程可视化工具:简化网站和应用程序上的客户旅程图
  19. C# 矩阵和向量的相关计算(一)
  20. simulink 汉明码 用法_通信原理及MATLAB/Simulink仿真

热门文章

  1. 【解决方案】jquery live的change事件在IE下失效
  2. LINUX 下open*** 详细配置
  3. C++ 模板元编程简介
  4. db2执行sql脚本
  5. PL/SQL 12.0配置连接远程Oracle数据库
  6. laravel 知识点总结
  7. Week09《java程序设计》第九次作业总结
  8. .Net 开源项目资源大全
  9. PAT (Basic Level) Practise (中文)- 1002. 写出这个数 (20)
  10. ios笔记-单例文字代码详解