【Linux】Linux编辑器---vim的使用

news2024/11/20 1:32:08

等老了就养只柴犬,相依为命。
在这里插入图片描述

文章目录

  • 一、命令模式
    • 1.光标定位操作
    • 2.文本复制、粘贴、剪切、撤销
    • 3.文本编辑
  • 二、插入模式
  • 三、底行模式
  • 四、vim配置原理
  • 五、解决普通用户无法使用sudo提权



一、命令模式

在这里插入图片描述

刚打开vim时,默认就是命令模式,命令模式的意义是提高编辑效率。

1.光标定位操作

shift + 4 行右
shift + 6 行左
shift + g 底部
gg 顶部
n + shift + g 跳转光标到指定行,n代表具体的行号
h j k l 分别代表左、下、上、右的光标移动
w b 代表向后和向前按照单词移动(nw nb 多个单词向前向后移动),宏观上的单词

2.文本复制、粘贴、剪切、撤销

yy 复制(nyy 多行复制,n代表次数)
p 粘贴(np 多行粘贴,n代表次数)
u 撤销
ctrl + r 取消撤销
dd 删除光标所在行(ndd 多行删除)
ndd + p 剪切
shift + x 向前删除一个字符(n + shift + x 多个字符)
x 向后删除一个字符(n + x 多个字符)
nx + p 剪切

3.文本编辑

shift + ~ 大小写切换
shift + r 批量化替换文本内容
r 替换单个字符(nr 对n个字符进行相同的替换 )
cw 删除当前单词,切换到插入模式,cnw删除多个单词,切换插入模式

二、插入模式

从命令到插入模式的方法:
i 直接转到插入模式
a 光标向后移动一个字符并转到插入模式
o 光标切换到下一行并转到插入模式

三、底行模式

set nu 对文本调出行号,set nonu 取消调出的行号
wq写入并退出,q直接退出,q!,w!,wq!都表示强制操作
vs + 文件名进入分屏,但无论分多少屏,光标只有一个
ctrl + ww 切换光标到另一屏幕
可以不退出vim在底行模式下执行linux命令,但是需要在命令前加感叹号!
%s/printf/cout/g,将文本中所有的printf全替换为cout,s表示替换,g表示global全局
/2 表示在文本中检索包含2的所有内容,同理你也可以检索其他相关内容,这里只是举个栗子

四、vim配置原理

vim的配置是一人一份的,一个用户配置的是该用户的,不影响其他用户!

每一个用户虽然用的是同一个vim程序,但是大家用的是不同的vim配置,因为每一个用户(root和普通用户都包括),在自己的家目录下,都有一个属于自己的配置文件。
在这里插入图片描述
所谓的vim配置就是修改自己的.vimrc文件,不要动任何不属于你的配置文件!

例如下面,我对.vimrc进行了set nu的配置来让vim中的文本内容都带上行号。
在这里插入图片描述
网上有大量的vim配置,我们可以自己将搜索到的vim配置拷贝到自己的.vimrc文件中

下面就是我在网上搜到的一些vim配置
在这里插入图片描述
如果你不想自己配置的话,也可以将下面的这条命令拷贝下来,在xshell下直接执行,它会一键配置好所有的vim配置,我们什么都不用干。
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
在这里插入图片描述

五、解决普通用户无法使用sudo提权

将用户切换为root,在root中找到/etc/sudoers文件并用vim打开,然后在下面列表中仿照root的格式添加普通用户,最后在底行模式下输入wq保存并退出

在这里插入图片描述
上面步骤完成之后,普通用户也可以使用sudo指令了,因为我们已经将普通用户添加至信任列表了。

在这里插入图片描述

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

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

相关文章

C++STL之string的使用

对于C语言中的字符串,我们只能使用char类型数组保存,并且是以\0结尾的. 操作起来非常不方便而且底层空间需要用户自己访问,非常造成容易越界访问. 这个时候,C的STL中的string类就很好解决了这些. 目录 string的使用 1.string…

mqtt的使用与二次封装

前提:先安装Mosquitto并启动服务,可使用mqttx进行接收发送的测试。 Mosquitto以配置启动命令 mosquitto -c mosquitto.conf -v原文链接:mqtt的使用 本文为测试使用固无账号密码,可在原文查看 封装后实现效果,加入一个…

LeetCode题解 16(15,22) 三数之和,括号生成

