Linux:文本编辑器 - vim

Linux:文本编辑器 - vim

    • vim基本操作
    • 普通模式
      • 模式切换
      • 移动光标
      • 复制粘贴
      • 删除
      • 替换
      • 撤销
    • 底行模式
      • 行号
      • 查找


vim基本操作

Vim(Vi Improved)是一款功能强大的文本编辑器,是Unix/Linux系统中广泛使用的编辑器之一。它源于上世纪70年代开发的Vi编辑器,后来经过不断完善和扩展而发展成为Vim。

Vim的主要特点包括:

  • 高度可配置和扩展性:Vim支持大量插件和脚本,用户可以根据需求自定义Vim的行为。
  • 高效的编辑模式:Vim采用基于模式的编辑方式,用户可以通过键盘命令快速完成各种编辑操作。
  • 跨平台:Vim支持多种操作系统,包括Linux、macOS和Windows。
  • 丰富的功能:Vim提供了语法高亮、代码折叠、多缓冲区编辑等强大的编辑功能。

Vim是一款功能强大、高度可定制的文本编辑器,广泛应用于各种编程和文本编辑场景。它的发展历程也体现了开源软件不断创新和完善的过程。

使用vim前,如果你没有下载过,可以执行以下指令下载vim:

yum install -y vim

执行该指令需要root权限,要么加上sudo进行提权,要么以root身份执行。

下载好vim后,我们就可以用它来编辑文本了,vim既可以直接编辑现有文本,也可以直接创建一个不存在的文件

语法为:

vim 文件名

比如在此我要编辑一个test.c的文件,就输入vim test.c,打开后界面如下:

在这里插入图片描述

这个时候你还不能编辑,vim是有多种模式的,默认情况下处于普通模式。此时不能编辑文本,如果想要书写文本,要进入插入模式只需要按一下i,就可以从普通模式进入插入模式。此时你的左下角会有INSERT样式,说明你成功进入了插入模式。

在这里插入图片描述

现在你就可以正常编辑代码了,我这里写一个简单的C语言代码:

在这里插入图片描述

那么要如何退出保存呢?想要退出保存,就先进入底行模式,而当前的插入模式不能直接进入底行模式,要先按下Esc键回到普通模式。当你左下角的INSERT消失了,就说明你退出插入模式了,如果想从普通模式进入底行模式,按下shift + ;,其实也就是按下一个,此时你会发现你的光标跳转到了底部,并且底部多出了一个冒号:

在这里插入图片描述

说明你成功进入底行模式了,先教两个基本的命令:

w:保存当前修改
q:退出

一般来说,我们会选择保存并退出,此时只需要把两个字母一起输入即可wq

在这里插入图片描述

再摁下Enter键,表示执行该指令,此时我们就可以退出vim了。如果你这个文件原先就存在于目录中,你可以用cat试试有没有修改成功,如果你这个文件是直接通过vim创建的,那么你可以使用ls看看该文件有没有创建出来。

在我的目录下,已经有该文件,并且写入成功了:

在这里插入图片描述

我们简单讲解完了vim的三个模式:

Vim有以下几种主要的工作模式:

  1. 普通模式(Normal mode):
  • 这是Vim的默认模式。
  • 在这个模式下,键盘输入的字符被解释为命令,而不是插入文本。
  • 用户可以使用各种快捷键进行文本编辑、光标移动、文件操作等。
  1. 插入模式(Insert mode):
  • 在这个模式下,键盘输入的字符会被直接插入到文档中。
  • 用户可以输入新的文本,编辑现有文本。
  • 通过按下 iao 等命令可以进入插入模式。
  1. 底行模式(Command-line mode):
  • 在这个模式下,用户可以输入Vim的各种命令,如保存、退出、查找替换等。
  • 通过按下 :shift + ;)进入命令行模式。

接下来我就详细讲解各个模式下的操作。


普通模式

模式切换

vim有非常多种模式,而普通模式是所有模式的枢纽,不论进入任何一种模式,都要先回到普通模式。插入模式,底行模式等等各种模式想要切回普通模式,都是按Ecs

普通模式进入插入模式

