Linux_编辑器Vim基本使用

18fde01fee5e4278981004762ce48cc4.png

✨✨ 欢迎大家来到小伞的大讲堂✨✨

🎈🎈养成好习惯,先赞后看哦~🎈🎈

所属专栏:LInux_st
小伞的主页:xiaosan_blog

制作不易!点个赞吧!!谢谢喵!!!

1.编辑器Vim

IDE例子

1.1 Linux编辑器-vim使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于xwindow、macos、windows。

对于Vim我们依然可以使用箭头控制光标方向,在最初的键盘中并没有箭头控制,而是使用H(左)J(下)K(上)L(右),如今依然可以使用

1.2 vim的基本概念

vim存在多种模式,最常使用的有三种模式分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode

插入模式(Insert mode)

只有在lnsert mode下,才可以做文字输入按「ESC」键可回到命令行模式。

末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作
在命令模式下,*shift+即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

2 vim的基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
$ vim test.c

不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。

[正常模式]切换至[插入模式]

  • 输入a
  • 输入i(insert,我比较喜欢使用这个):按“i”进入插入模式后是从光标当前位置开始输入文件;
  • 输入o

[插入模式]切换至[正常模式]

目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。

[正常模式]切换至[末行模式]也就是命令行模式
「shift+;」,其实就是输入「:

退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Lastlinemode」,例如:
:w(保存当前文件)
:wq(输入「wq」,存盘并退出vim)
:q!(输入q!不存盘强制退出vim)

2.1 vim正常模式命令集

插入模式

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

从插入模式切换为命令模式

按「ESC」键。

移动光标

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、
「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后
按「$」:移动到光标所在行的“行尾”
按「个」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页

删除文字

「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自已在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符

「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行

复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yW」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“V”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

替换

「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

撤销上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行

多次回复。

「ctrl+r」:撤销的恢复

更改

「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字

跳至指定的行

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

2.2 vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
列出行号

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

跳到文件中的某一行

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

查找字符

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

保存文件

「w」:在冒号输入字母「w」就可以将文件保存起来

离开vim

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

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

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

相关文章

MyBatis 高级映射功能详解:处理复杂数据库关系

MyBatis 的高级映射功能是其强大特性之一,它允许开发者轻松处理数据库中的复杂关系,如一对一、一对多和多对多关系。本文将深入探讨这些高级映射功能,包括映射配置方法、嵌套查询和关联查询的使用,并通过示例代码进行演示。 1.数据…

Halo:一个强大易用的国产开源建站工具

Halo 是一款国产开源的建站工具,适合快速搭建博客、论坛、知识库、公司官网等多种类型的网站,目前在 GitHub 上已经获得了 35.6k Star。 功能特性 Halo 核心功能与优势包括: 插件架构:Halo 采用可插拔架构,功能模块之…

Java-ArrayList集合的遍历方式详解

Java-ArrayList集合的遍历方式详解 二、ArrayList概述三、ArrayList的遍历方式1. 普通for循环遍历2. 增强for循环遍历3. 迭代器遍历4. ListIterator遍历5. Java 8 Stream API遍历 四、性能对比与分析性能测试结果分析 五、遍历方式的选择建议六、常见遍历陷阱与注意事项1. 并发…

华为网路设备学习-23(路由器OSPF-LSA及特殊详解 二)

OSPF动态路由协议要求: 1.必须有一个骨干区域(Area 0)。有且仅有一个,而且连续不可分割。 2.所有非骨干区域(Area 1-n)必须和骨干区域(Area 0)直接相连,且所有区域之间…

基于大模型的急性腐蚀性胃炎风险预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 国内外研究现状 二、急性腐蚀性胃炎概述 2.1 定义与发病机制 2.2 病因分析 2.3 临床表现与分型 2.4 诊断方法 三、大模型技术介绍 3.1 大模型原理 3.2 常用大模型及在医疗领域应用案例 3.3 选择用于急性腐蚀性…

泰迪杯特等奖案例深度解析:基于三维点云与深度学习的复杂零件装配质量检测系统设计

一、案例背景与行业痛点 1.1 工业装配质检的现状与挑战 在精密制造领域(如航空航天发动机、新能源汽车电池模组),复杂零件的装配质量直接影响产品性能与安全性。传统人工质检存在效率低(单件检测耗时>3分钟)、漏检率高(约15%)等问题,而现有自动化方案面临以下技术…

离散傅里叶变换DFT推导及理解

