Linux中vim的基本使用

news2024/11/15 13:33:56

目录

  • vim中的三种模式以及基本操作
    • 命令模式(默认模式)
    • 插入模式
    • 底行模式
  • 命令模式下的命令
  • 底行模式下的命令

vim是Linux和Unix环境下最基本的文本编辑器,类似于windows上的记事本
vim和Visual studio相比,vim并不集成,vim只能用来写代码
VS把写代码,编代码,运行,调试等功能集成在一起,所以VS才被成为集成开发环境IDE



vim中的三种模式以及基本操作

vim是多模式的,有最常用的三种模式:命令模式(默认模式),插入模式,底行模式

命令模式(默认模式)

当敲入指令vim xxx(xxx为一个普通文件名)后,就会进入vim的页面

我们刚开始进入vim界面的模式就是命令模式,也叫默认模式
进来后是的这样的:
在这里插入图片描述

在命令模式中。我们敲击键盘会发现vim中没有显示我们敲击的内容,是因为在这个模式中,所有的输入都被当作是命令,所以不会显示我们输入的内容

插入模式

如果想要进行文本编辑,就需要输入i,进入插入模式
输入i后,我们可以在下面看到显示INSERT,此时,我们就进入插入模式了,可以输入内容了
在这里插入图片描述

从插入模式回到命令模式,需要按键盘上的Esc键,按Esc后,就可以发现下面的INSERT消失,就说明成功地返回到了命令模式

底行模式

那么假如我们编写好了代码,想要退出vim,需要进入底行模式才可以退出

在命令模式下,输入:,进入底行模式
需要注意的是,只能从命令模式进入底行模式,从插入模式下是无法进入到底行模式下的,同样,在底行模式下也无法进入插入模式

下面显示:就说明进入了底行模式
在这里插入图片描述

想要退出,只能在底行模式下输入wq
w指的是保存
q指的是退出
wq指的是保存并退出
在底行模式下,单独输入wq都是可以的,表示只保存和只退出
在这里插入图片描述

三种模式相互切换图:
在这里插入图片描述





命令模式下的命令

光标定位移动相关的命令:

gg,光标定位到最开始行
shift + g也就是G,光标定位到结尾行
n + shift +g光标定位到第n行
shift + $,光标定位到当前行的结尾
shift + ^,光标定位到当前行的开头
b, 光标定位到上一个单词的开头
w,光标定位到下一个单词的开头
e,光标定位到下一个单词的结尾
h j k l,光标 左 下 右 上移动

复制粘贴删除相关

yy,复制当前行内容
nyy,复制从当前行开始n行的内容
p,粘贴到光标所在行的下一行
np,粘贴n行
dd,剪切当前行内容,也可以当作是删除当前行(只要不再重新粘贴就可以)
ndd,剪切n行内容
(n)x,对光标之后的n个字符进行删除

撤销

u,撤销
ctrl + r,取消撤销

大小写转换

shift + ~,大小写转换

替换

