Linxu vim详解(常用命令)

目录

强烈建议全文阅读!

vim是什么?

命令模式

底行模式:shift + ;

普通用户无法sodu?

vim配置问题:(一点都不重要)


vim是什么?

Vs 2022是一款集成开发软件
vim是一个文本编辑器(主要写C和C++)
常用三种模式:
1、命令模式
2、底行模式
3、插入模式

vim刚打开时处于命令行模式,不方便进行书写代码操作
这个时候输入的所有字符,都被视为命令行
所以,没有用处
输入i进入插入模式,进行正常的编写
要退出,必须从插入模式退回命令模式
怎么退出?
按Esc
再按shift + : #进入底行模式
输入wq(write quit)


插入模式:其实就是编辑模式
命令模式:允许使用者通过命令,来进行文本的编辑控制
底行模式:用来进行vim和shell进行包括但是不限于交互的


命令模式


yy :复制当前行
p:粘贴到当前光标的下一行
u:撤销
dd :剪切/删除指定的行
dd的剪切用p实现
n  + dd:剪切/删除连续的n行
n + p:粘贴n次指定内容
n + yy :从当前光标开始,连续复制n行

vim不能默认使用鼠标
Shift + 4 = $:迅速移动光标到当前行结尾
shift + 6 = ^ :迅速移动光标到当前行开始位置
gg:将光标定位到整个文本最开始位置
shift + g = G:将光标定位到整个文本最后位置
n + shift + g = G:将光标定位到整个文本任意位置
H键:左
J键:下
K键:上
L键:右
也可以带n
快速记住:h(左)   j(jump,下) k(king,上)   l(右)
为什么要使用hjkl来控制左右上下,键盘初期没有方向键,为了兼容
w:按照单词为单位进行光变后移
b:按照单词为单位进行光变前移
Ctrl + R :对历史撤销进行撤销
shift + `` = ~:大小写快速切换
x:删除光标后一个字符
n + x :一行内删除光标后n个字符
shift + x = X:删除光标前一个字符
n + shift + x :删除光标前n个字符
n + r:对光标指定的位置,进行一个字符的替换,可以一次替换多个
shift + r = R :替换模式,会直接向后进行文本替换
shift + zz:保存并退出

从命令模式进入插入模式的方法:
1、r(光标不动,直接进入插入模式)
2、o(插入一行之后直接进入插入模式)
3、a(光标往后移动一个字符再进入插入模式)


底行模式:shift + ;


q:退出
w:保存
q!:强制退出
wq:保存并退出
wq!:保存并强制退出
如果你对文件进行了更改,但是没有进行保存就要退出,此时就会报错:
No write since last change :意思是没有对更改的内容进行保存
类似于你的文件进行更改之后,系统问你是否需要更改
set nonu:取消行号
set nu:打开行号
s///g(global)
/关键字:搜索
!gcc + 文件:编译
!command:不退出vim命令,可以进行shell命令的执行
整个命令很方便:例如函数查看
vs 文件:打开文件,多文件操作
ctrl ww:切换光标
底行模式:set nu #设置行号

ctrl + z:是把vim stop,就是把vim暂停了。不要使用
这是退出vim异常:
此时再打开对应的文件,就会出错
意思是把vim挂到后台运行了
怎么办呢?
ps ajx | grep vim
kill -n 对应的进程杀掉
但是此时再打开文件,还是处于异常
这是因为在vim异常时,会自动保存一份临时文件
以便于我们进行数据回复
此时对于临时文件XXX.X.swp会有对应的提示操作
根据提示进行选择输入,是覆盖还是不保存等等,即可继续进行操作
但是,你每一次vim打开该文件,都会提示这个临时文件,很麻烦
这个时候你可以在本目录下把这个临时文件给删掉


如果你在断网之前,正在对文件进行编写
这个时候vim为了保证数据不丢失,也会 生成一个临时文件
这个时候根据你的需求,可以选择对应的操作:
R:恢复
D:删除(删除过后,之后vim打开文件就不会再出现临时文件的界面)
当然,如果你对文件没有任何修改,那么断网断电对文件都没有影响
就不会生成临时文件
下一次vim打开文件,还是正常的

