【极客时间-系列教程】Vim 实用技巧必知必会-更多常用命令:应对稍复杂的编辑任务

文章目录

  • 更多常用命令:应对稍复杂的编辑任务
    • 光标移动
    • 文本修改
    • 文本对象选择

更多常用命令:应对稍复杂的编辑任务

几个基本的命令已经了解了,可以操作简单的任务,但一些很复杂的命令,并没有了解到,只知道几个简单的命令并不一定会提高效率,要想提高效率还需要后面的更多命令。

光标移动

光标移动可以通过h、j、k、l 四个键实现,之所以用这几个键因为Bill Joy 开发vi的时候没有独立的光标键,现在光标键也是可以移动的。
Lear Siegler ADM-3A 终端键盘的排布(图片源自维基百科)
Lear Siegler ADM-3A 终端键盘的排布(图片源自维基百科)

之前的咱就不说了,现在我们来感受一些快捷的操作和按键吧
移动超过一个字符的情况使用b/w和B/W

  • b/B words Backward向后跳转
  • w/W Words forward向前跳转
  • 0 移动到该行的行头
  • ( 和 ) 移到上一句和下一句
  • { 和 } 移到上一段和下一段
  • gg 跳转到开头
  • G 跳转到结尾行

b/w的大小写区别在于

小写的跟编程语言里的标识符的规则相似,认为一个单词是由字母、数字、下划线组成的(不严格的说法),而大写的命令则认为非空格字符都是单词

找段文字快来试试神奇的效果吧,奥,对了这个是在普通模式下操作的。

文本修改

  • d 加动作来进行删除(dd 删除整行);D 则相当于 d$,删除到行尾。
  • c 加动作来进行修改(cc 修改整行);C 则相当于 c$,删除到行尾然后进入插入模式。
  • s 相当于 cl,删除一个字符然后进入插入模式;S 相当于 cc,替换整行的内容。
  • i 在当前字符前面进入插入模式;I 则相当于 ^i,把光标移到行首非空白字符上然后进入插入模式。
  • a 在当前字符后面进入插入模式;A 相当于 $a,把光标移到行尾然后进入插入模式。
  • o 在当前行下方插入一个新行,然后在这行进入插入模式;O 在当前行上方插入一个新行,然后在这行进入插入模式。
  • r 替换光标下的字符;R 则进入替换模式,每次按键(直到 )替换一个字符。
  • u 撤销最近的一个修改动作;U 撤销当前行上的所有修改。

以上命令是要熟记于心的,并进行实际操作,否则过一段时间就会忘掉了。

文本对象选择

以以下文本为例

if (message == "sesame open")
  • dw(理解为 delete word)会删除 ame␣,结果是 if (message == “sesopen”)
  • diw(理解为 delete inside word)会删除 sesame,结果是 if (message == " open")
  • daw(理解为 delete a word)会删除 sesame␣,结果是 if (message == “open”)
  • diW 会删除 “sesame,结果是 if (message == open”)
  • daW 会删除 “sesame␣,结果是 if (message == open”)
  • di" 会删除 sesame open,结果是 if (message == “”)
  • da" 会删除 “sesame open”,结果是 if (message ==)
  • di( 或 di) 会删除 message == “sesame open”,结果是 if ()
  • da( 或 da) 会删除 (message == “sesame open”),结果是 if␣
  • <C-B><C-F>,分别代表 Backward 和 Forward。

这章节讲述的很多,还有一部分是适合使用vim编写代码的,vim的博大精深,还需认真实操和记忆。

注:此文章为11月Day14学习笔记,内容来源于极客时间《Vim 实用技巧必知必会》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/144301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Freeswitch实现坐席状态

1.呼叫中心的坐席状态 官网地址&#xff1a;mod_callcenter | FreeSWITCH Documentation 2.对应关系 登儒&#xff1a;login 》 Login&#xff08;暂时没有这个明确&#xff0c;调用下面方法不过没有事件返回&#xff0c;可以用Onbreak代替&#xff09; EslMessage eslMessag…

SNMP监控解决方案

简单网络管理协议&#xff08;SNMP&#xff09;是一种网络协议&#xff0c;可帮助在设备之间传输数据&#xff0c;从而管理和监控互联网协议网络中存在的设备。网络连接着一系列设备&#xff0c;随着技术趋势的发展&#xff0c;新设备被引入其中。 网络上的大多数设备都支持网…

AI创作系统ChatGPT源码+AI绘画系统+支持OpenAI DALL-E3文生图,可直接对话文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。新增支…

java中常见的设计模式

最早概念是在建筑领域产生的&#xff0c;后来被引入到软件开发领域。 模式是解决一类问题的固定写法&#xff0c;一个模式用来解决一种问题&#xff0c;经过反复优化&#xff0c;最终得出来的。之前的程序员们&#xff0c;在工作中对某一类问题解决方式进行总结归纳&#xff0…

【java学习—十四】Class类(2)

文章目录 1. Class类2. Class类的常用方法3. 实例化Class类对象&#xff08;四种方法&#xff09; 1. Class类 在 Object 类中定义了以下的方法&#xff0c;此方法将被所有子类继承&#xff1a; public final Class getClass() 以上的方法返回值的类型是一个 Class 类&#xf…

