Linux编辑器---vim

news2024/11/15 13:21:58

       

目录

       

        1、vim的基本概念

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

        2、1命令模式下一些命令(不用进入插入模式)

        3插入模式(Insert mode)

        4末行/底行模式(last line mode)

        4、1底行模式下的一些命令

        5、普通用户无法进行sudo提权的解决方案

        6、vim配置问题

        6、1配置原理

       6、1、1配置文件的位置

        6、1、2常用配置选项,用来测试


        1、vim的基本概念

        vim是一种多模式的编辑器。

        这里我们讲解vim的三种模式(其实有很多模式,这里掌握三种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

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

        命令模式是vim的核心模式。如果忘了自己在哪个模式,无脑ESC回到命令模式。

        命令模式:允许使用者通过命令,来进行文本的编辑控制。

        刚开始打开vim的时候,暂时无法正常输入,这是进入了命令模式。当我们输入i(insert)就进入到了插入模式。(左下角出现insert)。就可以正常编写程序。

        2、1命令模式下一些命令(不用进入插入模式)

        yy:复制当前行。(支持在yy前带数字: n + yy,表示从当前光标开始,连续复制n行)

        p:粘贴到我们当前光标的下一行。(支持在p前面带数字:n + p,表示把指定内容复制粘贴n次。)

        u:撤销

        dd:将光标指定行剪切/删除。,后面带上p就是剪切。(支持前面带数组:n + dd,表示把指定连续n行剪切/删除。)

        x:在光标位置向后删除一个字符(在一行内)。(也支持带n,n+x,向后删除n个字符)

        shift + x = X :在光标位置向前删除一个字符(在一行内)。(也支持带n,n+x,向前删除n个字符)

        r + 字符:对光标指定的位置进行一个字符的替换。(也支持n,n + r + 字符,向后替换n个字符

        shift + r = R :进入替换模式,直接进行文本替换。

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

        shift + ;,即:进入底行模式。

        移动光标:可通过上下左右移动,也可以用 h j k l分别对应左 下 上 右移动:h(左),j(下),k(上),l(右)也可以带n

        G:移动到文章的最后

        nG:移动到文章的第n行

        gg:进入到文本开始

        $ :移动到光标所在行的“行尾”

        ^:移动到光标所在行的“行首”

        w:光标跳到下个字的开头,(以单词为单位,往后移)

        b:光标回到上个字的开头,(以单词为单位,往前移)

        e:光标跳到下个字的字尾

        nl:光标移到该行的第n个位置,如:5l,56l

        ctrl + r:取消撤销动作。(对撤销进行撤销)

        shift + ` = ~:大小写转换。

        shift + zz = ZZ:保存并退出。(不建议)(如果ctrl + z会中断vim,并形成临时文件。如果断网了,也会形成临时文件。临时文件是个隐藏文件。有了临时文件:进入vim时,R可恢复文件,D可删除临时文件。临时文件其实是vim在保护文件

        批量化注释:先ctrl+v进入visual block模式,然后hjkl上下选择想要注释的行,再shift + i = I,再 // ,再ESC按一次或两次。

        消除注释:先ctrl+v进入visual block模式,然后hjkl上下选择想要删除注释的行,一定要仅包含//,再d

        ctrl+b:屏幕往“后”移动一页

        ctrl+f:屏幕往“前”移动一页

        ctrl+u:屏幕往“后”移动半页

        ctrl+d:屏幕往“前”移动半页

        

        3插入模式(Insert mode)

         插入模式:其实就是我们的编辑模式

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

        4末行/底行模式(last line mode)

        底行模式:用来进行让vim进行包括但不限于shell进行交互的。什么保存,退出,什么的。

        在命令模式下shift+:(输入冒号) 即可进入底行模式模式。输入wq就可以退出了。

        如果刚进入vim的时候后面没有接文件,想要退出,就在命令模式下 :+ q!即可。

        4、1底行模式下的一些命令

        w表示保存当前文件

        wq表示存盘并退出vim

        q:退出

       :强制

        wq!:保存并强制退出

        q!表示不存盘强制退出

        set nu:标出行数

        set nonu:不标出行数

        /关键字:做搜索

        !command:不退出vim,可以进行shell命令的执行。最常用的就是查看常用函数使用方式,即man手册。

        vs filename:分屏,多文件操作。(ctrl ww,切屏)(多屏之间支持跳转:即在这屏里面复制的东西,可以粘贴到另一屏)(其实也是vim了一个文件,vim创建的文件如果不保存,退出之后不会创建。只有保存后才会创建出来

        5、普通用户无法进行sudo提权的解决方案

        不能进行sudo提权的原因是:普通用户并没有在sudoers白名单中。

        1、首先转换为root用户

        2、vim /etc/sudoers

        3、在100行左右,和root的格式类似的添加一行,将新的一行的root位置处改为普通用户名

        4、wq!强制保存退出。

        5、提权成功。

        6、vim配置问题

        6、1配置原理

        vim不是简单直接执行可执行程序就行,也会读取若干配置文件,其中最典型的配置文件叫 .vimrc

       6、1、1配置文件的位置


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

        6、1、2常用配置选项,用来测试


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

         

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

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

相关文章

计算机找不到msvcr100.dll无法继续执行的5种解决方法,实测有效

“msvcr100.dll文件丢失这一问题,时常给计算机用户带来诸多困扰与不便。作为Microsoft Visual C运行库中的一个关键动态链接库文件,msvcr100.dll在系统和应用程序的正常运行中扮演着不可或缺的角色。一旦该文件发生丢失或损坏,可能会引发一系…

基于easyexcel实现导出excel,包括导出图片以及导出下拉框

基于easyexcel实现导出excel&#xff0c;包括导出图片以及导出下拉框 1.最基本的导出excel 1.引入maven <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version> </dependen…

MySQL复合查询解析

&#x1f388;行百里者半九十&#x1f388; &#x1f388;目录&#x1f388; 概念多表查询自连接子查询单行子查询多行子查询in关键字all关键字any关键字 多列子查询在from中使用子查询合并查询unionunion all 总结 概念 之前我们很多的查询都只是对于单表进行查询&#xff0c…

DMA技术在STM32中优化UART、SPI和I2C通信性能的研究与实现

DMA&#xff08;Direct Memory Access&#xff0c;直接存储器访问&#xff09;技术可以在STM32微控制器上优化UART、SPI和I2C等通信性能。DMA可以实现数据的高速传输&#xff0c;减轻CPU的负担&#xff0c;提高系统性能。在本篇文章中&#xff0c;我将探讨DMA技术在STM32中优化…

【C语言基础篇】结构控制(中)循环结构

文章目录 一、循环结构 1. while语句 2. for语句 3. do while语句 4. 循环结构总结 C语⾔是结构化的程序设计语⾔&#xff0c;这⾥的结构指的是顺序结构、选择结构、循环结构。也就是说在C语言所有的代码都是这三种结构。 本篇文章将会着重讲解循环结构 顺序结构和选…

数据结构图算法

算法就要多练,我在国庆节放假的时间编写了图的算法题,写完让我受益匪浅,希望可以帮助到大家. 文章目录 前言 一、图的数据结构 1.图的邻接表数据结构定义 2.图的邻接矩阵的存储形式 二、邻接表建立图代码 三、邻接表删除边(基本操作考试不考) 四、邻接表删除顶点及销毁整…

【MySQL进阶】索引

索引机制 索引介绍 MySQL 官方对索引的定义为&#xff1a;索引&#xff08;index&#xff09;是帮助 MySQL 高效获取数据的一种数据结构&#xff0c;**本质是排好序的快速查找数据结构。**在表数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这…

用el-image-viewer实现全局预览图片

背景 在后台管理系统中&#xff0c;一些预览图片的场景&#xff0c;通常都是使用 el-image-viewer 去实现&#xff0c;但是如果多个地方都需要预览图片&#xff0c;又要重复的去写 el-image-viewer 以及一些重复的和预览相关的代码。 可以把预览图片的组件放在根文件&#x…

洛谷P2615 [NOIP2015 提高组] 神奇的幻方(C语言)

这普及题太水了&#xff0c;你按照他给的条件来列判断语句。 按题目一步一步模拟 首先将1写在第一行的中间。 若K-1在第一行但不在最后一列&#xff0c;则将K填在最后一行&#xff0c;K-1所在列的右一列&#xff1b; 若K-1在最后一列但不在第一行&#xff0c;则将K填在第一…

深入解析与实践:Ajax异步请求在Web开发中的应用指南

一、概述 1、定义 ​ Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;异步请求是现代Web开发中不可或缺的技术组件&#xff0c;它允许网页在不刷新整个页面的情况下从服务器获取并更新数据&#xff0c;从而实现动态、流畅的交互体验。 2、异步和同步 浏览器访…

【NVIDIA】Jetson Orin Nano系列:安装 Qt6、firefox、jtop、flameshot

1、使用命令安装 sudo apt install qtcreator sudo apt install qt6-* sudo apt install libqt6* sudo apt install qml-qt6 sudo apt install qmlscene-qt6 sudo apt install assistant-qt6 sudo apt install designer-qt62、启动 qtcreator 3、常用工具安装 sudo apt in…

计算机找不到msvcp120.dll的修复方法,总结五种可靠的方法

在计算机使用过程中&#xff0c;遭遇“找不到msvcp120.dll”这一问题的困扰是许多用户都可能遇到的情况。这一特定的系统文件msvcp120.dll&#xff0c;作为Microsoft Visual C Redistributable Package的重要组成部分&#xff0c;对于运行某些应用程序至关重要。当系统提示无法…

如何在 Element Plus 中使用自定义 icon 组件 (非组件库内置icon)

先说原理就是将 svg 文件以 vue 组件文件的方式使用 需求&#xff1a;我想要在 Element Plus 得评分组件中使用自定义得图标。 el-rate v-model"value1" /> 组件本身是支持自定义图标的&#xff0c;但是教程中只说明了如何使用 element-plus/icons-vue 图标库内置…

学习Spring的第八天

先对自定义类使用MyComponet的注解&#xff0c;在设置这个MyComponet的的属性(一个 interface接口)&#xff0c;然后&#xff0c;扫描(BaseClassScanUtils.java执行,这文件不重要)当前包下是否有这个注解的类&#xff0c;再用MyComponentBeanFactoryPostProcessor.java(后工厂…

蓝桥杯真题(Python)每日练Day1

说明&#xff1a;在CSP认证的基础上&#xff08;可以看看本人CSP打卡系列的博客&#xff09;备赛2024蓝桥杯&#xff08;Python&#xff09;&#xff0c;本人专业&#xff1a;大数据与数据科学 因此对python要求熟练掌握&#xff0c;通过练习蓝桥杯既能熟悉语法又能锻炼算法和思…

vulnhub-dc2靶场

DC2 配置环境vmware17 nat网络配置 下载地址:DC and Five86 Series Challenges - DC-1 &#xff08;似乎从2024/1/18左右找不到这个资源了&#xff09; 攻击机kali与其在同一网段下 ip:192.168.52.130 信息收集 arp-scan -l #内网探测&#xff0c;扫描目标ip发现目标ip1…

内网穿透Neutrino-Proxy, 中微子代理

中微子代理&#xff08;neutrino-proxy&#xff09;是一个基于netty的、开源的java内网穿透项目。技术栈&#xff1a;Solon、MybatisPlus、Netty遵循MIT许可&#xff0c;因此您可以对它进行复制、修改、传播并用于任何个人或商业行为。官网地址1&#xff1a;https://neutrino-p…

鸿蒙开发环境配置-Windows

背景 入局鸿蒙开发&#xff0c;发现在 Windows 下面配置安装相关环境并没有像 Mac 一样简单&#xff0c;过程中遇到了一些问题记录一下。 Devceo Studio 下载安装 目前鸿蒙的 IDE 最新版是 4.0&#xff0c;通过这个连接可以下载&#xff0c;鸿蒙4.0下载连接。选择符合我们电…

关于前端面试中forEach方法的灵魂7问?

目录 前言 一、forEach方法支持处理异步函数吗&#xff1f; 二、forEach方法在循环过程中能中断吗&#xff1f; 三、forEach 在删除自己的元素后能重置索引吗&#xff1f; 四、forEach 的性能相比for循环哪个好&#xff1f; 五、使用 forEach 会不会改变原来的数组&#…

智能驾驶新浪潮:SSD与UFS存储技术如何破浪前行?-UFS篇

如果说SSD是赛道上的超级跑车&#xff0c;那UFS更像是专为智能汽车定制的高性能轻量化赛车。UFS采用串行接口技术&#xff0c;像是闪电侠一样&#xff0c;将数据传输的速度推向新高&#xff0c;大幅缩短了系统启动时间和应用程序加载时间&#xff0c;这对追求即时反应的ADAS系统…