[Linux笔记]vim基础

news2025/4/26 6:55:34

vim本身不是像vs那样什么都能做的ide,只是单纯的编辑器。
命令行输入vim 文件名,会以vim打开文件。
若当前路径下尚无该名称的文件,则会在保存退出时创建该文件。

在vim中操作,尽量不要用鼠标及其滚轮操作,而只用键盘控制。比如滚轮上翻可能只会翻出之前的命令行记录,而不是windows记事本那样翻到前文部分。

vim的几个模式

在这里插入图片描述

vim是多模式编辑器,常用模式有:
1.命令模式(启动后的默认模式)
在任意模式按esc均可回到命令模式。
要在各模式间切换,需要先切换到命令模式再切换到目标模式。

2.插入模式(输入i切换)
左下角出现INSERT字样,此时可以进行文本编辑。

3.底行模式(命令模式下按 shift+: 切换)
若要退出,先回退到命令模式再转底行模式。
此时底行可输入指令,q是退出,w是保存,wq是保存后退出。一般都是用wq。
q或w或wq接! 为强制执行,若用户没有相应权限则无法强制执行。

4.替换模式(shift+r)
左下角出现REPLACE字样,此时输入内容会从光标位置开始逐个替换,按backspace逐个取消替换。

5.视图模式(输入v切换)
又称可视化模式,用于选择一片区域后进行编辑 。
参考:Vim技巧之四大模式_可视模式

vim指令集

底行模式下(shift+:后):
q是退出,w是保存,wq是保存后退出
q或w或wq接! 为强制执行,若用户没有相应权限则无法强制执行

set nu 与 set nonu:调出与消除行号

/关键词:搜索关键词
文档中匹配的部分会被高亮
搜索出结果后按n将光标移动到下一个匹配的关键词
%s/要替换的文本/想替换成的文本/g:批量匹配替换
!+指令 :在不退出vim的情况下执行命令行指令
例:在不退出vim的情况下编译:
!gcc test.c
vs 文件名:创建新文档并与当前文档一起打开,会自动分屏
分屏模式下:
光标在哪个文件的界面中,当前操作的就是哪个文件
使用退出指令会退出光标所在文件,然后关闭相应界面
ctrl+ww:将光标切换到另一文件的界面
按住ctrl后连按两下w

大部分指令是在命令模式下使用的(不是底行也不是插入):

yy 与 nyy(n为行数):复制光标所在行或从光标所在行算起的n行
dd 与 ndd(n为行数):剪切光标所在行或从光标所在行算起的n行
若剪切后不粘贴,则剪切操作等同于删除
p 与 np(n为行数):将所复制或剪切的内容粘贴一行或n行到光标所在行下方

u:撤销上一个操作
ctrl+r:撤销上一个撤销操作,即返回上次撤销前
保存后依然可以进行撤销操作,但保存退出后再打开会无法撤销上一个操作

批量注释:ctrl+v,左下出现v-block,用j下移光标选择范围,开启大写,按i,输入双斜杠//注释一行,再按esc,选中的区域即被批量注释。
批量取消注释:ctrl+v,左下出现v-block,按l选择范围,输入d,选中的区域即被批量取消注释。

shift+g:将光标移动到文档尾部
n shift+g (n为行号):光标移动到第n行
输入行号(没有回显,但缓冲区已记录)后按shift+g
gg:将光标移动到文档头部
shift+$ (4):将光标移动到当前行的尾部
shift+^ (6):将光标移动到当前行的头部
nb 与 nw(n为单词数):以单词为距离单位,在当前行内左右移动光标
w向右b向左,省略n则n取1
单词指的是由非字母符号隔开的字母
h j k l:上下左右微调光标位置
h左 l右 j下 k上
不用小键盘与方向键

shift+~:从光标所在位置起,依次切换单词的字母大小写
按住shift,然后按几下切换几个,按住则是连续切换
nr+字符(n为字符数):用输入r之后输入的字符替换光标所在位置起的n个字符
省略n则n取1
shift+r:切换到替换模式,见前文
nx(n为字符数):光标位置开始,向后删除n个字符
包括光标所在位置的字符
省略n则n取1
n shift+x(n为字符数):光标位置的前一个字符开始,向前删除n个字符
输入n后按shift+x
不包括光标所在位置的字符

