【Linux】开发工具——vim多模式编辑器的入土设置sudoers白名单

=========================================================================

个人主页点击直达:小白不是程序媛

Linux系列专栏:Linux被操作记

=========================================================================

目录

前言:

基本概念

vim基本操作

[正常模式]切换至[插入模式]

[插入模式]切换至[正常模式]

[正常模式]切换至[末行模式]

三种模式的切换关系图

vim命令模式命令集

进入插入模式

插入模式切换为命令模式

移动光标

删除文字

复制

替换

撤销上一次操作

更改

跳至指定的行

vim底行模式命令集

列出行号

跳到文件中的某一行

查找字符

保存文件

离开vim

简单vim配置

配置文件的位置

使用插件

普通用户白名单设置


前言:

通过前面几篇文章的学习我们已经对Linux操作系统算是比较了解了,可以熟练的使用一些指令,我们就要进入Linux下的系统编程。在Windows系统下可以安装各种集成开发环境像Dev-C++、VC6.0、VS等等,在这些软件中我们不仅可以写代码,软件也可以完成编译、链接,甚至是调试等一系列功能。而在我们Linux系统中编写代码、编译代码、调试代码可以说都是分开的,使用各种工具完成。例如:编写代码使用vim多功能编辑器、编译代码使用gcc/g++编译器、调试代码使用gdp调试器。今天给大家带来的是vim多功能编辑器的使用


vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。


基本概念

课堂上我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 

正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。


vim基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

vim test.c (文件名可以随便起,但是后缀一定要使用C/C++语言的后缀)

不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。 

[正常模式]切换至[插入模式]

        输入a
        输入i
        输入o

[插入模式]切换至[正常模式]

目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。

[正常模式]切换至[末行模式]

「shift + ;」, 其实就是输入「:」

退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,

例如:

        w (保存当前文件)

        wq (输入「wq」,存盘并退出vim)

        q! (输入q!,不存盘强制退出vim)

在任何模式下想要切换模式先进行无脑的ESC,在进入其他模式,这里要注意:在插入模式底行模式之间不可以切换。

三种模式的切换关系图


vim命令模式命令集

进入插入模式

按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

插入模式切换为命令模式

按 [ ESC ] 键

移动光标

  • 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底行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

列出行号

「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。

跳到文件中的某一行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

查找字符

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

保存文件

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

离开vim

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

vim多模式编辑器的使用操作我们就介绍完了,可是我们在使用是会感觉非常的别扭,例如:没有缩进、没有符号自动填充、没有提示等等。就是没有像VS那样顺手,那是因为我们的vim编辑器还没有各种配置,或者没有安装各种插件。安装完插件后我们就会觉得顺手很多。


简单vim配置

配置文件的位置

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

常用配置选项

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

使用插件

要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户。

关于详细的vim配置这里我不做过多说明,大家可以详细看看这篇文章的的vim配置

【精选】04 .vimrc文件配置_xlinxdu的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43244515/article/details/124779889?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169873082016800227481580%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169873082016800227481580&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-124779889-null-null.142%5Ev96%5Epc_search_result_base7&utm_term=vim%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187


普通用户白名单设置

在很多情况下我们使用sudo命令进行提权执行一些指令的时候,总会报下面的错误。

因为这是普通用户不在白名单内导致的。今天我们介绍了vim编辑器的使用可以用vim打开使用上面的一些指令在root用户下将自己设置在白名单内。

vim /etc/sudoers 使用vim编辑

找到下面这个位置 

将自己想要添加的用户添加上去(一定要保证和上面的root用户格式一样)

在命令模式下先使用w!强制保存在使用q!强制退出即可设置白名单成功。

今天vim多模式编辑器使用的分享就结束了,各种模式下的指令还得多多练习才能熟练的使用vim编辑器。大家看完文章后可以试试。希望大家读完文章有很大的收获,也希望大家留言指出我文章中出现的内容,同时也感谢各位看官的三连支持,你们的支持就是我更新的动力!!!


下篇预告——Linux下gcc/g++编译器的使用

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

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

相关文章

骨传导耳机到底好用吗,到底骨传导耳机是不是噱头呢?

随着社会的飞速发展以及科技的不断提升,人们对健康的关注度也逐渐提高起来。而在这种背景下,骨传导耳机以其独特不可替代的优势,吸引了一大群骨传导爱好者的目光。 那么骨传导耳机是不是噱头呢?其实这种耳机不仅不会堵塞耳道&…

什么是接口自动化测试?接口自动化测试的目的是什么?

1、什么是接口测试 接口测试是对系统或组件之间的接口的测试。主要用于检测外部系统与系统间以及内部各个子系统间的交互点。测试重点是检查数据交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 2、接口测试的目的 1> 尽早介入软件测试流程&#…

【23真题】邮电之首!扩招15倍!专业课难度骤降!

今天分享的是23年北京邮电大学804的信号与系统试题及解析。 本套试卷难度分析:北邮804在22年只招生6人,23年拟招生87人,扩招近15倍!22年北京邮电大学804考研真题,我也发布过,若有需要,戳这里自…

墨者学院 身份认证失效漏洞实战

一、题目信息 二、漏洞利用 1.通过抓包,抓取test登录信息 发现card_id号以及一些回显的账号密码信息 搜索了一下这个id,发现是测试的头像 2.修改id号 分析请求包的逻辑,发现是请求了头像资源后再去请求头像id的详情包,所以根据…