负载均衡原理

负载均衡原理是什么&#xff1f; 负载均衡Load Balance&#xff09;是高可用网络基础架构的关键组件&#xff0c;通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。负载均衡&#xff0c;其核心就是网络流量分发&#xff0c;分很多维度。 …

修炼k8s+flink+hdfs+dlink(七:flinkcdc)

一 &#xff1a;flinkcdc官网链接。 https://ververica.github.io/flink-cdc-connectors/release-2.1/content/about.html 二&#xff1a;在flink中添加jar包。 在flink lib目录下增加你所需要的包。 https://kdocs.cn/join/gv467qi?f101 邀请你加入共享群「工作使用重要工具…

RobotFramework常见问题如何解决 ?

附加-问题解决 1. 执行robot用例的时候提示WebDriverException: Message: invalid argument: cant kill an exited process 查看驱动的log是否是提示 如果是的话&#xff0c;参照第七步安装图形界面 2. jenkins启动后发现打不开jenkins页面的问题解决 打开jenkins页面提…

CNN进展:AlexNet、VGGNet、ResNet 和 Inception

一、说明 对于初学者来说&#xff0c;神经网络进展的历程有无概念&#xff1f;该文综合叙述了深度神经网络的革命性突破&#xff0c;从AlexNet开始&#xff0c;然后深度VGG的改进&#xff0c;然后是残差网络ResNet和 Inception&#xff0c;如果能讲出各种特色改进点的和改进理由…

Springboot监控

1. 监控的理解 什么是监控&#xff1f;就是通过软件的方式展示另一个软件的运行情况&#xff0c;运行的情况则通过各种各样的指标数据反馈给监控人员。例如网络是否顺畅、服务器是否在运行、程序的功能是否能够整百分百运行成功&#xff0c;内存是否够用&#xff0c;等等等等。…

Jordan 引理

See https://wuli.wiki/online/JdLem.html#ex_JdLem_1

嵌入式工作岗位未来会不会越来越少?

今日话题&#xff0c;嵌入式工作岗位未来会不会越来越少&#xff1f;未来的嵌入式岗位机会将会逐渐增多&#xff0c;因为嵌入式技术是万物互联的基础&#xff0c;从智能手表到智能汽车&#xff0c;嵌入式都扮演着关键角色。虽然相比计算机科学CS&#xff0c;嵌入式领域的天花板…

libgdx播放视频、libgdx播放MP4、libgdx播放动画(二十二)

libgdx播放视频、libgdx播放MP4、libgdx播放动画 转自&#xff1a;https://lingkang.top/archives/libgdx-bo-fang-shi-pin 转自&#xff1a;https://lingkang.top/archives/libgdx-bo-fang-shi-pin 转自&#xff1a;https://lingkang.top/archives/libgdx-bo-fang-shi-pin 最…

(C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。

要求&#xff1a;原始数组的数据从键盘随机输入&#xff0c;新数组以4行4列的方式输出。 #include<stdio.h> int main() {int matrix[4][4],matrix2[4][4];int count;for(int i 0;i < 4;i )for(int j 0;j < 4;j )scanf("%d",&matrix[i][j]);for(i…

Day40 Advanced Docking System使用方法

1.ads简介 Qt自带的铆接部件是QDockWidget&#xff0c;也被称为浮动窗口部件。QDockWidget可以用来创建可停靠的面板&#xff0c;它能够与QMainWindow、QDialog或任何具有centralWidget的QMainWindow派生类进行连接。QDockWidget提供了一个框架&#xff0c;允许用户将内容面板放…

C 语言指针怎么理解?

今日话题&#xff0c;C 语言指针怎么理解&#xff1f;让我用更简洁的方式来表达这个内容&#xff1a;就像桌面上的快捷方式一样&#xff0c;指针也可以有多层引用。我们可以将指针比作快捷方式的图标&#xff0c;快捷方式可以指向游戏&#xff08;普通指针&#xff09;&#xf…

think5和fastadmin验证规则的使用

在fastadmin中使用验证规则只需要两步即可 第一步 首先在控制器中开启验证规则 protected $modelValidatetrue;//开启验证规则protected $modelSceneValidatetrue;//开启场景验证第二步 在 app\admin\validate 和控制器对应的 validate 中添加 验证规则以及场景验证 <?…

汽车SOA架构设计方法及关键技术

SOA概述 软件定义汽车时代&#xff0c;面向服务的软件架构&#xff08;Service Oriented Architecture, SOA&#xff09;为软件定义汽车提供了一套良好的解决方案。 Q&#xff1a;什么是SOA&#xff1f; SOA将车辆传统的面向信号的架构升级为面向服务的架构&#xff0c;面向…

Leetcode刷题详解——不同路径 III

1. 题目链接&#xff1a;980. 不同路径 III 2. 题目描述&#xff1a; 在二维网格 grid 上&#xff0c;有 4 种类型的方格&#xff1a; 1 表示起始方格。且只有一个起始方格。2 表示结束方格&#xff0c;且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的…