i:从光标位置开始编辑文本
a:从光标位置的下一个位置开始编辑文本
o:在光标位置插入新的一行,并从行首开始编辑文本

普通模式进入底行模式

:,也就是shift + ;


移动光标

处于普通模式时,有很多快速移动光标的键位:

键位功能
h光标向左移动,相当于
j光标向下移动,相当于
k光标向上移动,相当于
l光标向右移动,相当于
Gshift + g光标移动到文本末尾
#G# + shift + g光标移动到第#
$shift + 4光标移动到当前行末尾
^shift + 6光标移动到当前行开头
w以单词为单位,光标移动到下一个单词开头
b以单词为单位,光标移动到上一个单词开头
#l光标移动到该行第#个位置
gg光标移动到文本开始

复制粘贴

键位功能
dd剪切当前光标所在行
#dd剪切当前光标开始的#
yw把光标所处的单词,复制到缓冲区
#yw把光标开始的#个单词,复制到缓冲区
yy把光标所处的行,复制到缓冲区
#yy把光标开始的#行,复制到缓冲区
p将缓冲区的内容,复制到光标开始的位置
#p将缓冲区的内容,复制到光标开始的位置,连续复制#

删除

键位功能
x删除光标所在的字符
#x删除光标开始的#个字符
Xshift + x删除光标前一个字符
#X# + shift + x删除光标前#个字符

替换

键位功能
r + xxx将光标所处的字符替换为xxx
#r + xxx将光标开始的#个字符替换为xxx

这里要介绍另外一个模式,替换模式,按下shift + r就可以进入替换模式。此时输入的所有内容都会直接覆盖原先的内容,同样的如果需要退出,按Esc即可回到普通模式。


撤销

键位功能
u撤销上一次操作

底行模式

进入底行模式,按下shift + 即可,然后在:后面输入指令。

行号

输入set nu:在文件的每一行前列出行号
输入set nonu:取消每一行前的行号

效果如下:

在这里插入图片描述


查找

/xxx:查找xxx字符串,如果不是当前在字符串,按n会跳到下一个该字符串

比如输入/hello

在这里插入图片描述

其就会高亮标注所有匹配的字符串,此时再按下n,光标就会跳转到下一个字符串。不过这个高亮是不会自己消除的,不论你后面进入什么模式,这个高亮都会一直存在。

此时就要输入以下指令:

noh:取消高亮


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

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

相关文章

Understanding Diffusion Models: A Unified Perspective翻译和公式补充解读

“Understanding Diffusion Models: A Unified Perspective”是一篇写的非常好的扩散模型DDPM数学原理解读文章,这里翻译了一遍,对于一些细节补充记录一下,方便对照原文更好的理解。 这篇文章作者是Calvin Luo,来自Google Resear…

激活黑科技

下载/如何使用它? 方法 1 - PowerShell(推荐)Method 1 - PowerShell (Recommended) 右键单击 Windows 开始菜单,然后选择“PowerShell”或“终端(非 CMD)”。复制粘贴以下代码&…

ChatGLM3-6B大语言模型离线执行

ChatGLM3-6B大语言模型离线执行 模型准备 一般而言,模型和模型参数可以通过如下三个模型源进行相应的下载: HuggingFace | ModelScope | WiseModel 本实例中,使用的是HuggingFace的源下载,相应的地址如下: HuggingFa…

在线视频下载工具lux(原annie)安装及使用教程

安装教程 下载ffmpeg,参考这篇文章:Python——Windows下载ffmpeg由于博主的系统为windows,所以选择不安装lux,直接下载.exe文件,进入lux的github网站后,选择右侧的Releases,下载下图的windows …

求职要做在线人才测评,如果找人代做会被发现吗?

理论上都有办法能避开,这种在线测评的一定都有这个弊端,什么录音,录屏,录像,只要你愿意琢磨下,就一定有办法避开,除非是现场有人看着你。 但是我的观点是没必要作弊,使这个巧&…

起诉状与反诉状有什么不同,二者在写法上有何区别?李秘书讲写作教教你!

