当前位置: 首页 > news >正文

Linux:vim的相关知识

 

目录

vim 是一个较为常见的编译文件的命令操作。

三种模式的区分的作用如下:

命令模式:

插入模式:

进入插入模式的标志:左下角有INSERT

底行模式:

命令模式的常见命令: 

 底行模式常见命令:

 注意事项:vim的临时文件

sudoers的配置

 如何在sudoers配置文件中添加个人用户?

1、变身超级用户root

2、 使用vim打开sudoers,并使用底行命令 set nu 打开行号

3、摁下j 进行向下翻找,查询大概第100行的命令,使用 yy 进行复制 随后使用p 进行粘贴,在之后进入插入模式。,将root修改为自己的用户名

 4、最后esc : wq !

vim的配置 

例如:

配置 set nu前:

配置set nu 后: 

vim 是一个较为常见的编译文件的命令操作。

  • 在vim中,最为常见的有三种模式,分别是:命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)

三种模式的区分的作用如下:

命令模式:

vim的核心模式,使用vim进入文件编辑时的最初模式,在该模式中只能移动光标和使用命令对文件内容进行编辑

插入模式:

在进入vim后,使用进入插入模式,插入模式就是vim的编辑模式,可以在vim中进行内容的编辑和修改

进入插入模式的标志:左下角有INSERT

底行模式:

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模 式。

命令模式的常见命令: 

在命令模式下,需要的是命令和光标之间的配合!