vim的配置

a.自己配置(复杂配置会很繁琐,不推荐)
vim启动时会在当前用户的目录(/home/当前用户名)中寻找配置文件,若未找到配置文件则使用默认配置。在用户之间,vim的配置是互相独立的。
touch .vimrc :创建vim配置文件
vim .vimrc :打开vim配置文件
在第一行输入set nu,则vim每次启动后会带行号
配置文件中的注释符为双引号 " ,注释当前行
更多配置选项自行搜索,关键词:vim配置选项
复杂配置可能会需要下插件,需使用mkdir .vim创建插件文件夹然后将配置文件放入其中

b.自动化配置
例:在gitee搜 vimforcpp(暂时只支持centos 7.X),按说明安装

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

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

相关文章

tql!AD域渗透信息收集可视化工具

工具介绍 adalanche是一款ad域中的ACL可视化及利用工具,和BloodHound功能类似,能方便域渗透人员快速发现域中的弱点;有开源版和商业两个版本。 关注【Hack分享吧】公众号,回复关键字【230709】获取下载链接 相比于BloodHound工具…

nest.js 添加 swagger 响应数据文档

基本使用 通常情况下,在 nest.js 的 swagger 页面文档中的响应数据文档默认如下 此时要为这个控制器添加响应数据文档的话,只需要先声明 数据的类型,然后通过ApiResponse 装饰器添加到该控制器上即可,举例说明 todo.entity.ts …

DP1044 CAN FD 待机模式总线收发器替代TJA1044

