Linux环境开发工具之vim

前言

上一期我们已经介绍了软件包管理器yum, 已经可以在linux上查找、安装、卸载软件了,本期我们来介绍一下文本编辑器vim。

本期内容介绍

什么是vim

vim的常见的模式以及切换

vim命令模式常见的操作

vim底行模式常见的操作

解决普通用户无法执行sudo问题

vim配置

一、什么是vim?

vim是一款多模式的文本编辑器。

多模式是指他有不同的操作模式,各个模式的功能是不是一样的。我知道的他好像有12种模式!

二、vim常见的模式

vim的常见模式有三种,分别是:命令模式(正常、普通模式)、插入模式底行模式

命令模式

默认一开始进入vim(在命令行输入:vim filename)的那个模式(左下角有"normal一般的"提示)!

作用:允许使用者通过相关的指令,来进行文本的编辑和控制。例如光标移动等

在bash输入vim filename即可进入,此时就是命令模式!

插入模式

通过在命令模式按i\a\o等进入的那个模式(左下角有"insert插入"的提示)!

作用:进行对文本的编辑!

底行模式

在命令模式按shift + ; = :进入的模式(有"command命令"的提示)进入后下面会有 : 和光标等你操作!

作用:文本保存、退出,与shell交互等

三种模式的切换

命令模式切换到插入模式

在命令模式输入: i\o\a

i\o\a的区别:

i进入后光标在上一次的位置(第一次进入在文本内容的第一个字符处)!

o进入后会光标在上一次的行换行到下一行(第一次o进入默认第一行换到第二行!)!