批量化注释和批量化去注释: 
1、ctrl + v:区域选择(支持shift + g)进入视图模式,使用hjkl方向控制
2、shift + i 
3、输入//
4、两次Esc

删除注释:
1、ctrl + v
2、hjkl区域选择
3、包含且仅包含//
4、d:删除

普通用户无法sodu?


XXX is not in the sudoers file.
解决历史问题:普通用户无法进行sudo提权
首先,为什么会出现这个问题?
一般来说,只有root超级管理员才能进行提权
但是你进行提权的时候输入的是XXX的密码
好了,那么如果说你用自己的账号就可以进行提权,那还要root干嘛?
所以,一个普通拥护是否能被提权:
1、root进行操作
2、该用户是被信任的
在etc/sudoers文本文件中,会有对应的用户信息
有对应配置的用户,就可以进行提权,没有就不能进行提权

那么,怎么进行提权呢?
1、首先,需要root密码,登录root账号
2、vim etc/sudoers
3、添加用户配置

vim配置问题:(一点都不重要)


1、配置原理
vim本质上是一个二进制的可执行程序
但是在vim打开时,不是简单的打开
而是会首先访问配置文件.vimrc
如果有这个文件,就会访问,没有就不访问
而这个.vimrc就是一个对vim进行自主配置的文件
vim打开时就会读取.vimrc里的内容,读取对应的配置信息
然后在vim操作时,就会添加相关的配置操作


2、一键式配置

Vim的全面配置 - 知乎 (zhihu.com)

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

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

相关文章

记录一下MySQL8版本更改密码规则

#查看当前密码策略 show variables like validate_password%;#修改密码等级为low set global validate_password.policy LOW; #注意MySQL8版本这是点,不是_#修改密码长度为6 set global validate_password.length 6;#查询我的数据库中user表host和user select host,…

[C++][算法基础]SPFA求负权边(Dijkstra优化)

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你判断图中是否存在负权回路。 输入格式 第一行包含整数 n 和 m。 接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长…

康耐视visionpro-CogFindCircleTool操作工具详细说明

◆CogFindCircleTool]功能说明: 通过用多个卡尺找到多个点来拟合所要找的圆 ◆CogFindCircleTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加CogFindCircleTool工具 ②.添加输入图像,右键“链接到”或以连线拖拽的方式选择相应输入源 ③预期的圆弧:设置预期圆弧的…

消除 BEV 空间中的跨模态冲突,实现 LiDAR 相机 3D 目标检测

Eliminating Cross-modal Conflicts in BEV Space for LiDAR-Camera 3D Object Detection 消除 BEV 空间中的跨模态冲突,实现 LiDAR 相机 3D 目标检测 摘要Introduction本文方法Single-Modal BEV Feature ExtractionSemantic-guided Flow-based AlignmentDissolved…

基于Spring Boot实现的图书个性化推荐系统

基于Spring Boot实现的图书个性化推荐系统 开发语言:Java语言 数据库:MySQL工具:IDEA/Ecilpse、Navicat、Maven 系统实现 前台首页功能模块 学生注册 登录 图书信息 个人信息 管理员功能模块 学生管理界面图 图书分类管理界面图 图书信息管…

A17 STM32_HAL库函数 之 GPIO扩展驱动程序所有函数的介绍及使用

A1 STM32_HAL库函数 之 HAL系统驱动程序所有函数的介绍及使用 1 该驱动函数预览1.1 HAL_GPIOEx_ConfigEventout1.2 HAL_GPIOEx_EnableEventout1.3 HAL_GPIOEx_DisableEventout 该文档修改记录:总结 1 该驱动函数预览 序号函数名描述1HAL_GPIOEx_ConfigEventout()配…

基于R语言实现的负二项回归模型【理解与实现】-理解负二项回归模型和泊松回归模型之间的区别