5V 供电,IO 口兼容 3.3V,5Mbps,CAN FD 待机模式总线收发器DP1044是一款应用于 CAN 协议控制器和物理总线之间的接口芯片,可应用于卡车、公交、小汽车、工业控制等领域,支持 5Mbps 灵活数据速率(Flexible Da…

新零售商城系统开发流程,新零售商城系统的前景如何?

近10年来,新零售商城系统火爆的原因在于移动互联网普及、个性化需求的增加、优化用户体验、数据驱动的营销和线上线下融合。新零售商城系统是基于互联网技术的商城平台,通过线上线下融合、数据分析和个性化推荐等功能,为零售商提供全方位的销…

N!Weblogic CVE-2023-21839 RCE

项目简介 Weblogic CVE-2023-21839/CVE-2023-21931/CVE-2023-21979 一键检测工具,这是来自长亭xray的代码,该漏洞扫描已集成到新版本xray中。 关注【Hack分享吧】公众号,回复关键字【230708】获取下载链接 无需任何Java依赖,构造…

【C语言】unsigned 与 signed 详解

1. 基本概念 整数在存储单元中都是以补码形式存储的,存储单元中的第 1 个二进制位代表符号。整型变量的值的范围包括负数到正数。 但是在实际应用中,有的数据的范围常常只有正值(如学号、年龄等),为了充分利用变量的值…

网盘工具alist在Windows中使用教程

alist 软件同时支持 http 协议和 WebDAV 协议,并且支持很多网盘种类,这样就给我们留下了很多可玩的空间,比如: 实现网盘本地化访问关联本地的播放器,以实现很好的播放效果多端文件互传,比如将阿里云盘的文…

GO语言slice

slice: data lencap 以及存取的元素是可以安全读写的 Slice 扩容。 1,预估: 2,预估容量后*字节数 所需的内存 3,各种语言从OS上提前申请内存,匹配GO规则的内存

nosql——Redis,Mongodb

目录 一、redis 1、 string类型数据的命令操作 2、 list类型数据的命令操作 3、 hash类型数据的命令操作 4、Keys相关的命令操作 二、mongodb 1. 创建一个数据库 名字grade 2. 数据库中创建一个集合名字 class 3. 集合中插入若干数据 文档格式如下 4. 查找 5. 增加、…

配置jenkins 服务器与目标服务器自动化部署

在配置完远程构建后可以通过添加post-build step 执行shell脚本的方式将包传到远程服务器等一系列操作。 通过scp传输打包好的项目到目标服务器 按照链接 方式配置免密操作,需要注意的是要在jenkins 用户目录下配置生成私钥密钥,配置jenkins 的免密&…

SQL数据库(设置模式、数据库操作、表操作、列操作、SQL索引/约束、SQL数据类型、SQL函数、常见问题)

目录 SQL数据库 设置模式 SET NAMES utf-8 set sql_safe_updates1 数据库操作 CREATE DATABASE databaseName(创建数据库) USE databaseName(选择数据库) DROP DATABASE databaseName(删除数据库) …

一种集成低损耗二极管的SiC沟槽MOSFET,用于提高开关性能

标题:A Low-Loss Diode Integrated SiC Trench MOSFET for Improving Switching Performance 阅读日期:2023.7.17 研究了什么 该研究提出并通过数值模拟对一种集成低损耗二极管(LLD-ATMOS)的硅碳化物(SiC&#xff09…

【SSCMS 内容管理系统】环境配置篇

SSCMS 内容管理系统基于微软 .NET Core 平台开发,用于创建在 Windows、Linux、Mac 以及 Docker 上运行的 Web 应用程序和服务。 具有”跨平台、分布式部署“、”网站群与多服务器发布“、”良好的扩展性与二次开发“ 等特点。 MySqlSSCMS系统(V6版本&am…

初识react

初识react 第一步就给我出个问题版本太低 https://www.cnblogs.com/gslgb/p/16585233.html https://blog.csdn.net/xiangshiyufengzhong/article/details/124193898 第二个问题 便利生成dom 需要绑定key 不要总想着加冒号这不是vue 第三个问题 我p标签包裹 MapList组件 MapLis…

一致性哈希算法总结

title: 一致性哈希算法总结 date: 2023-05-22 11:25:13 tags: 算法 categories:数据结构与算法 cover: https://cover.png feature: false 1. 背景 假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为 0 号、1 号、2 号…

使用Vue + el-form + rules实现图书信息录入功能实战

前言 上节回顾 转眼2023年已经过去一半了,我咋记得2022年刚过去呢,有时候在前端打版本的时候我还不小心写成2022啥啥啥呢,写完才发现自己自己写错了,应该是2023,真是时光一去不复回,往事只能回味啊。 上…

基于FPGA的视频接口之SDI编码

简介 SDI接口是一种“数字分量串行接口”,对于详细解释,可以在Google下SDI,我就不当网络的搬运工了,划重点的是,SDI常见的分为3种模式,即SD-SDI、HD-SDI和3G-SDI,以及升级版12G-SDI。 SD-SDI很少有人用,我怀疑可能是640x512的说法,270Mb/s的数据传输量 HD-SDI最常遇到…

vue3 实现 Map 地图区域组件封装

图例:重庆区域 一、安装echarts 坑:地图echarts版本必须在5.0.0以下,否则不能显示,此处指定安装 echarts4.9.0 即可 cnpm install echarts4.9.0 --save 二、下载 “重庆” 区域地图json文件 下载地址:https://www.…

面向对象基础

目录 1. 类和对象 1.1 什么是对象 1.2 什么是面向对象 1.3 什么是类 1.4 什么是对象的属性 1.5 什么是对象的行为 1.6 类和对象的关系 1.7 类的定义 1.8 对象的使用 2. 成员变量和局部变量 2.1 什么是成员变量和局部变量 2.2 成员变量和局部变量的区别 3. 封装 3.1…

软件测试基础篇(测试系列3)

目录 前言: 1.软件测试的生命周期 2.如何描述一个BUG 3.如何定义BUG的级别 4.BUG的生命周期 5.如何开始第一次测试 6.测试执行和BUG管理 结束语: 前言: 在两节中小编与大家简单的讲解了一些有关于软件测试的基础知识,带着…