【Vim】基本操作及命令集详解

news2024/9/24 9:27:03

概述

Vim 是从 vi 发展出来的一个文本编辑器。vi 内置在Linux系统中,是vim的简化版编辑器,vim则需要进行安装使用。Vim代码补全、编译及错误跳转等方便编程的功能特别丰富,可以实现高效率移动和高效的输入,在程序员中被广泛使用。其真正的优势在于其可扩展性。 Vim有自己的脚本语言,称为Vim脚本(也称为vimscript或VimL),用户可以通过多种方式使用它来增强Vim,例如为其他编程语言启用语法高亮,自动化语法检查或将Vim与其他应用程序和服务。除了可扩展性之外,Vim还具有高度可配置性,包含Vim核心全局设置(称为vimrc)的文件可以在各个Vim安装之间共享。下面我来介绍一下Vim的基础操作和常用命令集。

目录

概述

预备知识(三种模式介绍)

 vim的基本操作

vim指令集 

vim正常模式下命令集

进入插入模式

 移动光标

 删除文字

复制 

替换 

跳至指定的行 

 撤销上一次操作

 更改内容

vim底行模式下命令集 

列出行号

 跳到文件中的某一行

 查找字符

保存文件并退出


vim的安装命令: yum install -y vim

预备知识(三种模式介绍)

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底行命令模式(Last line mode)。 这三种模式的作用分别是: 

一般/ 命令模式(Normal mode)Vim 启动后,默认进入命令模式。在此模式下,我们可以 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode下
输入模式(Insert mode):只有在此模式下我们可以编辑文本内容。在命令模式下按 i、 a 、o等键可以进入输入模式, 按「ESC」键可回到命令行模式
底行模式(Last line mode)在命令模式下,shift+: 即可进入底行模式。这时光标会移到屏幕底部,在这里可以输入相关指令进行 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
要查看你拥有的所有模式,可以在底行模式下输入查看: :help vim-modes

 vim的基本操作

图解记忆:

键盘实现vim一切操作

 在Linux系统提示符号后输入vim及文件名称后,进入vim编辑画面:

 对于三种模式的相互切换:

[正常模式]切换至[插入(输入)模式]: 可以输入i、a、o任意一键切换(但三种按键进入的插入模式对应的效果不一样,下文会介绍)
[ 正常模式 ] 切换至 [底行 模式]:  按下shift + :, 其实就是输入 :
切换至 [正常模式]: 在任何模式下,都可以按 Esc 键返回到命令模式,可以多按几次 Esc 键,保证顺利返回到命令模式
退出vim及保存文件:
底行模式下输入 
  • w (保存当前文件)
  • wq (输入「wq」,保存文件并退出vim)
  • q! (输入q!,不存盘强制退出vim)

vim指令集 

大部分指令,全部都是在命令模式下进行的(不是底行模式,也不是插入模式)

vim正常模式下命令集

进入插入模式

  • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字
  • 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件
  • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字

 移动光标

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」「j」「k」、「l」,分别控制光标左、下、上、右移一格;
  • 按[ gg]或[ngg]:进入到文本首行或者跳转到第n行
  • 按「shift+g (G)」或[nG]:移动到文章的最后或跳转到第n行
  • 按「shift+4 ($) 」:移动到光标所在行的“行尾”;
  • 按「shift+6 (^)」:移动到光标所在行的“行首“;
  • 按「w」:光标跳到下个字的开头;
  • 按「e 」:光标跳到下个字的字尾;
  • 按「b 」:光标跳到上个字的开头;
  • 按「 nl 」:光标移到该行的第n 个位置;
  • 按「 ctrl + b 」:屏幕往 “ 后 ” 移动一页;
  • 按「 ctrl + f 」:屏幕往 “ 前 ” 移动一页;
  • 按「 ctrl +u 」:屏幕往 “ 后 ” 移动半页;
  • 按「 ctrl + d 」:屏幕往 “ 前 ” 移动半页

 删除文字

  • 按「x」或「nx」:每按一次,删除光标所在位置的一个字符或删除包括光标所在位置及其后面的n个字符
  • 按「X」或「nX」:大写的X,每按一次,删除光标所在位置的前面一个字符或删除光标位置之前的n个字符
  • 按「dd」或「ndd」:对当前行或者当前行在内的n行内容进行删除操作(搭配p可进行剪切操作)

