Linux编辑器---vim

       

目录

       

        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.mzph.cn/news/635269.shtml

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

相关文章

基于 Redis 实现高性能、低延迟的延时消息的方案演进

1、前言 随着互联网的发展,越来越多的业务场景需要使用延迟队列。比如: 任务调度:延时队列可以用于任务调度,将需要在未来某个特定时刻执行的任务放入队列中。消息延迟处理: 延时队列可以用于消息系统,其中一些消息需要在一段时间后才能被消…

RK3568平台 HDMI交换机芯片PI3HDX231

一.简介 HDMI交换机芯片是一款可以同时输入几路HDMI的芯片,通过设计交换机芯片的寄存器值,已选择 其中一路作为输出。 I3HDX231是3:1 HDMI线性ReDriver交换机,支持每通道6 Gbps的数据速率,4096 x 2160像素分辨率,彩色…

Python项目——搞怪小程序

1、介绍 使用python编写一个小程序,回答你是猪吗。 点击“是”提交,弹窗并退出。 点击“不是”提交,等待5秒,重新选择。 并且隐藏了关闭按钮。 2、实现 新建一个项目。 2.1、设计UI 使用Qt designer设计一个UI界面&#xff0c…

深入解析JavaScript中箭头函数的用法

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 箭头函数(Arrow function)是JavaScript ES6中引入的一大特性。箭头函…

739.每日温度 496.下一个更大元素 I

739.每日温度 496.下一个更大元素 I 739.每日温度 力扣题目链接(opens new window) 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二)

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二) 在 Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin-CSDN博客 基础上&…

操作系统——进程管理篇

操作系统——进程管理篇(王道23年版) 2.1_1_进程的概念、组成、特征 1.进程的概念 程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合 进程:是动态的,是程序的一次执行过…

使用 Swift 代码优化项目编译速度

引言 软件的性能是评价一个软件质量的重要指标,尤其在今天这个时代,性能已成为大型项目不可或缺的考虑因素之一。对于用户量极大的软件,如网银系统、在线购物商城等,更是必须保证其高效稳定的性能。在这种背景下,优化…

学习笔记应用——创建用户账户并且拥有自己的信息

一、创建用户账户 将建立一个用户注册和身份验证系统,让用户能够注册账户,进而登录和注销。我们将创建一个新的应用程序,其中包含与处理用户账户相关的所有功能。 创建user 我们首先使用命令 startapp 来创建一个名为 users 的应用程序&…

大语言模型无代码构建知识图谱概述

2023年3月15日,ChatGPT4.0的横空出世,将人们对大语言模型的关注推到了风口浪尖。由于其在智能问答、翻译以及文本生成等工作任务上的卓越表现,业界一度出现了不再需要发展知识图谱相关技术的观点,知识图谱相关概念严重受挫。无可置…

如何有效防爬虫?一文讲解反爬虫策略

企业拥抱数字化技术的过程中,网络犯罪分子的“战术”也更难以觉察,并且这些攻击越来越自动化和复杂,也更加难以觉察。在众多攻击手段中,网络爬虫是企业面临的主要安全挑战。恶意爬虫活动可能导致数据滥用、盗窃商业机密等问题&…

Spring Cloud可视化智慧工地大数据云平台源码(人、机、料、法、环五大维度)

智慧工地平台是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三…

5、交叉验证

交叉验证 在本教程中,您将学习如何使用交叉验证来更好地衡量模型的性能。 本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2 提取码:uDzP 文章目录 1、简介2、什么是交叉验证3、什么时候应该使用交叉验证?4、举例1)加载数据集2)创建管道3)获取MAE…

【轮式平衡机器人】——软硬件配置/准备

本系列以轮式平衡移动机器人为例,将使用基于模型设计(MBD)方法进行介绍,涉及基础硬件、软件、控制算法等多方面内容,结合MATLAB/Simulink的强大仿真能力和代码生成能力辅助设计!在此过程中可以系统了解开发…

禅道下载安装

文章目录 一、禅道官网二、安装三、管理员操作四、产品操作五、项目经理操作六、测试操作七、泳道图 一、禅道官网 官网:http://www.zentao.net/ 自己用的话是:开源版 然后一直往下滑,找到windows,此处是最新版本 二、安装 本作者就用以前…

【好文翻译】JavaScript 中的 realm 是什么?

本文由体验技术团队黄琦同学翻译。 原文链接: https://weizmangal.com/2022/10/28/what-is-a-realm-in-js/ github仓库地址: https://github.com/weizman/weizman.github.io/blob/gh-pages/_posts/2020-02-02-what-is-a-realm-in-js.md 前言 作为我对…

力扣36. 有效的数独

模拟 思路: 使用三个哈希表来存储数字个数 row[r][val] 用于存储第 r 行 val 1 的个数;column[c][val] 用于存储第 c 列 val 1 的个数; subboxes[i][j][val] 用于存储第 i 行、第 j 列个小九宫格 val 1 的个数,其中&#xff1…

rust获取本地外网ip地址的方法

大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info的使用。 get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址&a…

新品发布 | 多通道总线记录仪TLog1004,是你期待的吗?

新品发布 2024年1月12日,同星智能又发布一款多通道 CAN (FD)总线、LIN 总线接口logger设备,此款产品在TLog1002基础上进行了升级,同时内置 3 路数字输入和 2 路数字输出,便于多种信号测量和系统集成。可以满…

Dubbo源码解析第一期:如何使用Netty4构建RPC

一、背景 早期学习和使用Dubbo的时候(那时候Dubbo还没成为Apache顶级项目),写过一些源码解读,但随着Dubbo发生了翻天覆地的变化,那些文章早已过时,所以现在计划针对最新的Apache Dubbo源码来进行“阅读理解…