yy  复制当前行
p 粘贴,当前光标的下一行
u 撤销 ,是撤销操作,例如撤销上一次的操作或者撤销下一次的操作//n表示数字
n + yy   复制下面n行的内容
n + p    粘贴n行的内容
n + u    撤销n次操作dd  剪切操作或者删除操作
n + dd   剪切或者删除n行内容  //如果是剪切操作需要p命令的配合shift + 4 将光标移动到当前行的结尾位置shift +6  将光标移动到当前行的开头位置gg 将光标移动到整个文本的开头位置shift + g 将光标移动到整个文本的最后一行n + shift + g  将光标移动到文本的第n行位置h 光标左移动
j 光标下移动
k 光标上移动
l 光标右移动
// hjkl也可以使用n 表示向某个方向移动n次w 以单词为单位进行光标的后移
b 以单词为单位进行光标的前移shift + ` 大小写迅速的切换n + x 删除光标后面的一个字符 可以一次性删除n个
n + shift + x 删除光标前面一个字符   可以一次性删除n个n + r 光标指定的位置,进行字符的替换,可以一次替换多个
shift + r 进入替换模式,可以进行文本的替换//连续按两次z  
shifit + z z  保存并退出

需要注意的的是 shift + z z 是暂停vim 的使用命令

 底行模式常见命令:

w 表示保存
q 表示退出
!表示强制
wq 保存并退出
wq! 强制保存并退出
set nu 文本内容的显示行号! 命令  表示不用退出vim 可以在vim内直接进入shell的命令执行
常见的: !gcc 表示在底行模式中进行gcc的命令  又或者 !ls -l 表示在底行模式中查看文件的内容属性vs 文件名字  表示进行文件的分配操作

如下图所示,就是在vim编辑test.c的模式下,使用了底行模式命令 vs test.h 使得分配出了一个test.h文件 

 注意事项:vim的临时文件

  •  vim 会保存临时文件,在出现意外的时候vim会保存临时文件,同时再次编辑时会跳出临时文件的镗床,所以我们要删除临时文件,就行了,举例子:test.c 的临时文件是. test.c.swp
  • 文件内容的代码的快速注释方法和批量去除注释的快捷方法:
  •  标示注释:ctrl +v ,hjkl进行区域的选择,j 快速的选择需要标注的行,shift +i 进入插入模式,//进行注释,esc esc 退出
  • 去除注释:ctrl +v ,hjkl进行区域的选择,选择仅仅包含//的行,然后d
  • ctrl +v 进入的模式 

 

sudoers的配置

 如何在sudoers配置文件中添加个人用户?

  • sudoers的文件信息:

  •  操作如下:

1、变身超级用户root

2、 使用vim打开sudoers,并使用底行命令 set nu 打开行号

3、摁下j 进行向下翻找,查询大概第100行的命令,使用 yy 进行复制 随后使用p 进行粘贴,在之后进入插入模式。,将root修改为自己的用户名

 

 4、最后esc : wq !

vim的配置 

  • 配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。
  • 例如,/root目录下, 通常已经存在一个.vimrc文件,如果不存在,则创建之。 切
  • 换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~ 打开自己目录下的.vimrc文件,执行 vim .vimrc 

当然,对于vim的配置,建议是每一个用户都在自己的用户目录下建立一个.vimarc的文件,进行属于自己的vim的配置

 而进行配置也十分的简单,在用户目录下建立好.vimrc文件后,直接使用vim 进入该文件,随后在文件中输入vim配置的常用命令。

例如:
  • 设置语法高亮: syntax on
  • 显示行号: set nu
  • 设置缩进的空格数为4: set shiftwidth=4

在.vimrc 中输入set nu  (.vimrc中一开始就是空的!)

配置 set nu前:

配置set nu 后: 


 

相关文章:

Linux:vim的相关知识

目录 vim 是一个较为常见的编译文件的命令操作。 三种模式的区分的作用如下: 命令模式: 插入模式: 进入插入模式的标志:左下角有INSERT 底行模式: 命令模式的常见命令: 底行模式常见命令&#xff1…...

Qt 国产嵌入式操作系统实现文字转语音功能(ekho库)

1.简介 Qt 国产嵌入式操作系统实现文字转语音功能(TTS)_tts驱动 转文字-CSDN博客 在继上篇文章之后,甲方粑粑不满意使用eSpeak发出的声音太难听了,这就不得不找个替代品,声音稍微好听了一些。 使用ekho开源库。 Ekho(余音)是一个免费、开源的中文语音合成软件。它目…...

Redis常见类型及常用命令

目录 常见的数据类型 一、String类型 1、简介 2、常用命令 (1)新建key (2)设值取值 ​编辑 (3)批量操作 (4)递增递减 3、原子性操作 4、数据结构 二、list类型 1、list常…...

实战纪实 | 某配送平台zabbix 未授权访问 + 弱口令

本文由掌控安全学院 - 17828147368 投稿 找到一个某src的子站,通过信息收集插件wappalyzer,发现ZABBIX-监控系统: 使用谷歌搜索历史漏洞:zabbix漏洞 通过目录扫描扫描到后台,谷歌搜索一下有没有默认弱口令 成功进去了…...

【第十五课】数据结构:堆 (“堆”的介绍+主要操作 / acwing-838堆排序 / c++代码 )

目录 关于堆的一些知识的回顾 数据结构:堆的特点 "down" 和 "up":维护堆的性质 down up 数据结构:堆的主要操作 acwing-838堆排序 代码如下 时间复杂度分析 确实是在写的过程中频繁回顾了很多关于树的知识&…...

前端JavaScript篇之JavaScript有哪些数据类型,它们的区别?

目录 JavaScript有哪些数据类型,它们的区别?数据类型区别 JavaScript有哪些数据类型,它们的区别? 数据类型 JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt… St…...

LeetCode---380周赛

题目列表 3005. 最大频率元素计数 3006. 找出数组中的美丽下标 I 3007. 价值和小于等于 K 的最大数字 3008. 找出数组中的美丽下标 II 一、最大频率元素计数 这题就是个简单的计数题,正常遍历统计数据即可,关键是你要会写代码逻辑。 代码如下&…...

archlinux 如何解决安装以后没有声音的问题

今天安装完archlinux以后发现看视频没声音 检查一下是否有 /lib/firmware/intel/sof 发现没有 如果你也是这样的话,可以尝试安装: sudo pacman -S sof-firmware 重启后再看看有没有声音: reboot 反正我有声音了...

什么是ORM思想?

1. ORM概念 ORM(Object Relational Mapping)对象关系映射模式,是一种技术,解决了面向对象与关系型数据库存互不匹配的现象。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2. ORM由来 在软件开发的过程中,通常…...

设计接口时,为其添加签名鉴权---详细教程

一、何为签名 我们知道无论是restful api还是传统接口、亦或是其他形式接口的调用,接口签名都是非常重要的安全机制,它可以确保请求的发起者是经过认证和授权的客户端,同时也可以防止接口被攻击,请求参数被篡改等等。 用大白话来解…...

5G+物联网:连接万物,重塑智慧社区,开启未来生活新纪元,助力智慧社区的革新与发展

一、5G与物联网:技术概述与基础 随着科技的飞速发展,第五代移动通信技术(5G)和物联网(IoT)已经成为当今社会的热门话题。这两项技术作为现代信息社会的核心基础设施,正深刻地改变着人们的生活和…...

[反转链表] [合并两个有序链表][分割链表]

这里写目录标题 反转链表合并两个有序链表分割链表 反转链表 1、题目: 2.思路  思路1:建立一个newHead,取一个节点进行头插。具体做法如下! 建立一个newHead(新头),由于一个节点里面存的是下一个节点的地址,如果取…...

中文数据让LLM变笨?

我这里先贴一下论文的原链接: https://arxiv.org/abs/2401.10286 然后贴一下我翻译标注的下载链接:https://gitee.com/chatpaper/arXiv_top_chinese/blob/master/0801_top/%E4%B8%AD%E6%96%87%E4%BC%9A%E8%AE%A9LLM%E5%8F%98%E7%AC%A8%EF%BC%9F.pdf 先…...

【代码随想录】刷题笔记Day54

前言 差单调栈就结束代码随想录一刷啦,回家二刷打算改用python补充进博客,小涛加油!!! 647. 回文子串 - 力扣(LeetCode) 双指针法 中心点外扩,注意中心点可能有一个元素可能有两个…...

二.Winform使用Webview2在Demo1中实现地址简单校验

Winform使用Webview2在Demo1中实现地址简单校验 往期目录回顾添加对于的简单url验证提示通过上节和本节涉及到的函数有 往期目录 往期相关文章目录 专栏目录 回顾 通过一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址 我们已经知道了解决资源…...

从0开始学习C++ 第二十课:模板与泛型编程

第二十课:模板与泛型编程 学习目标: 掌握模板的基本语法和概念。学会使用函数模板来创建可重用的函数。学习如何定义类模板以实现数据结构的泛型。理解模板在C中提供的灵活性和强大功能。 学习内容: 模板的概念: 模板是C中支持…...

pcl之滤波器(一)

pcl滤波器 pcl一共是有十二个主要模块,详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块,官网一共是提供了6个例程,今天先来看第一第二个。 直通…...

java项目性能优化(MyBatis中开启查询缓存及flushCache与useCache的使用)

在java项目中,如果需要大量的DB查询,导致缓存过多,项目运行缓慢,可以设置在select查询时,添加二级缓存的清空。 如果没有去配置flushCache、useCache,那么默认是启用缓存的。 1,flushCache默认…...

Unity3D控制人物移动的多种方法

系列文章目录 unity知识点 文章目录 系列文章目录前言一、人物移动之键盘移动1-1、代码如下1-2、效果 二、人物移动之跟随鼠标点击移动2-1、代码如下2-2、效果 三、人物移动之刚体移动3-1、代码如下3-2、效果 四、人物移动之第一人称控制器移动4-1、代码如下4-2、效果 五、And…...

无人机打击激光器

激光器的应用非常广泛,涵盖了多个领域。以下是一些主要的激光器应用: 医疗领域:激光器在医疗行业中有着重要应用,比如用于激光手术(如眼科手术)、皮肤治疗、牙科治疗、肿瘤治疗等。 工业制造:在…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...