复制 

  • 按「yw」或「nyw」:将光标所在之处到字尾的字符(或指定n个光标后的字符)复制到缓冲区中
  • 按「yy」或「nyy」 :复制当前行或者复制当前行所在的指定若干行
  • 按「p」:将缓冲区内的字符贴到光标所在位置;注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
  • 按「dd+p」:进行剪切操作 ,只按「dd」等于删除

替换 

  • 按「r」或「nr」:替换光标所在处的字符;
  • 按「R」:替换光标所到之处的字符,直到按下「ESC」键为止;
  • 按「shift+~」:实现大小写转换

跳至指定的行 

  • 按「ctrl+g」列出光标所在行的行号;
  • 按「nG」:例如,「15G」,表示移动光标至文章的第15行行首.

 撤销上一次操作

  • 按「u」:撤销刚才的操作,回到上一个操作。按多次“u”可以执行多次撤销;
  • 「ctrl + r」: 对撤销的恢复 

 更改内容

  • 按「cw」:更改光标所在处的字到字尾处
  • 按「cnw」:例如,「c3w」表示更改3个字

vim底行模式下命令集 

列出行号

  • 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号

 跳到文件中的某一行

  • 「n」: 在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行

 查找字符

  • 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。
  • 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

保存文件并退出

  • 「w」: 在冒号输入字母「w」就可以将文件保存起来
  • 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离vim
  • 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件

 


本节完

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

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

相关文章

CPT203-Software Engineering(3)

文章目录9. Software Design9.1 Architecture Design9.1.1 Architectural patterns9.2 Component-level Design9.2.1 Component9.2.2 Views of component9.2.3 Component-level design process9.3 User Interface Design9.3.1 Interface Design Process9.3.2 Interface Design …

蓝桥杯Python练习题16-最大最小公倍数

资源限制   内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述   已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式   输入一…

三维数学(一)

视频教程:https://www.bilibili.com/video/BV12s411g7gU?p155 向量 一个数字列表,表示各个维度上的有向位移;同时也是一个有大小有方向的物理量,大小及向量的模长,而方向即空间中向量的指向,可以表示物体…

TikTok Shop 越南站点收入已达Lazada 的 80%

让我们一起来看看今日都有哪些新鲜事吧!01 TikTok Shop 越南站点收入已达Lazada 的 80% 据越南电商平台数据分析软件Metric.vn 统计,Shopee、Lazada、Tiki 和 Sendo 仍然主导着越南电子商务市场,1-11 月,共销售了 13 亿件产品。其…

简化开发小技巧-Mybatis-Plus的使用和常用操作

目录 简介 快速使用 pom 代码 mapper service 使用 常用操作 简单或操作查询 多条件或查询 更新字段为null 方法一,如果要更新的字段是String类型, 方法二, 使用mybatis-plus的字段注入。 方法三,使用UpdateWrapper…

基于R的Bilibili视频数据建模及分析——预处理篇

基于R的Bilibili视频数据建模及分析——预处理篇 文章目录基于R的Bilibili视频数据建模及分析——预处理篇0、写在前面1、项目介绍1.1 项目背景1.2 数据来源1.3 数据集展示2、数据预处理2.1 删除空数据2.2 增加id字段2.3 处理数值字段3、参考资料0、写在前面 实验环境 Python版…

Stable Diffusion背后原理(Latent Diffusion Models)

