Vim小白学习指南

news2024/12/27 4:19:02

博客

Vim编辑器简介

Vim是一个非常高效的文本编辑器,最初源于Vi编辑器。它以其强大的文本编辑能力和快捷键而闻名于程序员和系统管理员。Vim的特别之处在于它提供了多种模式,每种模式都有不同的功能。

Vim的基本模式

1. 普通模式(Normal Mode)

这是Vim启动时的默认模式,用于浏览和编辑文本。在这个模式下,每个按键都是一个命令,而不是直接输入文字。

重要的普通模式命令:

  • h:Horizontal Move Left(水平向左移动)
  • j:Jump Down(向下跳转)
  • k:Keep Upward(向上保持/移动)
  • l:Linear Move Right(线性向右移动)
  • x:eXterminate Character(删除当前字符)
  • dd:Delete Destination Line(删除目标行)
  • yy:Yank Whole Line(复制整行)
  • p:Paste(粘贴)

2. 插入模式(Insert Mode)

这是你输入文本的模式。从普通模式进入插入模式的方法:

  • i:Insert Before(在当前位置前插入)
  • a:Append After(在当前位置后追加)
  • o:Open New Line(打开新行)
  • I:Insert at Line Start(行首插入)
  • A:Append at Line End(行尾追加)

Esc 键可以返回普通模式。

3. 可视模式(Visual Mode)

用于选择文本块。

  • v:Visual Character Mode(字符可视模式)
  • V:Visual Line Mode(行可视模式)
  • Ctrl+v:Visual Block Mode(块可视模式)

文件操作

打开和保存文件

  • :e filename:Edit File(编辑文件)
  • :w:Write(写入/保存)
  • :wq:Write and Quit(写入并退出)
  • :q!:Quit Forced(强制退出)

编辑技巧

文本编辑

  • u:Undo(撤销)
  • Ctrl+r:Redo(重做)
  • dw:Delete Word(删除单词)
  • cw:Change Word(修改单词)
  • :%s/old/new/g:Substitute Global(全局替换)

进阶操作

多文件操作

  • :split filename:Split Horizontal(水平分屏)
  • :vsplit filename:Vertical Split(垂直分屏)
  • Ctrl+w:Window Switch(窗口切换)

学习建议

  1. 从基础命令开始
  2. 经常使用,培养肌肉记忆
  3. 利用 vimtutor 命令进行交互式学习
  4. 不要试图一次性记住所有命令
  5. 逐步积累,慢慢熟悉

练习小技巧

为了帮助你更好地学习,我建议你:

  • 每天花15-30分钟练习Vim
  • 尝试用Vim编辑一些简单的文本文件
  • 记住几个常用命令,逐步扩展
  • 不要害怕犯错,Vim有很多撤销功能

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

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

相关文章

新型大语言模型的预训练与后训练范式,阿里Qwen

前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整…

爬虫专栏第一篇:深入探索爬虫世界:基础原理、类型特点与规范要点全解析

本专栏会对爬虫进行从0开始的讲解,每一步都十分的细致,如果你感兴趣希望多多点赞收藏关注支持 简介:文章对爬虫展开多方面剖析。起始于爬虫的基本概念,即依特定规则在网络抓取信息的程序或脚本,在搜索引擎信息提取上作用显著。阐述其于大数据背景下可助力获取并处理分析数…

LocalDateTime序列化(跟redis有关)

使用过 没成功,序列化后是[2024 11 10 17 22 20]差不多是这样, 反序列化后就是: [ 2024 11 10.... ] 可能是我漏了什么 这是序列化后的: 反序列化后: 方法(加序列化和反序列化注解)&…

UE5 打包报错 Unknown structure 的解决方法

在虚幻引擎5.5 打包报错如下: UATHelper: 打包 (Windows): LogInit: Display: LogProperty: Error: FStructProperty::Serialize Loading: Property ‘StructProperty /Game/Components/HitReactionComponent/Blueprints/BI_ReactionInterface.BI_ReactionInterface…

webrtc ios h264 硬编解码

webrtc ios h264 硬编解码 一 ios 系统支持 从ios8开始,苹果公司开放了硬解码和硬编码API(即 VideoToolbox.framework API) 二 主要api 1 主要解码函数 VTDecompressionSessionCreate // 创建解码 session VTDecompressionSession…

【大模型】深度解析 NLP 模型5大评估指标及 应用案例:从 BLEU、ROUGE、PPL 到METEOR、BERTScore

