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

news2024/11/22 17:13:06

文章目录

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

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

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

光标移动

光标移动可以通过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 实用技巧必知必会》

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】类和对象(4)--析构函数

一 概念 通过前面构造函数的学习&#xff0c;我们知道一个对象是怎么来的&#xff0c;那一个对象又是怎么没呢的&#xff1f; 析构函数&#xff1a;与构造函数功能相反&#xff0c;析构函数不是完成对对象本身的销毁&#xff0c;局部对象销毁工作是由编译器完成的。而对象在销…

发布自研大模型 夸克App将迎来全面升级

国产大模型阵营再添新锐选手。11月14日&#xff0c;阿里巴巴智能信息事业群发布全栈自研、千亿级参数的夸克大模型&#xff0c;将应用于通用搜索、医疗健康、教育学习、职场办公等众多场景。夸克App将借助自研大模型全面升级&#xff0c;加速迈向年轻人工作、学习、生活的AI助手…

Seatunnel单机和集群部署说明

编译 编译命令 mvn clean package -pl seatunnel-dist -am -Dmaven.test.skiptrue 部署 将seatunnel-dist\target目录下的apache-seatunnel-2.3.3-SNAPSHOT-bin.tar.gz上传至服务器 解压安装包到/opt/soft/seatunnel目录下 配置环境变量 export SEATUNNEL_HOME/opt/soft/s…

【MySQL】事务(下)

文章目录 1. 各个隔离级别的演示事务隔离级别 —— 读未提交事务隔离级别—— 读提交事务隔离级别 —— 可重复读事务隔离级别 —— 串行化脏读 不可重复读 幻读的理解 2. MVCC机制读写3个记录隐藏列字段undo日志模拟MVCCread view 理论 3. 读提交与 可重复读的区别两者本质区别…

分布式锁介绍

为什么需要分布式锁 在单机部署的系统中&#xff0c;使用线程锁来解决高并发的问题&#xff0c;多线程访问共享变量的问题达到数据一致性&#xff0c;如使用synchornized、ReentrantLock等。 但是在后端集群部署的系统中&#xff0c;程序在不同的JVM虚拟机中运行&#xff0c;且…

ISP 处理流程

#灵感# 摆烂时间太长了&#xff0c;感觉知识忘光光了。重新学习&#xff0c;常学常新。 因为公司文档都不让摘抄、截取&#xff0c;所以内容是工作的一些自己记录和网络内容&#xff0c;不对的欢迎批评指正。 1、ISP概述 ISP是Image Signal Processor 的简称&#xff0c;也就…

【计算机网络】VLAN原理和配置

目录 1、VLAN的原理 1.1、什么是VLAN 1.2、为什么要使用VLAN 1.3、VLAN的三种端口类型 1.4、VLAN的划分方法 2、VLAN的配置 1、VLAN的原理 1.1、什么是VLAN VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上…

key的性能保障,事件处理器,表单控件等介绍

4-2key设置-性能的保障 不能修改原数组的方法,如果想要修改原数组,就进行重新赋值 this.items this.items.filter((item) > item.message.match(/Foo/)) keyCode键的值**key设置-性能的保障**提高性能,可以对比老的虚拟dom,一样的就留着,不一样就补上Vue默认按照"就地…

2024年孝感初中级工程师职称评审要求

孝感工程类初级职称、中级职称职称评审相关要求&#xff0c;满足什么条件可以评审孝感职称呢&#xff1f;秋禾火告诉你 什么人可以在孝感申报职称 1.在孝感本地注册登记1年以上&#xff0c;按规定缴纳社保的的制造业、建筑业等生产类民营企业。2.参加评审的人员与所属企业签订…

使用CXF调用WSDL(二)

简介 本篇文章主要解决了上篇文章中遗留的对象嵌套问题&#xff0c;要想全面解析无限极的对象嵌套需要使用递归去解决 上文链接&#xff1a; 使用CXF调用WSDL&#xff08;一&#xff09; 上文回顾 上文使用了单方法“ call() ”解决了List和基本类型&#xff08;含String&…

用户登录信息如何存放

放到ThreadLocal LoginUserInfoDto 缓存登录信息的实体&#xff0c;我这里只放了一个手机号就够了。可以根据自己的需要修改&#xff0c;比如角色权限等等 package com.fox.domain.dto;/*** author * 当前登录人信息*/ public class LoginUserInfoDto {/*** 当前登录人 手机号…

什么是变更管理?对IT管理有什么帮助?

变更管理是指在最短的中断时间内完成基础架构,或服务的任一方面的变更而对其进行控制的服务管理流程。变更管理的目标是确保在变更实施过程中使用标准的方法和步骤&#xff0c;尽快地实施变更&#xff0c;以便最小化由变更所导致的业务中断&#xff0c;将变更对业务的影响减小到…

使用Tauri开发桌面应用

本文是对视频 Tauri入门教程[1]的学习与记录 Tauri官网[2] 对 node版本有要求 创建项目及目录介绍: 项目的目录结构如下 可以安装推荐的插件 执行npm run tauri build出错,根据 https://github.com/tauri-apps/tauri/issues/7430 执行 yarn add -D tauri-apps/cli && y…

【Windows】安装绿色版Mysql数据库 -- 可支持所有版本安装教程

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

【Python数据结构与算法】线性结构小结

&#x1f308;个人主页: Aileen_0v0 &#x1f525;系列专栏:PYTHON学习系列专栏 &#x1f4ab;"没有罗马,那就自己创造罗马~" 目录 线性数据结构Linear DS 1.栈Stack 栈的两种实现 1.左为栈顶,时间复杂度为O(n) 2.右为栈顶,时间复杂度O(1) 2.队列Queue 3.…

SpringCloudalibaba2

一、nacos简介 Nacos&#xff08;全称为"Nano Service"&#xff09;是一个用于动态服务发现、配置管理和服务元数据的开源平台。它由阿里巴巴集团于2018年开源&#xff0c;并逐渐成为云原生应用中的重要组件之一。 Nacos提供了以下主要功能&#xff1a; 1. 服务发…

Mysql5.7创建远程账号和新建数据库

文章目录 Mysql5.7创建远程账号和新建数据库创建远程账号新建默认数据库默认数据库指定字符集数据库写法一写法二 查看数据库列表查看数据库的定义声明 Mysql5.7创建远程账号和新建数据库 创建远程账号 CREATE USER mm% IDENTIFIED WITH mysql_native_password BY mm1122;Que…

iceoryx(冰羚)-Service Discovery

Service Discovery Summary and problem description IPC通道&#xff08;例如消息队列或UNIX域套接字&#xff09;上的服务发现是不可执行的&#xff0c;因为传输的数据较大&#xff0c;这可能会导致多个帧的传输。如果发现大量高频服务&#xff0c;例如在启动时&#xff0c…

易点易动固定资产管理系统助您轻松应对复杂的固定资产管理挑战

在现代企业运营中&#xff0c;固定资产是企业的重要财产&#xff0c;对于企业的发展和运营至关重要。然而&#xff0c;随着企业规模的扩大和业务的复杂化&#xff0c;固定资产管理面临着越来越多的挑战。传统的手工管理方法已经无法满足企业的需求&#xff0c;因此&#xff0c;…

Sentinel底层原理(下)

1、概述 Sentinel的核心原理&#xff0c;也就是前面提到暗流涌动的SphU.entry(…)这行代码背后的逻辑。 Sentinel会为每个资源创建一个处理链条&#xff0c;就是一个责任链&#xff0c;第一次访问这个资源的时候创建&#xff0c;之后就一直复用&#xff0c;所以这个处理链条每…