前言 2023年第一篇博客,大家新年好呀~ 这次来关注一下Stable Diffusion背后的原理,即 High-Resolution Image Synthesis with Latent Diffusion Models 这篇论文。 之前关注的那些工作只能工作到 256256256 \times 256256256 像素(resize成这个后才输…

设计模式简介

一、设计模式简介 编写软件过程中,程序员面临着来自耦合性,内聚性 以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好的&#xf…

04SpringCloudAlibaba服务注册中心—Consul

目录 Consul简介 Consul是什么What is Consul? | Consul by HashiCorp Consul能做什么 Consul下载:Downloads | Consul by HashiCorp Consul使用:Spring Cloud Consul 中文文档 参考手册 中文版 安装并运行Consul 1、官网安装说明:In…

开发板测试手册——系统启动、文件传送操作步骤详解(1)

目 录 前 言 4 1 评估板快速测试 5 1.1 系统启动测试 5 1.2 文件传送测试 11 1.2.1 通过 Linux 系统启动卡 11 1.2.2 通过 OpenSSH 12 1.3 LED 测试 15 1.4 KEY 测试 15 1.5 DDR 读写测试 16 1.6 SD 卡读写测试 17 1.7 eMMC 读写测试 18 前 言 本指导文档适用开发…

2022 CSDN年度报告已出炉

2022年已过,我们迎来了2023年,那么在2022年,你在CSDN平台都做了些什么,收获了什么呢?2022 CSDN年度报告已出炉,来看看你的2022年度报告吧。 点此查看2022年度报告 或扫码查看你的2022 CSDN年度报告哦&…

23种设计模式(三)——策略模式【组件协作】

文章目录意图什么时候使用策略真实世界类比策略模式的实现策略模式的优缺点亦称:Strategy 意图 定义了一组策略,分别在不同类中封装起来,每种策略都可以根据当前场景相互替换,从而使策略的变化可以独立于操作者。比如我们要去某个…

Type-challenges: tuple to object / union

type-challenges/README.zh-CN.md at main type-challenges/type-challenges GitHub https://github.com/TIMPICKLE/type-challenges/blob/main/questions/00010-medium-tuple-to-union/README.zh-CN.md lets do it , mate! 首先概念澄清: JS: con…

TKE 注册节点,IDC 轻量云原生上云的最佳路径

林顺利,腾讯云原生产品经理,负责分布式云产品迭代和注册节点客户扩展,专注于云原生混合云新形态的推广实践。 背景 企业在持续业务运维过程中,感受到腾讯云 TKE 带来的便捷性和极致的使用体验,将新业务的发布以及老业…

回答问题】ChatGPT上线了!给我推荐20个比较流行的图像全景分割模型

给我推荐20个比较流行的图像全景分割模型 好的,这是 20 个比较流行的图像全景分割模型:DeepLabv3 PSPNet FCN U-Net Mask R-CNN UNet SegNet ENet ICNet ENet GCN DANet BiSeNet DenseASPP DenseASPPv2 DenseASPPv3 DenseASPPv4 DenseASPPv5 DenseASPPv…

Redis数据持久化

数据持久化 RDB (Redis DataBase) 在指定的时间间隔内将内除中的数据集快照写入磁盘,即Snapshot快照。 备份如何执行 Redis会单独创建(fork)一个子进程来执行持久化,会先将数据写入到一个临时文件,待持久化过程结束…

【嵌入式Linux环境搭建-02】虚拟机安装Ubuntu20系统

虚拟机安装 Ubuntu 系统 前面用的VMware15.5,安装完Ubuntu20.04报错,试了以下方法都不行。 建议直接安装VMware16.2,步骤和上面一样 报错 解决:VMware Workstation 与 Device/Credential Guard 不兼容_山顶夕景的博客-CSDN博客…

JS阻止事件冒泡的方法*基础原理与运用

目录 事件冒泡html布局css样式代码 非标准写法&#xff1a;IE6-8 利用事件对象cancelBubble属性 标准写法&#xff1a;利用事件对象里面的stopPropagation()方法 下拉菜单 操作方法 事件冒泡html布局css样式代码 首先创建三个嵌套的方块&#xff0c;便于案例分析 <div…

NewSQL如何解决高可用、分片?

1 什么是New SQL&#xff1f; 无论你其他方面做的比Old SQL好再多&#xff0c;SQL和ACID是刚需&#xff0c;这个命你革不掉的。你不支持SQL&#xff0c;就不会有多少人用。所以近几年很多之前不支持SQL的数据库&#xff0c;都开始支持SQL了&#xff0c;甚至于像Spark、Flink这…

自然语言处理 第十章 信息抽取 复习

信息抽取信息抽取复习重点&#xff1a;信息抽取概述从任务内容分为&#xff1a;从处理文档类型分为&#xff1a;从发展时间和处理文档分为&#xff1a;实体识别与抽取限定域命名实体识别基于规则或字典的方法 &#xff1a;规则模版&#xff08;字典&#xff09;匹配统计学习方法…