文章目录三数之和(15)代码解答:括号生成(22)代码解答:三数之和(15) 该题是让从1个数组中找到和为0的不重复的三个数,这次我们使用排序和指针的方法来解决 先将该数组从小到大进行排序 Arrays.sort(nums);我们需要遍历一遍该数组,同时我们还要去重的操作(例如[-1,-1,-1,2],这里面…

helm本地debug template渲染小记

前提条件 1, 安装helm 2,要能连接的k8s 3,本地有完成charts文件目录 具体步骤 本文因为是在项目流程中helm渲染出的deployment语法报错或者最终生成的不符合预期,因此本地使用helm命令进行debug验证测试。 我们先看一下基本的c…

怎么把word里面的彩色图转化为灰度图,直接在word里面操作,无需转其他软件,超简单!(位图和矢量图都可以)

怎么把word里面的彩色图转化为灰度图,直接在word里面操作,无需转其他软件,超简单!(位图和矢量图都可以) Microsoft Office Word是微软公司的一个文字处理器应用程序。它最初是由Richard Brodie为了运行DOS…

深入理解自编码器(用变分自编码器生成图像)

文章目录自编码器欠完备自编码器正则自编码器稀疏自编码器去噪自编码器收缩自编码器变分自编码器References内容总结自花书《Deep Learning》以及《Python 深度学习》。 自编码器 自编码器(autoencoder)是神经网络的一种,经过训练后能尝试将…

机器学习经典算法:决策树(2)

1. 概述 决策树(Decision Tree)是有监督学习中的一种算法,并且是一种基本的分类与回归的方法。决策树有两种:分类树和回归树。 决策树是用于分类和回归的工具,它将数据特征值拆分为决策节点处的分支(例如&a…

六、Kubernetes核心技术Pod详解、实例

1、概述 Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最 小资源对象模型,也是在 k8s 上运行容器化应用的资源对象,其他的资源对象都是用来支 撑或者扩展 Pod 对象功能的,比如控制器对象是用来管…

某大型政务网站的优化咨询案例(视频点播VOD+GZIP压缩+静态文件CDN+Redis缓存+全文索引)

2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 这次分享关于一个对某大型政务网站的优化咨询的案例,发生在今年的下半年,已过去一段时间,并取得了良好的成果!* 项目背景 某大型政务网站准备上线,需要…

08-Golang中的运算符

[TOC](Golang中的运算符运算符介绍算数运算符基本介绍细节说明关系运算符(比较运算符)基本介绍细节说明逻辑运算符基本介绍细节说明赋值运算符基本介绍细节说明运算符优先级运算符介绍 运算符是一种特殊的符号,用来表示数据的运算、赋值和比较 1.算数运…

Vue事件处理的基本使用

前言 事件处理在vue中也是非常重要的一项技术,它类似于js的事件处理,但是也有不同,下面就简单介绍一下在vue中如何进行事件使用以及一些要点 1 事件基本使用 在这里我们使用单击事件为例,简单讲讲在vue中单击事件的编写以及细节…

最近面试遇到一个算法题,简单写一点。

第⼀题(必答) 请针对有重复数字的数组设计⼀个快排算法,⽐如:[34, 34, 89, 1, 1, 20, 12],排序后结果为 [89,34,34,20,12,1,1] 第⼆题(必答) 请利⽤Redis 实现⼀个通⽤分布式锁,并…

技术进步、研发计划启动及政策支持 共促我国合成生物学市场容量加速扩张

合成生物学是对生物体进行有目标的设计、改造乃至重新合成,这一名词最早出现于DNA重组技术发展的上世纪70年代。合成生物学汇聚并融合了生命科学、工程学和信息科学等诸多学科,在天然产物合成、化学工业、生物能源、生物医药等诸多领域有广泛的应用前景。…

【Animejs】——Anime.js照片墙案例实现

目录 一、实现的效果&#xff1a; 二、实现js的具体步骤 1、需要实现的逻辑梳理 2、切换风格的逻辑 三、完整代码&#xff1a; 用js编写使用animejs实现图片复杂的切换效果 一、实现的效果&#xff1a; 点击——> <——箭头&#xff0c;实现不同动画效果的炫酷切换 …

【小5聊】C++ 输入矩阵数字,然后回环方式输出

C 输入矩阵数字&#xff0c;然后回环方式输出 1、题目内容 输入 第一行是两个m和n&#xff0c;分别代表矩阵的行数和列数。 第二行开始输入对应矩阵 输出 第二行回转输出。 相邻的两个整数之间用一个空格分开&#xff0c;行尾无空格 样例输入 5 6 4 8 9 4 5 6 1 2 5 6…

控制算法-PID算法总结-从公式原理到参数整定解析

目录 一、控制系统 1.1控制系统的分类 1.2 性能指标 二、PID算法的起源及特点 三、PID应用 四、PID公式原理 五、PID源码 六、PID整定方法 6.1 经验法 6.2 衰减曲线法 6.3 响应曲线法 参考文献&#xff1a; 一、控制系统 1.1控制系统的分类 分为开环控制、闭环控制和…

Java 8 Stream 从入门到进阶——像SQL一样玩转集合

0.阅读完本文你将会 了解Stream的定义和它的特征了解Stream的基础和高阶用法 1. 前言 在我们日常使用Java的过程中&#xff0c;免不了要和集合打交道。对于集合的各种操作有点类似于SQL——增删改查以及聚合操作&#xff0c;但是其方便性却不如SQL。 所以有没有这样一种方式…

【每日一题Day66】LC1754构造字典序最大的合并字符串 | 贪心 双指针模拟

构造字典序最大的合并字符串【LC1754】 You are given two strings word1 and word2. You want to construct a string merge in the following way: while either word1 or word2 are non-empty, choose one of the following options: If word1 is non-empty, append the fir…

10.2、Django入门--前台管理

文章目录1、URLconf 路由管理展示首页2、视图函数处理业务逻辑展示书籍的详细页3、模板管理实现好看的HTML页面3.1 模板引擎配置3.2 模板语法&#xff1a;变量3.3 模板语法: 常用标签3.4 主页与详情页前端HTML设计常用的HTML编写基础标题标签列表标签图片标签链接标签表格标签表…

耗时二周,万字总结Maven简明教程,与君共勉!

什么是Mavne Maven 是一个项目管理工具&#xff0c;它包含了一个项目对象模型 (POM&#xff1a;Project Object Model)&#xff0c;一组标准集合。由于 Maven 使用标准目录布局和默认构建生命周期&#xff0c;开发团队几乎可以立即自动化项目的构建基础设施。在多个开发团队环…