(n)r,对光标后的字符进行批量替换
例如:10 r y就是将后面10个字符替换成y
·shift +r`,替换模式,对内容进行替换,在我们输入内容的同时,替换光标后的内容(这也是第4种模式——替换模式)




底行模式下的命令


w,保存
q,退出
wq,保存并退出
w!,强制保存
q!,强制退出
set nu,调出行号
set nonu,去掉行号


前面我们提到的命令,都是在单文件中的操作
linux下也可以进行多文件编写
在底行模式下,输入vx +其他文件名
在这里插入图片描述
在这里插入图片描述
光标在哪个窗口,就在哪个窗口进行操作
在命令模式下,输入ctrl +w+w进行窗口的切换


在底行模式下,可以不用退出就可以执行命令

比如,我们已经编写好了一段c语言代码在test.c文件中
在底行模式下,执行编译命令
在这里插入图片描述
退出vim后,用ls查看,可以看到的确生成了test.out这个可执行文件
在这里插入图片描述


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

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

相关文章

第六节 自动装配源码理解

tips:不同版本代码实现有差异。 前面两章了解的流程,就是 SpringBoot 自动转配的核心。 一、自动装配 1.1 什么是 SpringBoot 自动装配? 自动装配是 Spring 框架用来减少配置的显式需求而引入的一个特性,该特性通过 Autowired或者Resource…

Unity Terrain Adjust插件使用教程

一、Terrain Adjust插件介绍 二、插件下载以及导入 1、官方下载地址:Terrain Adjust 2、积分下载地址:Terrain Adjust 下载好之后,回到Unity当中,导入下载好之后的unitypackage包 三、插件使用 1、在使用之前一定要在场景中新…

KuberSphere 安装kubernates

准备机器 最少3台机器 centos Linux 内核&#xff1a;官方建议 3.10 以上 uname -rcontrol 一台 配置 2c 4g worker 二台 配置 2c 4g 3台设备需要用不同的hostname&#xff0c;需要提前修改 hostnamectl set-hostname <新的主机名> # 修改后执行一下命令刷新一下 su -…

【Android】联系人列表补充

真布局--叠起来垂直管 效果展示 部分代码&#xff08;在activity_main&#xff09;里面 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"…

自动驾驶决策规划——坐标转换

以下内容来自b站up主忠厚老实的老王&#xff0c;视频链接&#xff1a;自动驾驶决策规划算法序章 总纲与大致目录_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1hP4y1p7es/?spm_id_from333.999.0.0&vd_sourced36e625f376908cfa88ef5ecf2fb0ed8侵删。 决策规划算法…

解除网页禁止选择

控制台输入以下命令 复制&#xff1a;javascript:void(document.body.οncοpy) 可选&#xff1a;javascript:void(document.body.onselectstart) 拖拉&#xff1a;javascript:void(document.body.οnmοuseup)

SecureFX 9.5.2 SecureCRT 9.5.2 官方下载

SecureCRT是一款由VanDyke Software公司开发的终端仿真软件&#xff0c;它提供了类似于Telnet和SSH等协议的远程访问功能。SecureCRT专门为网络管理员、系统管理员和其他需要保密访问网络设备的用户设计。 SecureCRT具有以下特点&#xff1a; 安全性&#xff1a;SecureCRT支持…

什么是安全左移如何实现安全左移

文章目录 一、传统软件开发面临的安全挑战二、什么是安全左移四、安全左移与安全开发生命周期&#xff08;SDL&#xff09;三、安全左移对开发的挑战五、从DevOps到DevSecOps六、SDL与DevSecOps 一、传统软件开发面临的安全挑战 传统软件开发面临的安全挑战主要包括以下几个方…

Stanford-Coursera 算法Week1 笔记

题外话&#xff1a;全文免费放心食用&#xff0c;作者在此求个 三连关注 1. Integer Multiplication&#xff08;引入&#xff09; &#xff08;很小的时候我们就学过&#xff1a;两个数字相乘的算法——将输入(两个数字)转换为输出(它们的乘积)的一组定义良好的规则&#xf…

MVSnet 代码详解(pytorch)

大致过一下MVSnet 论文中核心的点对应代码应该怎么写。 forward 函数需要 照片&#xff0c;映射矩阵&#xff0c;以及深度值。 照片的shape是 &#xff08;1&#xff0c;5,3&#xff0c;1184,1600&#xff09;代表着1个batch,5张图片&#xff0c;然后一次是每张图片的channel和…

LeetCode547省份数量

题目描述 有 n 个城市&#xff0c;其中一些彼此相连&#xff0c;另一些没有相连。如果城市 a 与城市 b 直接相连&#xff0c;且城市 b 与城市 c 直接相连&#xff0c;那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市&#xff0c;组内不含其他没有相连的城市。给…

彩色进度条(C语言版本)

.h文件 #include<stdio.h> #include<windows.h>#define NUM 101 #define LOAD_UP 50 #define LOAD_DOWN 60 #define SLEEP_SLOW 300 #define SLEEP_FAST 70 版本1&#xff1a;&#xff08;初始版&#xff09; //v1 #include "progress.h" int main() …

使用 Sonatype Nexus Repository Manager 如何安装npm.md

1. 安装与启动 Nexus2. 登录 Nexus Web UI3. 创建 npm 仓库4. &#xff08;可选&#xff09;配置 npm 代理仓库5. 创建 npm 仓库组6. 配置 npm 客户端7. 测试和使用 Sonatype Nexus Repository Manager (通常简称 Nexus) 是一个强大的二进制管理系统&#xff0c;用于存储和管理…

北京大学肖臻老师《区块链技术与应用》P20(挖矿难度调整)和P21(权益证明)

1️⃣ 参考 北京大学肖臻老师《区块链技术与应用》 P20 - ETH挖矿难度调整篇P21 - ETH权益证明篇 2️⃣0️⃣ ETH挖矿难度调整 在ETH中最长合法链也是最难合法链&#xff08;Total Difficulty&#xff09; 比特币与以太坊难度的宏观比较 比特币以太坊调整难度隔2016个区块…

LiveGBS流媒体平台GB/T28181用户手册-版本信息:查看机器码、切换查看流媒体服务

LiveGBS流媒体平台GB/T28181用户手册--版本信息:查看机器码、切换查看流媒体服务 1、版本信息1.1、查看机器码1.2、多个流媒体服务1.3、提交激活 2、搭建GB28181视频直播平台 1、版本信息 版本信息页面&#xff0c;可以查看到信令服务 流媒体服务相关信息&#xff0c;包含硬件…

MySQL5个查询

# 总查询 EXPLAIN SELECT * FROM city; # 范围查询 EXPLAIN SELECT * from city where ID>5 and ID<20; #主键查询 EXPLAIN SELECT * from city where ID5; # 索引查询 EXPLAIN SELECT * from city where CountryCodeNLD; # 普通索引 EXPLAIn SELECT * from cit…

鸿蒙OS开发:【一次开发,多端部署】(多设备自适应能力)实例

多设备自适应能力 介绍 此Demo展示在JS中的多设备自适应能力&#xff0c;包括资源限定词、原子布局和响应式布局。 效果预览 使用说明 1.本示例中的资源限定词和响应式布局针对常见设备类型做了适配&#xff0c;可以在预览器中开启"Multi-profile preview"进行多…

创建桌面快捷方式

①点击桌面任务栏中的【开始图标】>点击【所有应用】 ②将【EndNote】图标拖到电脑桌面。

用kimi一键绘制《庆余年》人物关系图谱

《庆余年》里面人物关系复杂&#xff0c;如果能画出一个人物关系图谱&#xff0c;可以直观的理解其中人物关系&#xff0c;更好的追剧。 首先&#xff0c;用kimi下载庆余年的分集剧情&#xff0c;常见文章《AI网络爬虫&#xff1a;批量爬取电视猫上面的《庆余年》分集剧情》&am…

【WebGIS实例】(15)GeoServer 备份地图服务器

笔者GeoServer版本号&#xff1a;2.23.4 官方教程文档&#xff1a;Backup and Restore Documentation — GeoServer 2.26.x User Manual 一、下载社区插件 选择对应的版本&#xff1a;Index of /geoserver/进入插件列表&#xff1a;Index of /geoserver/2.23.x/community-late…