怎么监控钉钉聊天记录内容(监控钉钉聊天记录的3种形式)

企业沟通工具的普及,越来越多的企业开始使用钉钉作为内部沟通工具。然而,对于企业管理者来说,如何监控钉钉聊天记录内容成为了一个重要的问题。本文将介绍几种方法,帮助企业管理者实现监控钉钉聊天记录内容的目的。 一、钉钉自带功…

【多线程面试题十七】、如果不使用synchronized和Lock,如何保证线程安全?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:如果不使用synchronized…

GZ035 5G组网与运维赛题第4套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第4套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子…

MATLAB | 万圣节来画个简单的可爱鬼叭!

万圣节要到啦一起来画个可爱鬼吧~ 代码比较的短: 完整代码 figure(Units,normalized,Position,[.2,.1,.52,.72]); axgca;hold on;axis off; ax.DataAspectRatio[1,1,1]; ax.YDirreverse; ax.XLim[0,100]; ax.YLim[0,100]; [X,Y]meshgrid(linspace(0,1,200)); Zsq…

提高小程序SEO 排名,9招优化技巧!

在当今移动互联网时代,小程序已经成为企业必不可少的一种营销手段,而如何让用户能够更容易地找到自己的小程序,就需要进行SEO优化,提升小程序的排名,本文将 为大家介绍9个小程序SEO优化技巧,帮助您的小程序…

贝叶斯神经网络用于学习曲线的概率预测【ICLR 2017】

论文下载地址:Excellent-Paper-For-Daily-Reading/hyper-parameters at main 类别:超参数 时间:2023/10/30 摘要 面对不同的神经网络结构、超参数和训练协议,通常需要检查生成学习曲线,以快速终止超参数设置不佳的…

c++ pcl 选取点云某一点反馈XYZ坐标的代码

看了看以前的代码,有一小段代码很有意思,是关于pcl点云处理的。 如有帮助,点赞收藏关注!!! 读取点云数据,想可视化点云数据,并根据选择,实时显示点云的空间坐标数值。 接…

分享大数据分析师前景怎么样? 从事行业有哪些?

数据分析师发展前景和待遇怎么样?有前途吗?好找工作吗?根据某招聘网数据显示,当前市场表现为: 2023年较2022年同期对比增长160%,2022年较2021年下降了46%。 工资待遇:2023年较2022年下降了2…

使用 kube-downscaler 降低Kubernetes集群成本

新钛云服已累计为您分享772篇技术干货 介绍 Kube-downscaler 是一款开源工具,允许用户定义 Kubernetes 中 pod 资源自动缩减的时间。这有助于通过减少非高峰时段的资源使用量来降低基础设施成本。 在本文中,我们将详细介绍 kube-downscaler 的功能、安装…

《算法通关村—队列基本特征和实现问题解析》

《算法通关村—队列基本特征和实现问题解析》 队列的基本特征 队列(Queue)是一种常见的数据结构,具有以下基本特征: 先进先出(FIFO):队列中的元素按照它们被添加到队列的顺序排列,…

UIAlertController 修改 title 或 message 样式相关

UIAlertController 文字换行后默认对齐方式为居中,若想调整其相关样式属性可以借鉴如下方式进行修改,具体实现方式 code 如下: NSString *msg "1、注销≠退出登录;\n注销:对不再使用的账号进行清空移除;注销后,App中数据将全部丢失,不可再找回;\n2、注销后,与账号相关的…

第三方软件测评选择远程测试好还是现场测试好?

如今许多软件企业在软件开发过程完成之后,会将软件测试工作交由第三方软件测评机构来进行,那么做第三方软件测试时,远程测试和现场测试哪个更好呢?我想这是许多软件企业都十分关注的问题,今天卓码软件测评小编将对以上问题作出简…

Linux rm命令:删除文件或目录

当 Linux 系统使用很长时间之后,可能会有一些已经没用的文件(即垃圾),这些文件不但会消耗宝贵的硬盘资源,还是降低系统的运行效率,因此需要及时地清理。 rm 是强大的删除命令,它可以永久性地删除…

天软特色因子看板(2023.10 第13期)

该因子看板跟踪天软特色因子A05005(近一月单笔流涌金额占比(%),该因子为近一个月单笔流通金额占比因,用以刻画股票在收盘时,主力资金在总交易金额中所占的比重。 今日为该因子跟踪第11期,跟踪其在SW801150 (申万医药生物) 中的表现…

如何通过会员营销数字化推动精准营销与用户忠诚度培养?

营销策略的制定和实施对于企业的成功至关重要,而会员数字化营销系统将通过用户画像、会员标签等重要功能,推动企业提高用户忠诚度培养。目前市面上有哪些热门的会员营销功能? 一、用户画像:让营销更精准 用户画像是一种通过收集和…

Hadoop学习总结(搭建Hadoop集群(伪分布式模式))

如果前面有搭建过Hadoop集群完全分布式模式,现在搭建Hadoop伪分布式模式可以选择直接克隆完全分布式模式中的主节点(hadoop001)。以下是在搭建过完全分布式模式下的Hadoop集群的情况进行 伪分布式模式下的Hadoop功能与完全分布式模式下的Hadoop功能相同。 一、克隆…