在自然语言处理(NLP)领域,无论是机器翻译、文本生成,还是问答系统开发,模型性能评估指标始终是开发者绕不开的工具。BLEU、ROUGE、PPL(困惑度)、METEOR 和 BERTScore 是五个最具代表性的指标&am…

idea 自动导包,并且禁止自动导 *(java.io.*)

自动导包配置 进入 idea 设置,可以按下图所示寻找位置,也可以直接输入 auto import 快速定位到配置。 Add unambiguous imports on the fly:自动帮我们优化导入的包Optimize imports on the fly:自动去掉一些没有用到的包 禁止导…

Mac安装及合规无限使用Beyond Compare

文章目录 Beyond CompareBeyond Compare简介Beyond Compare安装Beyond Compare到期后继续免费使用 Beyond Compare Beyond Compare简介 Beyond Compare 是一款由 Scooter Software 开发的文件和文件夹比较工具。它主要用于对比两个文件或文件夹之间的差异,并支持文…

Navcat连接sqlserver报错:[IM002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0)

Navcat连接sqlserver报错:[IM002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) 原因:navicat没有找到sqlserver驱动 解决:安装sqlserver驱动,下载后双击安装,安装完重新连接就可以了…

IDEA Maven 打包找不到程序包错误或找不到符号,报错“程序包不存在“

参考文章:https://blog.csdn.net/yueeryuanyi/article/details/14211090 问题:IDEA Maven 打包找不到程序包错误或找不到符号,报错“程序包不存在“编译都没问题 解决思路 – >【清除缓存】 1. 强制刷新Maven缓存 选择 Maven 标签,Exe…

微信小游戏/抖音小游戏SDK接入踩坑记录

文章目录 前言问题记录1、用是否存在 wx 这个 API 来判断是微小平台还是抖小平台不生效2、微小支付的参数如何获取?3、iOS 平台不支持虚拟支付怎么办?微小 iOS 端支付时序图:抖小 iOS 端支付:4、展示广告时多次回调 onClose5、在使用单例时 this 引起的 bug6、使用 fetch 或…

vue 2 父组件根据注册事件,控制相关按钮显隐

目标效果 我不注册事件,那么就不显示相关的按钮 注册了事件,才会显示相关内容 实现思路 组件在 mounted 的时候可以拿到父组件注册监听的方法 拿到这个就可以做事情了 mounted() {console.log(this.$listeners, this.$listeners);this.show.search !…

服务熔断-熔断器设计

文章目录 服务为什么需要熔断熔断器设计思想熔断器代码实现 服务为什么需要熔断 对于服务端采用的保护机制为服务限流。 对于服务调用端是否存在保护机制? 假如要发布一个服务 B,而服务 B 又依赖服务 C,当一个服务 A 来调用服务 B 时&#x…

【Maven】依赖冲突如何解决?

准备工作 1、创建一个空工程 maven_dependency_conflict_demo,在 maven_dependency_conflict_demo 创建不同的 Maven 工程模块,用于演示本文的一些点。 什么是依赖冲突? 当引入同一个依赖的多个不同版本时,就会发生依赖冲突。…

代理IP地址的含义与设置指南‌

在数字化时代,互联网已经成为我们日常生活不可或缺的一部分。然而,在享受互联网带来的便利的同时,我们也面临着隐私泄露、访问限制等问题。代理IP地址作为一种有效的网络工具,能够帮助我们解决这些问题。本文将详细介绍代理IP地址…

【MyBatis】验证多级缓存及 Cache Aside 模式的应用

文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口, 采用 Redis 会引入什么问题?万一遇到需强一致场景&#x…

组播基础实验

当需要同时发给多个接受者或者接收者ip未知时使用组播 一、组播IP地址 1、组播IP地址范围 组播地址属于D类地址:224.0.0.0/4(224.0.0.0-239.255.255.255) 2、分类 (1)链路本地地址(link-local&#xf…

智慧银行反欺诈大数据管控平台方案(二)

智慧银行反欺诈大数据管控平台建设方案,通过系统性整合多元化数据源,融合先进的大数据处理与机器学习技术,构建一个具备实时性、智能性和高度集成能力的反欺诈系统框架。该方案以提升银行风险管理效率与精度为目标,创新性地采用多…

(免费送源码)计算机毕业设计原创定制:Java+ssm+JSP+Ajax SSM棕榈校园论坛的开发

摘要 随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品,从而也带动了一系列与此相关产业,是人们的生活发生了翻天覆地的变化,而网络化的出现也在改变着人们传统的生活方式,包括工作,学习,社交…

#渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现01-笑脸漏洞(vsftpd)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…