起诉状与反诉状有什么不同,二者在写法上有何区别?李秘书讲写作教教你! 起诉状和反诉状在民事诉讼中各自扮演着不同的角色,因此它们在内容和写法上有一些不同。#李秘书讲写作#这节就讲这个话题。 起诉状是原告向人民法院提起诉讼…

从 0 搭建公司Jenkins服务 Centos7

从 0 搭建公司Jenkins服务 Centos7 安装 (运维人员) 安装环境 配置DNS安装JDK17安装Jenkins安装Docker安装GIT安装Ansible启动Jenkins安装插件配置凭据配置共享库配置 (开发经理)使用 (开发、测试人员) 安装 (运维人员) 安装环境 配置DNS 新安装系统的服务器无法解析域名&a…

为什么选择成为一名程序员

选择成为一名程序员,其背后的原因往往既包含兴趣,也包含职业发展的考量。对于我来说,这两者并不是孤立的,而是相互交织,共同推动步入这一行业。 兴趣是选择成为程序员的重要驱动力。编程本身就是一种创造和解决问题的…

Calibre:如何在runset中设置LVS box

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接: Calibre:LVS 流程 在“Calibre: LVS 流程”文章里介绍了再rule file和图形界面如何设置lvs box,这里再分享一种lvs box设置方法: 通常我们会保存runset文件

CSS 基础:border 的 3 个基础属性和简写方法

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集 264篇…

SpringCloudAlibaba-整合nacos(二)

目录地址: SpringCloudAlibaba整合-CSDN博客 一、nacos服务部分 1.下载nacos,并执行数据库脚本:nacos-mysql.sql 2.修改配置文件,配置mysql 3.启动nacos ./startup.sh -m standalone 4.访问:http://127.0.0.1:884…

Golang快速入门教程(一)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

基于51单片机的多床位病房呼叫器Proteus仿真

地址:https://pan.baidu.com/s/1WLTBD9WaWncZS_uRSjM-iA 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectroni…

企业微信认证后可以修改主体吗?

企业微信变更主体有什么作用?如果原有的公司注销了,或者要更换一家公司主体来运营企业微信,那么就可以进行变更主体,变更主体后才可以保留原来企业微信上的所有用户,否则就只能重新申请重新积累用户了。企业微信变更主…

机器学习和深度学习--李宏毅(笔记与个人理解)Day9

Day9 Logistic Regression(内涵,熵和交叉熵的详解) 中间打了一天的gta5,图书馆闭馆正好npy 不舒服那天天气不好,哈哈哈哈哈总之各种理由吧,导致昨天没弄起来,今天补更! 这里重点注意…

面向对象设计原则实验“依赖倒置原则”

高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。 (开闭原则、里氏代换原则和依赖倒转原则的三个实例很相似,原因是它之间的关系很紧密,在实现很多重构时通常需要同时使用这三个原则。开闭…

【智能优化算法详解】粒子群算法PSO量子粒子群算法QPSO

1.粒子群算法PSO 博主言简意赅总结-算法思想:大方向下个体自学习探索群体交流共享 对比适应度找到最优点 背景 粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization), 缩写为 PSO。粒子群…

HarmonyOS实战开发-如何实现文件管理相关的功能。

介绍 本示例主要展示了文件管理相关的功能,使用ohos.multimedia.medialibrary 、ohos.filemanagement.userFileManager 、ohos.fileio 、ohos.file.fs、ohos.app.ability.contextConstant 等接口,实现了增添文件、删除文件、查找指定类型文件文件、复制…

2024年MathorCup+认证杯数模竞赛思路预定与助攻计划

2024年的第14届“妈妈杯”与认证杯即将启动,云顶数模将团队众多国奖学长学姐将再次为大家精心准备的高质量解题思路、参考代码等,帮助大家在妈妈杯获得理想的成绩,也为国赛奠定坚实基础!! 小云也为大家提供了本周末两场…

安装selenium和关于chrome高版本对应的driver驱动下载安装【Win/Mac 】

目录 一、查看自己电脑上chrome的版本 二、下载 ChromeDriver 三、安装selenium 法一:打开pycharm,点击File,Setting进入配置页面,点击Project下面的Python Interpreter进入环境配置页面,点击。输入selenium。之后…