Linux —— vim 编辑器

一、什么是vim

vim是一个功能强大、高度可定制的文本编辑器。以下是对vim编辑器的具体介绍:

  1. 历史背景:vim最初由Bram Moolenaar在1991年开发,作为vi编辑器的增强版,增加了许多新的特性和改进。它继承了vi的基本编辑功能和键盘快捷键,同时引入了多级撤销、语法高亮、自动缩进等现代编辑器特性。

  2. 模式系统:vim拥有多种操作模式,包括普通模式(Normal mode)、插入模式(Insert mode)和可视模式(Visual mode)等。用户可以根据需要在不同模式间切换,以实现高效的文本编辑。例如,在普通模式下,用户可以浏览文件、执行命令;在插入模式下,用户可以输入文本;在可视模式下,用户可以进行文本选择和操作。

  3. 定制性:vim支持高度定制化,用户可以通过修改.vimrc配置文件来调整编辑器的行为,如设置快捷键、更改配色方案、安装插件等。这使得vim能够适应不同用户的工作流程和喜好,成为一个灵活且强大的编辑工具。

  4. 跨平台性:vim支持多种操作系统,包括Windows、Mac和各种Linux发行版。无论使用哪种操作系统,用户都可以使用相同的Vim技巧进行文本编辑,实现跨平台的一致性和便利性。

二、vim之间的转换

三、命令模式

(一)、基本操作

  1. 移动光标

    • h:向左移动光标一个字符。
    • j:向下移动光标一行。
    • k:向上移动光标一行。
    • l:向右移动光标一个字符。
    • w:向后移动到下一个单词的开头。
    • b:向前移动到上一个单词的开头。
    • e:移动到当前单词的末尾。
    • 0:移动到行首。
    • $:移动到行尾。
  2. 删除文本

    • x:删除光标所在位置的字符。
    • dd:删除整行。
    • dw:删除从光标位置到下一个单词开头的所有字符。
    • D:删除从光标位置到行末的所有字符。
  3. 复制文本

    • yy:复制当前行。
    • yw:复制从光标位置到单词末尾的所有字符。
    • y$:复制从光标位置到行末的所有字符。
  4. 粘贴文本

    • p:在光标下方插入已复制或剪切的文本。
    • P:在光标上方插入已复制或剪切的文本。
  5. 替换文本

    • r:按需替换单个字符。
    • R:进入逐字符替换模式,按Esc退出。
  6. 撤销和重做

    • u:撤销最近的修改操作。
    • Ctrl + r:重做被撤销的操作。

(一)、高级操作

  1. 可视模式

    • v:按字符选择文本块。
    • V:按行选择文本块。
    • Ctrl + v:按块选择文本块。
  2. 命令行模式

    • ::进入命令行模式,用于执行各种命令。
  3. 宏录制

    • qa:开始录制宏。
    • q:结束录制宏。
    • @a:播放录制的宏。

四、编辑模式

(一)、进入和退出编辑模式

  1. 进入编辑模式:在命令模式下,可以通过按下i键进入编辑模式。此外,还可以使用a、o等键从不同位置开始插入文本。

  2. 退出编辑模式:按Esc键可以退出编辑模式,返回到命令模式。

五、末行模式

  1. 保存和退出

    • :w:保存文件。
    • :q:退出Vim。
    • :wq:保存并退出。
    • :q!:强制退出,放弃未保存的更改。
  2. 返回命令模式
    • 按Esc

六、案例1

1、使用vim创建anli1文件

2、输入内容,保存退出

3、进入anli1文件,设置编号

4、查看文件内容

按i进入编辑模式,编辑完按Esc进入然后按:进入末行模式,输入wq,回车,保存退出

进入anli1使用set nu查看序号

查看文件内容

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

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

相关文章

前端(async 和await)

1 async async 将 function 变为成为 async 函数 ●async 内部可以使用 await,也可以不使用,因此执行这个函数时,可以使用 then 和 catch 方法 ●async 函数的返回值是一个 Promise 对象 ●Promise 对象的结果由 async 函数执行的返回值决…

huggingface NLP -Transformers库

1 特点 1.1 易于使用:下载、加载和使用最先进的NLP模型进行推理只需两行代码即可完成。 1.2 灵活:所有型号的核心都是简单的PyTorch nn.Module 或者 TensorFlow tf.kears.Model,可以像它们各自的机器学习(ML)框架中的…

解决 MyBatis 中空字符串与数字比较引发的条件判断错误

问题复现 假设你在 MyBatis 的 XML 配置中使用了如下代码&#xff1a; <if test"isCollect ! null"><choose><when test"isCollect 1">AND exists(select 1 from file_table imgfile2 where task.IMAGE_SEQimgfile2.IMAGE_SEQ and im…

项目15:简易扫雷--- 《跟着小王学Python·新手》

项目15&#xff1a;简易扫雷 — 《跟着小王学Python新手》 《跟着小王学Python》 是一套精心设计的Python学习教程&#xff0c;适合各个层次的学习者。本教程从基础语法入手&#xff0c;逐步深入到高级应用&#xff0c;以实例驱动的方式&#xff0c;帮助学习者逐步掌握Python的…

Centos7上Jenkins+Docker+Git+SpringBoot自动化部署

文章目录 1.宿主机安装maven2.安装jenkins3.配置Jenkins4.Jenkins脚本自动安装JDK&#xff08;可选&#xff09; 1.宿主机安装maven wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz mv apache-maven-3.9.9-bin.tar.gz /usr/local…

前端-自定义Ant Design 表格(可编辑表格)

选取的的是&#xff1a;表格 Table - Ant Design 其实ant design本身就有增加和删除单列数据的封装好的表格&#xff0c;但是个人觉得那个功能繁多&#xff0c;自己实现封装也便于之后理解和二次使用。 初步效果&#xff08;舍去切换样式的功能&#xff09;&#xff1a; 突破的…

