【linux】详解vim编辑器

基本指令

【linux】详解linux基本指令-CSDN博客

【linux】详解linux基本指令-CSDN博客

vim的基本概念

vim有很多模式,小编只介绍三种就能让大家玩转vim了, 分别是:
正常/普通/命令模式  插入模式   末行/底行模式
命令模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
插入模式
文字输入,编制文本
低行模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下, shift+:(输入冒号)  即可进入该模式。

vim的基本操作

进入vim

vim+文件名:vim test.c

进入 vim 之后,是处于 命令模式
[命令模式]切换至[插入模式]
输入 a
输入 i
输入 o
[插入模式]切换至[命令模式]
目前处于 [ 插入模式 ] ,就只能一直输入文字
[命令模式]切换至[底行模式]
shift + ; , 其实就是输入「 :
[命令模式]下,按一下「:」冒号键进入[底行模式]
: w (保存当前文件)
: wq ( 输入「 wq , 存盘并退出 vim)
: q! ( 输入 q!, 不存盘强制退出 vim)
如下图

vim正常模式命令集

移动光标

vim 可以直接用键盘上的光标来上下左右移动,但正规的 vim 是用小写英文字母 h j k 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 」:将缓冲区内的字符贴到光标所在位置。注意:所有与 “y” 有关的复制命令都必须与 “p” 配合才能完成复制与粘贴功能

替换

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

撤销上一次操作

u 」:如果您误执行一个命令,可以马上按下「 u 」,回到上一个操作。按多次 “u” 可以执行多次回复。
ctrl + r : 撤销的恢复


更改

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

跳至指定的行

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

vim底行模式命令集

列出行号

set nu : 输入「 set nu 」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
# : # 」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15, 再回车,就会跳到文章的第15 行。

查找字符

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

保存文件

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

离开vim

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

配置vim

配置文件的位置
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
可在根目录下查看
可以进入该目录查看通用配置文件
添加额外配置
通用的配置再插入模式下就像一个记事本一样,如果要写代码,写文本会很不舒服,而用户可以额外的为vim添加其他配置
用户可以在自己的家目录下查看是否有名字为  .vimrc  的文件(该文件为隐藏文件),没有的话可以自行创建
相关指令如下:
cd ~ :回到家目录
ls -a :查看隐藏文件
touch .vimrc : 创建配置文件
过程如下图
所谓的添加额外的配置就是在  .vimrc文件中保存一些配置选项,小编用如下选项让大家感受一下。
显示行号: set nu
先查看文件,如下图
进入 .vimrc 配置选项
再次查看文件

配置选项

如何配置出舒适的vim呢,只要将下面的所有配置拷贝到 .vimrc 即可

如果是CentOS7 可尝试如下方法一键配置

把下面的指令粘贴到命令行,一定要让它显示在一行上

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

粘完后回车,输入root密码即可

如下图

效果展示

​​​​​​​

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

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

相关文章

【C++初阶】--- C++入门(上)

目录 一、C的背景及简要介绍1.1 什么是C1.2 C发展史1.3 C的重要性 二、C关键字三、命名空间2.1 命名空间定义2.2 命名空间使用 四、C输入 & 输出 一、C的背景及简要介绍 1.1 什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题&…

Excel 下划线转驼峰

Excel 下划线转驼峰 LOWER(LEFT(SUBSTITUTE(PROER(A1),"_",""),1))&RIGHT(SUBSTITUTE(PROPER(A1),"_",""),LEN(SUBSTITUTE(PROPER(A1),"_",""))-1)

微博:一季度运营利润9.11亿元,经营效率持续提升

5月23日,微博发布2024年第一季度财报。一季度微博总营收3.955亿美元,约合28.44亿元人民币,超华尔街预期。其中,广告营收达到3.39亿美元,约合24.39亿元人民币。一季度调整后运营利润达到1.258亿美元,约合9.1…

【论文极速读】 LLava: 指令跟随的多模态大语言模型

【论文极速读】 LLava: 指令跟随的多模态大语言模型 FesianXu 20240331 at Tencent WeChat Search Team 前言 如何将已预训练好的大规模语言模型(LLM)和多模态模型(如CLIP)进行融合,形成一个多模态大语言模型&#xf…

【MATLAB】基于EMD-PCA-LSTM的回归预测模型

有意向获取代码,请转文末观看代码获取方式~ 1 基本定义 基于EMD-PCA-LSTM的回归预测模型是一种结合了经验模态分解(Empirical Mode Decomposition, EMD)、主成分分析(Principal Component Analysis, PCA)和长短期记忆…

redis集群不允许操作多个key解决方案、redis key负载均衡方案