前言 我们可以在R语言中使用MASS包中的glm.nb函数来拟合负二项模型,以及使用glm函数来拟合泊松模型。以下是一个详细的过程,包括模拟数据的生成、模型的拟合、结果的比较和解释。 需要的包 if (!require("MASS")) install.packages("M…

WPF中Binding的原理和应用

WPF中Binding的原理和应用 在WPF中,Binding机制是实现数据与界面的连接和同步的重要工具。了解Binding的原理和应用,对于开发人员来说是非常重要的。本文将详细介绍WPF中Binding的原理和应用,帮助读者更好地理解和运用这一强大的机制。 Bin…

Qt:发出一个信号,有多少相关槽函数执行?

返回连接signal的接收者的个数。 因为信号和槽都能作为信号的接收者,同时相同的连接能被建立很多次,接收者的数量和与该信号建立连接的数量相同。 当调用该函数时,你能使用SIGNAL()宏来传递一个特定的信号: if (receivers(SIGNA…

gitlab:Could not resolve host

fatal: unable to access http://xxx.git/: Could not resolve host: yyy Git-fatal: unable to access ‘https://gitlab.XX.git/‘: Could not resolve host: gitlab.XX.com.cn_drone unable to access .git/: could-CSDN博客 原因: 克隆的时候使用的是这里的HTT…

实现(图像、视频等)数据上云存储

实现(图像、视频等)数据上云存储 实现(图像、视频等)数据上云存储通常涉及以下几个步骤: 选择云存储服务商: 根据您的需求、预算、地域覆盖、数据安全性、服务稳定性等因素,选择一家合适的云存储…

QT助手翻译【QT 5.14】 -----QPushButton

目录 1 属性 2 公共职能 3 重新实现的公共功能 4 公用插槽 5 受保护的功能 6 保护方法 7 详细说明 1 属性 自动默认值:bool 此属性保存按钮是否为自动默认按钮 如果此属性设置为true,则该按钮为自动默认按钮。 在某些GUI样式中&a…

题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all pa…

Android之启动优化

不在 Application 初始化非必要的第三方库,尽量在使用的时候初始化,例如地图平台、播放器框架等这些可以在使用的时候再初始化。 启动优化误区: 启动页 Activity 的窗口背景采用透明色,由此来掩盖启动时卡白屏时间较长的问题&am…

面试题:Spring Cloud微服务架构下的服务发现、配置中心、负载均衡等组件介绍与配置

Spring Cloud微服务架构提供了一系列标准化的组件和服务,以帮助开发者更好地构建和管理分布式微服务系统。以下是对Spring Cloud中服务发现、配置中心和负载均衡三个核心组件的简介以及基本配置方式: ### 1. 服务发现 : 组件 : Spring Cloud Netfl…

13.多通道视频流缓存以及显示架构

1 简介 多通道视频流缓存以及显示架构是一个在数字图像处理中很基础也很重要的一个架构。在图像拼接以及高分辨率图像显示方面应用范围较为广泛。本文将介绍一个四通道的图像显示。可以四个图像信息输入以及拼接到一个显示屏里面。使用的开发板为A7 2 框架图 架构图如下图所示…

[Spring Cloud] (汇总)网关(Gateway)与微服务(SringBoot)搭建

因之前的项目接触到了gateway网关,故根据自己的理解重新实现了一套网关组件。并计划持续更新,为实现一步步搭建网关。 每个阶段的博客均有对版本的代码如下: 杉极简/gateway网关阶段学习 版本选择 选择目前最新的SpringBoot2.6.13作为基础。…

康耐视visionpro-CogBlobTool工具操作详细说明

CogBlobTool功能说明: 通过设置灰度值提取感兴趣区域,并分析所提取区域的面积、长宽等参数。 Cog BlobTool操作说明: .打开工具栏,双击或点击鼠标拖拽添加CogBlobTool工具 ②.添加输入图像:单击鼠标右键“链接到”或以连线拖拽的方式选择相应输入源 ③.极性: “白底黑点…

Ubuntu 无法卸载 Virtualbox, 提示 Running VMs found

Running VMs foundVirtualBox is currently running. Please close it and try again. Please note that it can take up to ten seconds for VirtualBox (in particular the VBoxSVC daemon) to finish running. 不知道什么原因,明明已经将所有虚拟机关闭了&#x…

内网渗透-Earthworm的简单使用(内网穿透工具)

Earthworm的简单介绍(一) 文章目录 EarthWorm下载地址1. 普通网络 1.1 跳板机存在公网IP 1.1.1 网络环境1.1.2 使用方法1.1.3 流量走向 1.2 跳板机不存在公网IP,可出网 1.2.1 网络环境1.2.2 使用方法1.2.3 流量走向 2. 二级网络 2.1 一级跳…