a进入后光标会转移到上一个字符的下一个位置(第一次进入在文本内容的第一个字符处

i进入:

o进入:

a进入:

插入模式切换到命令行模式

直接在插入模式按Esc即可退出到命令模式

命令行模式切换到底行模式

直接在命令行模式按 shift + ; 到底行模式

底行模式切换到命令行模式

直接在底行模式按Esc即可退出到命令模式

底行模式是无法直接进入插入模式的!同样,插入模式也是无法直接进入底行模式的!要想在底行模式进入插入模式,可以先底行到命令,在命令到插入!插入到底行则反之!

三、vim命令模式常见的操作

光标移动

将光标定位到当前行的结尾: shift + 4 = $ 

将光标定位到当前行的开始: shift + 6 = ^

将光标定位到整个文件的最开头:gg

将光标定位到整个文件的最后一行:shift + g = G

将光标定位到任意行: n + shift + g = nG

上、下、左、右 :k、j、h、l 这几个也都支持n(键盘的上下左右也是支持的)

光标以照单词为单位进行后移: w

光标按照单词为单位进行前移: b

光标移动到下一个单词的结尾:e

复制

复制当前行: yy  

连续复制n 行:n + yy

粘贴到当前行的下一行:p

当前行的下一行开始粘贴n行:n + p

撤销:u

对指令撤销(对撤销撤销): ctrl + r

剪切/删除:dd

剪切/删除n行 :n + dd

删除

删除光标后的一个字符(一行内):x

删除光标后的n个字符(一行内):n + x

删除光标前的一个字符(一行内):shift + x

删除光标前的n个字符(一行内):n + shift + x

删除当前行:dd

替换

大小写转换:shift + ` = ~

替换光标所在的字符:r 

替换光标所在的后n个:n + r 

替换模式替换(替换光标所到之处的字符,Esc结束到命令模式):shift + r = R 

注释和去注释

注释:ctrl + v,hjkl, shift + i, //, Esc*2

去注释:ctrl + v, hjkl, //, d(注意在选择时仅仅选择注释//即可)

四、vim底行模式常见的操作

列出行号:set nu

跳转到文件中的某一行:n

搜索字符:/ + 字符 或 ? + 字符

保存:w

退出:q

保存并退出:wq(一般建议在退出vim时wq

强制:!

不退出vim与shell交互:!command

分屏(多文件操作):vs filename

五、解决普通用户无法执行sudo问题

我们以前在权限的时候介绍过,在你执行某个是需要root权限,但是你又是普通用户;你又想让你的指令以root的身份执行时,此时可以利用sudo指令对你的指令赞提权!此时输入你的密码就可以以root的身份执行指令了!但问题我们前面也说了,如果每个普通用户都可以随意sudo的话那岂不是没有必要存在root了,而且也很危险!所以linux默认一般的用户是无法执行sudo的,普通用户要想执行sudo就必须让root把你添加到以前的白名单中!他就是:/etc/sudoers

ls /etc/sudoers/

我们现在介绍了vim可以利用vim让root把你把自己的账户添加到这个文件中(自己没有权限无法添加)

一进去是这样的:

可以在底行模式调出行号:

在100行左右找到这个:

然后: yy 在 p一下, i 进入插入模式,只需要把root换成你普通用户的名字即可!

底行退出vim时此时需要 wq!

ok,这样cp这个普通用户就可以以root的身份执行指令了!!!

六、vim配置

在/etc/ 目录下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
而在每个用户的家目录下,都可以自己建立私有的配置文件,命名为:“ .vimrc ”,如果不存在自己创建。 配置Vim就是对这个文件的内容进行修改!!!

简单的vim配置

 set nu           "在左侧行号 set tabstop      "tab 长度设置为 4set autoindent   "自动缩进set cindent "设置c语言自动对其  syntax on  "设置语法高亮set shiftwidth=4 "设置缩进的空格数为4//....

这有好多的设置,可以上网查询更多的!如果嫌麻烦私信我教你一键生成~!

OK,好兄弟本期分享就到这里,我们下期再见!

结束语:

你我终将上岸,阳光万里!

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

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

相关文章

鸿蒙开发实战:【文件管理】

介绍 本示例主要展示了文件管理相关的功能,使用[ohos.multimedia.medialibrary]、[ohos.filemanagement.userFileManager] 、[ohos.fileio] 、[ohos.file.fs]、[ohos.app.ability.contextConstant] 等接口,实现了增添文件、删除文件、查找指定类型文件…

WRF高精度气象模拟技术及在地学领域中的应用

随着生态文明建设和“碳中和”战略的持续推进,我国及全球气候变化及应对是政府、科学界及商业界关注的焦点。气候是多个领域(生态、水资源、风资源及碳中和等问题)的主要驱动因素,合理认知气候变化有利于解释生态环境变化机理及过…

(56)删除每行中的最大值

文章目录 1. 每日一言2. 题目3. 解题思路4. 代码5. 结语 1. 每日一言 抱怨过去发生的一切,就等于丧失了力量,白白浪费了往事要带给我们的成长。 2. 题目 题目链接:删除每行中的最大值 给你一个 m x n 大小的矩阵 grid ,由若干正…

【动态规划】算法例题

目录 一维动态规划: 137. 爬楼梯 ① 138. 打家劫舍 ② 139. 单词拆分 ② 140. 零钱兑换 ② 141. 最长递增子序列 ② 多维动态规划: 142. 三角形最小路径和 ② 143. 最小路径和 ② 144. 不同路径 II ② 145. 最长回文子串 ② 146. 交错字符串…

SpringCloud-深度理解ElasticSearch

一、Elasticsearch概述 1、Elasticsearch介绍 Elasticsearch(简称ES)是一个开源的分布式搜索和分析引擎,构建在Apache Lucene基础上。它提供了一个强大而灵活的工具,用于全文搜索、结构化搜索、分析以及数据可视化。ES最初设计用…

​selenium+python做web端自动化测试框架与实例详解教程

最近受到万点暴击,由于公司业务出现问题,工作任务没那么繁重,有时间摸索seleniumpython自动化测试,结合网上查到的资料自己编写出适合web自动化测试的框架,由于本人也是刚刚开始学习python,这套自动化框架目…

【NLP笔记】RNN总结

文章目录 经典RNN单向RNN双向RNNDeep RNNRNN特性总结 变体RNNLSTMGRU 参考及转载内容: 循环神经网络(RNN)深度学习05-RNN循环神经网络完全理解RNN(循环神经网络) 传统的CNN(Covolutional Neural Network&am…

Redis6.0多线程的疑惑解答

1.Redis6.0之前的版本真的是单线程吗? Redis在处理客户端的请求是,包括获取(socket读)、解析、执行、内容返回(socket 写)等都有一个 顺序串行的主线程处理,这就是所谓的"单线程"。但如果严格来讲并不是单线程,除了主线…

浏览量这么低,还要不要继续坚持?

哈喽,你好啊,我是雷工! 曾经在一个群里聊天,有群友看到我两位数的浏览量,说到:浏览量这么低还坚持什么? 浏览量低是事实,大多数是十几二十的,上百的都是少数&#xff0c…

python社区垃圾分类管理平台的设计与实现flask-django-php-nodejs

近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,社区垃圾分类管理平台利用计算机网络实现信息化管理,使整个社区垃圾分类管理的发展和服务水平有显著提升。 语言&#xf…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(一)

概览 Swift 语言给我们的印象是:简洁、现代化和可以“心安神泰”的完全信赖。不过,在一些特殊情况下我们唯有进入 Swift 底层的动态世界方能真正地“随遇而安”。 保安局“刘局长”曾语重心长的教导过我们:“非常时期,用非常方法…

有了std::thread,为什么还需要引入std::jthread?

C进阶专栏:http://t.csdnimg.cn/HGkeZ 目录 1.前言 2.std::is_invocable_v 3.std::jthread 3.1.构造函数 3.2.std::jthread无需join/detach使用实例 3.3.std::jthread处理外部请求中断实 3.4.处理中断请求示例代码 4.特性 5.总结 1.前言 C11以来提供了C原…

Redis实现高可用方案

文章目录 前言一、主从模式1.1 复制流程1.2 优缺点 二、哨兵模式2.1 介绍2.2 哨兵的工作模式 三、集群模式3.1 Cluster集群节点的通讯3.2 Hash Slot插槽算法3.3 Redis Cluster集群3.4 故障转移 前言 如果单机部署Redis服务的话,一旦Reids宕机,那么整个服…

英伟达 V100、A100/800、H100/800 GPU 对比

近期,不论是国外的 ChatGPT,还是国内诸多的大模型,让 AIGC 的市场一片爆火。而在 AIGC 的种种智能表现背后,均来自于堪称天文数字的算力支持。以 ChatGPT 为例,据微软高管透露,为 ChatGPT 提供算力支持的 A…

centos 环境部署

一、安装redis 1. 升级 GCC 最直接的解决方式是升级你的 GCC 编译器到支持 C11 标准的版本。CentOS 7 默认的 GCC 版本较旧,可能不支持 _Atomic。你可以通过以下步骤升级 GCC: 启用 CentOS 的 Software Collections (SCL) 仓库,该仓库提供了…

王老吉药业开拓数字经济“新蓝海”,成立数字经济研究所,科技赋能新品压片糖

3月12日,广州王老吉药业股份有限公司(以下简称“王老吉药业”)召开第十一届312感恩活动新闻发布会,宣告王老吉数字经济研究所成立,并发布王老吉压片糖新品。一系列重要重要举措,无一不标志着王老吉药业正以…

Java SE入门及基础(44)

目录 I / O流(上) 1. 什么是I / O流 过程分析 I / O的来源 Java 中的 I / O流 2. 字节流 OutputStream 常用方法 文件输出流 FileOutputStream 构造方法 示例 InputStream 常用方法 文件输入流 FileInputStream 构造方法 示例 综合练习 字节流应用场景 Java SE文…

自动化测试报告生成(Allure)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 之前尝试使用过testNG自带的测试报告、优化过reportNG的测试报告…

算法·动态规划Dynamic Programming

很多人听到动态规划或者什么dp数组了,或者是做到一道关于动态规划的题目时,就会有一种他很难且不好解决的恐惧心理,但是如果我们从基础的题目开始深入挖掘动规思想,在后边遇到动态规划的难题时就迎难而解了。  其实不然&#xff…

linux:线程互斥

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、线程互斥问题解释互斥量的接口 二、加锁的原理三、 死锁死锁四个必要条件避免死锁 总结 前言 本文是对于线程互斥的知识总结 一、线程互斥 问题 我们先看下面…