DTFT到DFT的推导 关于DTFT的相关推导已经做过总结,详见《DTFT及其反变换的直观理解》,每一个离散的频率分量都是由时域中的复指数信号累加得到的,DTFT得到的频谱时频率的连续函数 。 离散时间傅里叶变换公式,式1: 将…

欣佰特科技|工业 / 农业 / AR 场景怎么选?Stereolabs ZED 双目3D相机型号对比与选型建议

Stereolabs ZED 相机系列为视觉感知领域提供了多种创新解决方案,适用于不同应用场景。选择合适的 ZED 相机型号,需综合考虑分辨率、深度感知范围、接口类型等因素。 Stereolabs ZED 相机产品系列概览 ZED:首款立体视觉相机,专为高…

黑马点评Reids重点详解(Reids使用重点)

目录 一、短信登录(redisseesion) 基于Session实现登录流程 🔄 图中关键模块解释: 利用seesion登录的问题 设计key的具体细节 整体访问流程 二、商户查询缓存 reids与数据库主动更新的三种方案 缓存穿透 缓存雪崩问题及…

【Pandas】pandas DataFrame add_suffix

Pandas2.2 DataFrame Reindexing selection label manipulation 方法描述DataFrame.add_prefix(prefix[, axis])用于在 DataFrame 的行标签或列标签前添加指定前缀的方法DataFrame.add_suffix(suffix[, axis])用于在 DataFrame 的行标签或列标签后添加指定后缀的方法 pandas…

解锁MCP:AI大模型的万能工具箱

摘要:MCP(Model Context Protocol,模型上下文协议)是由Anthropic开源发布的一项技术,旨在作为AI大模型与外部数据和工具之间沟通的“通用语言”。它通过标准化协议,让大模型能够自动调用外部工具完成任务&a…

nginx性能调优与深度监控

目录 nginx性能调优 更改进程数与连接数 进程数 连接数 静态缓存功能设置 日志切割 配置网页压缩 nginx 的深度监控 GoAccess 简介 GoAccess安装 ​编辑 配置中文环境 GOAccess生成中文报告 测试访问 nginx vts 简介 nginx vts 安装 nginx配置开启vts 测试访问…

【时时三省】Python 语言----牛客网刷题笔记

目录 1,常用函数 1,input() 2,map() 3,split() 4,range() 5, 切片 6,列表推导式 山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 1,常用函数 1,input() 该函数遇到 换行停止接收,返回类型为字符串 2,map() 该函数出镜率较高,目的是将一个可迭…

docker compose yml 启动的容器中,如何使用linux环境变量赋值

在 Docker Compose 中,可以通过环境变量(${VAR} 或 $VAR)来动态配置容器。以下是几种常见的使用方式 - 使用 env_file 加载变量文件 可以单独定义一个环境变量文件(如 app.env),然后在 docker-compose.y…

深入解析Kafka JVM堆内存:优化策略与监控实践

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…

git常用操作命令

本文介绍git常用的操作命令,供大家参考。 1、开始 # 初始化本地git git init# 在初始化的目录中,创建readme.txt,添加到git库中 git add readme.txt git commit -m "写了一个readme.txt文件"2、版本回退 2.1、git reset git lo…

解锁 MCP 中的 JSON-RPC:跨平台通信的奥秘

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等希望看什么,评论或者私信告诉我! 文章目录 零、 背景一、RPC vs HTTP1.1 什么是RPC1.2 为什么需要 RPC?1.3 RPC 解决了什么…

【Redis】第1节|Redis服务搭建

一、Redis 基础概念 核心功能 内存数据库,支持持久化(RDB/AOF)、主从复制、哨兵高可用、集群分片。常用场景:缓存、分布式锁、消息队列、计数器、排行榜等。 安装环境 依赖 GCC 环境(C语言编译)&#xff0…

GitLab-CI简介

概述 持续集成(CI)和 持续交付(CD) 是一种流行的软件开发实践,每次提交都通过自动化的构建(测试、编译、发布)来验证,从而尽早的发现错误。 持续集成实现了DevOps, 使开发人员和运维人员从繁琐的工作中解…

FFmpeg解码器配置指南:为什么--enable-decoders不能单独使用?

FFmpeg解码器配置指南 在FFmpeg的编译配置过程中,许多开发者会遇到关于解码器配置的困惑。特别是--enable-decoders这个选项,很多人误以为启用它就能自动包含所有解码器。本文将深入解析FFmpeg解码器配置的机制,并通过实际测试展示正确的配置…