前提 在cluster redis 中进行同一个命令处理不同的key会报错:CROSSSLOT Keys in request dont hash to the same slot,例如: 此示例使用sdiff 命令对pool_1与pool_2进行diff操作。 那么我们在业务场景中就需要将集群redis中的不同key进行操作,我们该如何处理呢? 本次的…

CSS单行、同行文本左右对齐

再项目需求中,UI小姐姐常常要考虑项目的排版样式更简洁高级,常常会在项目设置内容或者字体两端对齐的效果,比如,在做表单时我们经常遇到让上下两个字段对齐的情况,比如姓名, 手机号码, 出生地等…

0406 组合放大电路

组合放大电路 共射-共基放大电路共集-共集放大电路 4.6.1 共射—共基放大电路 4.6.2 共集—共集放大电路 共射-共基放大电路 共集-共集放大电路 (a) 原理图 (b)交流通路 T1、T2构成复合管,可等效为一个NPN管

Docker搭建mysql性能测试环境

OpenEuler使用Docker搭建mysql性能测试环境 一、安装Docker二、docker安装mysql三、测试mysql连接 一、安装Docker 建立源文件vim /etc/yum.repos.d/docker-ce.repo增加内容[docker-ce-stable] nameDocker CE Stable - $basearch baseurlhttps://repo.huaweicloud.com/docker…

OpenAI、微软、智谱AI 等全球 16 家公司共同签署前沿人工智能安全承诺

人工智能(AI)的安全问题,正以前所未有的关注度在全球范围内被讨论。 日前,OpenAI 联合创始人、首席科学家 Ilya Sutskever 与 OpenAI 超级对齐团队共同领导人 Jan Leike 相继离开 OpenAI,Leike 甚至在 X 发布了一系列…

webpack5零基础入门-15样式兼容性问题处理

1.下载相关依赖 npm i postcss-loader postcss postcss-preset-env -D 2.在webpack.config.js中配置 注意:postcss-loader要在css-loader后面配置 3.写一个flex布局,flex是存在一定的兼容性问题的 4.打包 可以看到打包后未被处理 1.下载相关依赖 np…

YOLOv8绘制map曲线图

yolov8源码绘制的map曲线图不够清晰,python代码绘制的曲线图导入word之后清晰度也不够高,所以选择使用matlab来绘制曲线图,matlab可以直接复制图窗到word中,在转换成pdf也不会失真。点击编辑,复制图窗即可复制到word中…

C - Sigma Problem(AtCoder Beginner Contest 353)

题目的链接: C - Sigma Problem (atcoder.jp) 题目: 样例: 题目大致含意: 给你n个数,让你对这n个数进行操作,比如当前是第i个,那么让a[i] 和 后面的每个数进行相加, 例如a[i] a[i 1] 注意的是a[i] a[i 1]的结果…

linux的用户管理

新建用户:1.useradd 2.passwd 完成的操作: (1)/etc/passwd添加一行 (2)/etc/shadow添加一行 (3)/etc/group添加一行 (4)创建用户家目录 (5)创建用户邮件文件 例:创建用户jerry,要求: uid:777&am…

【git】开发提交规范(feat、fix、perf)

这段时间收到的需求很多,可能是临近两周一次的大版本灰度上线,这次产生了一个关于git的思考,就是各个版本之间怎么管理的问题,这里做出我自己的一些方法。 首先,既然已经明确了remote分支中的release分支为主分支&…

多线程讲解(详解)

目录 什么是多线程? 为什么要使用多线程? 线程的创建 使用Thread实现 从以上代码我们梳理一下多线程创建步骤: 注意: 小示例 首先,引入依赖 然后,按照我们刚刚说的构建多线程的步骤进行构建&#…

Arthas,应用诊断利器!【送源码】

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信…

Qt快速入门到熟练(电子相册项目(一))

经过一段时间的学习,相信大家对QT的基本用法都有所了解,从这篇文章开始,我准备记录一下电子相册的项目的一个学习过程。 实现项目创建功能 对于这个电子相册的项目,我并没有在一开始就把所有可能用到的功能模块去事无巨细的考虑周…

通过域名接口申请免费的ssl多域名证书

来此加密已顺利接入阿里云的域名接口,用户只需一键调用,便可轻松完成域名验证,从而更高效地申请证书。接下来,让我们详细解读一下整个操作过程。 来此加密官网 免费申请SSL证书 免费SSL多域名证书,泛域名证书。 首先&a…

Intellij IDEA创建springboot项目

1、点击 Create New Project 2、选择 Spring Initializr —> 点击下一步 3、备注: Artifact为项目名称 group为项目组名 language设置为java packaging为打包方式 3、选择相应的依赖,也可以自己导入,在Developer Tools 、Web 、SQL 中选…