如何打造个人知识体系?

第一&#xff0c;每个人的基本情况不同。比如我有一个类别跟「设计」相关&#xff0c;这是自己的个人爱好&#xff0c;但不一定适合其他人。再比如我还有一个类别跟「广告文案」相关&#xff0c;因为里面很多表达可以借用到演讲或写作中&#xff0c;这也不适合所有人。 第二&am…

Java版-图论-最短路-Floyd算法

实现描述 网络延迟时间示例 根据上面提示&#xff0c;可以计算出&#xff0c;最大有100个点&#xff0c;最大耗时为100*wi,即最大的耗时为10000&#xff0c;任何耗时计算出来超过这个值可以理解为不可达了&#xff1b;从而得出实现代码里面的&#xff1a; int maxTime 10005…

【EthIf-04】 EthIf_CtrlIdx控制器索引

1 EthernetInterface功能spec 上层的模块访问以太网接口模块「EthernetInterface」&#xff0c;以太网接口模块通过以太网驱动程序层与多个以太网控制器交互的。 1.1 以太网控制器资源的索引 通过以太网接口模块中的以太网控制器资源的索引允许用户轻松访问多个以太网控制器…

IDEA报错:无效的源发行版、无效的目标发行版

1. 无效的源发行版 创建项目的时候&#xff0c;会遇见这个报错&#xff0c;原因就是编译的JDK版本与发布版本不一致。 解决方法&#xff1a; 1.1. 找到问题所在地 英文&#xff1a;File -> Project Structure ->Project Settings 中文&#xff1a;文件->项目结构 …

7_Sass Introspection 函数 --[CSS预处理]

Sass 的 Introspection 函数允许开发者检查和操作样式表的内部结构&#xff0c;包括选择器、属性、值等。这些函数提供了对编译过程中 Sass 文件内容的深入访问能力&#xff0c;使得更复杂的逻辑处理成为可能。以下是一些常用的 Sass Introspection 函数及其用法示例&#xff1…

【实现多网卡电脑的网络连接共享】

电脑A配备有两张网卡&#xff0c;分别命名为eth0和eth1&#xff08;对于拥有超过两张网卡的情况&#xff0c;解决方案相似&#xff09;。其中&#xff0c;eth0网卡能够连接到Internet&#xff0c;而eth1网卡则通过网线直接与另一台电脑B相连&#xff08;在实际应用中&#xff0…

怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev

本文引用怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev 在 vscode 设置项中配置 gopls 的 ui.navigation.importShortcut 为 Definition 即可。 "gopls": {"ui.navigation.importShortcut": "Definition" }ui.navigation.i…

试题转excel;word转excel;大风车excel

一、问题描述 一名教师朋友&#xff0c;偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运&#xff0c;几百道题几乎需要一个下午的时间 关键这些事&#xff0c;枯燥无聊费眼睛&#xff0c;实在是看起来就很蠢的工作 就想着做一个工具&#xff0c;可以自动处理…

如何对小型固定翼无人机进行最优的路径跟随控制?

控制架构 文章继续采用的是 ULTRA-Extra无人机&#xff0c;相关参数如下&#xff1a; 这里用于guidance law的无人机运动学模型为&#xff1a; { x ˙ p V a cos ⁡ γ cos ⁡ χ V w cos ⁡ γ w cos ⁡ χ w y ˙ p V a cos ⁡ γ sin ⁡ χ V w cos ⁡ γ w sin ⁡ χ…

java抽奖系统登录下(四)

6.4 关于登录 最简单的登录&#xff1a; 1、web登录页填写登录信息&#xff0c;前端发送登录信息到后端&#xff1b; 2、后端接受登录信息&#xff0c;并校验。校验成功&#xff0c;返回成功结果。 这种登录会出现一个问题&#xff0c;用户1成功登录之后&#xff0c;获取到后台…

面经zijie

以下是对 C# GC 和 Lua GC 的详细分析&#xff0c;包括它们的原理、特性、优化方式及对比。 C# GC&#xff1a;详细分析 C# 的垃圾回收器 (Garbage Collector, GC) 是一个自动内存管理系统&#xff0c;它在程序运行时负责管理对象的分配和释放&#xff0c;防止内存泄漏。 1. …

利用代理IP爬取Zillow房产数据用于数据分析

引言 最近数据分析的热度在编程社区不断攀升&#xff0c;有很多小伙伴都开始学习或从事数据采集相关的工作。然而&#xff0c;网站数据已经成为网站的核心资产&#xff0c;许多网站都会设置一系列很复杂的防范措施&#xff0c;阻止外部人员随意采集其数据。为了解决这个问题&a…

海康萤石摄像机接入EasyNVR流程:开启RTSP-》萤石视频添加到EasyNVR-》未来支持海康SDK协议添加到EasyNVR

EasyNVR目前支持GB28181、RTSP、ONVIF、RTMP&#xff08;推流&#xff09;这几种协议接入&#xff0c;目前正在增加海康HIKSDK、大华DHSDK等几种SDK的接入&#xff0c;我们今天就介绍一下萤石摄像机怎么通过RTSP接入到EasyNVR。 第一步&#xff1a;萤石摄像机开启 萤石设备默…

Pytest-Bdd-Playwright 系列教程(14):Docstring 参数

Pytest-Bdd-Playwright 系列教程&#xff08;14&#xff09;&#xff1a;Docstring 参数 前言一、什么是docstring?二、基本语法三、主要特点四、实际例子五、注意事项六、使用建议总结 前言 在自动化测试的过程中&#xff0c;我们经常需要处理复杂的测试数据或需要输入多行文…