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.rhkb.cn/news/243608.html

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

相关文章

超优秀的三维模型轻量化、格式转换、可视化部署平台!

1、基于 HTML5 和 WebGL 技术,可在主流浏览器上进行快速浏览和调试,支持PC端和移动端 2、自主研发 AMRT 展示框架和9大核心技术,支持3D模型全网多端流畅展示与交互 3、提供格式转换、减面展UV、烘焙等多项单模型和倾斜摄影模型轻量化服务 4、…

uniapp 链接跳转(内部跳转和外部跳转)

使用uniapp的超链接跳转在微信小程序中会出现复制链接在外面在跳转如图 这样的客户体验感不好 我们需要可以直接跳转查看 思路:webview 1.先在自己uniapp项目pages.json建一个内部页面webview.vue 在page.json里面指向我们跳转的这个内部路径(这个创建页面会自动…

Unity中URP下的SimpleLit的 BlinnPhong高光反射计算

文章目录 前言一、回顾Blinn-Phong光照模型1、Blinn-Phong模型: 二、URP下的SimpleLit的 BlinnPhong1、输入参数2、程序体计算 前言 在上篇文章中,我们分析了 URP下的SimpleLit的 Lambert漫反射计算。 Unity中URP下的SimpleLit的 Lambert漫反射计算 我…

别再因为React、Vue吵了,真的毫无新意!

最近尤大的一个推文引起了不小热议,大概经过是: 有人在推上夸React文档写的好,把可能的坑点都列出来尤看到后批评道:框架应该自己处理这些坑点,而不是把他们暴露给用户 尤大在推上的发言一直比较耿直,这次…

2024-01-22(MongoDB)

1.Mongodb使用的业务场景: 传统的关系型数据库/mysql在“三高”需求以及应对web2.0的网站需求面前,有点力不从心,什么是“三高”需求: a. 对数据库高并发的读写需求 b. 对海量数据的高效率存储和访问需求 c. 对数据库的高可扩…

Redis应用(1)缓存(1.2)------Redis三种缓存问题

一、 缓存穿透: 1、定义: 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。所谓穿透,就是直接透过了redis,直接透到数据库 2、原因:…

Spring Boot3整合Druid(监控功能)

目录 1.前置条件 2.导依赖 错误依赖: 正确依赖: 3.配置 1.前置条件 已经初始化好一个spring boot项目且版本为3X,项目可正常启动。 作者版本为3.2.2最新版 2.导依赖 错误依赖: 这个依赖对于spring boot 3的支持不够&#…

【学习】FPN特征金字塔

论文:Feature Pyramid Networks for Object Detection (CVPR 2016) 参考blog:https://blog.csdn.net/weixin_55073640/article/details/122627966 参考视频讲解:添加链接描述 卷积网络中,深层网络容易响应语义特征&am…

芯驰E3340软件编译以及更新步骤

打开已有工程File->Open Solution: 东南项目:e3340\boards\e3_324_ref_display\proj\jetour-t1n-fl3\sf\SES 编译:build->build sf 增加头文件和宏定义: 编译完成sf后,进行编译bootloader 东南项目:e3340\boa…

k8s-kubectl常用命令

一、基础命令 1.1 get 查询集群所有资源的详细信息,resource包括集群节点、运行的Pod、Deployment、Service等。 1.1.1 查询Pod kubectl get po -o wid 1.1.2 查询所有NameSpace kubectl get namespace 1.1.3 查询NameSpace下Pod kubectl get po --all-namespaces…

机器人学论文——智能施药机器人调研报告

目录 摘 要 Abstract 第一章:引言 1.1研究背景 1.2 研究意义 1.3文章架构 第二章:智能施药机器人发展现状 2.1引言 2.2 大田智能施药机器人发展现状 2.3 果园智能施药机器人发展现状 2.4 设施农业智能施药机器人发展现状 第三章:智能施药机器…

【Spring Boot 3】【Redis】基本数据类型操作

【Spring Boot 3】【Redis】基本数据类型操作 背景介绍开发环境开发步骤及源码工程目录结构 背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工…

http网络编程——在ue5中实现文件传输功能

http网络编程在ue5中实现 需求:在unreal中实现下载功能,输入相关url网址,本地文件夹存入相应文件。 一、代码示例 1.Build.cs需要新增Http模块,样例如下。 PublicDependencyModuleNames.AddRange(new string[] { "Core&q…

【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于Real-ESRGAN的TPU超分模型部署

2023 CCF 大数据与计算智能大赛 《基于TPU平台实现超分辨率重建模型部署》 洋洋很棒 李鹏飞 算法工程师 中国-烟台 2155477673qq.com 团队简介 本人从事工业、互联网场景传统图像算法及深度学习算法开发、部署工作。其中端侧算法开发及部署工作5年时间。 摘要 本文是…

基于java+Springboot操作系统教学交流平台详细设计实现

基于javaSpringboot操作系统教学交流平台详细设计实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统…

C++ 知识列表【图】

举例C的设计模式和智能指针 当谈到 C 的设计模式时,以下是一些常见的设计模式: 工厂模式(Factory Pattern):用于创建对象的模式,隐藏了对象的具体实现细节,只暴露一个公共接口来创建对象。 单例…

C++从小白到初级工程师【个人学习笔记】

目录 1.背景2.基础二维数组概念二维数组定义方式 二维数组数组名称概念例子 函数的分文件编写概念示例 指针指针的基本概念指针变量的定义和使用 空指针和野指针空指针实例野指针实例 const修饰指针概念const修饰指针 --- 常量指针 指针和数组作用示例 指针和函数作用示例 指针…

docker compose安装milvus

下载对应版本的milvus-standalone-docker-compose.yml wget https://github.com/milvus-io/milvus/releases/download/v2.3.5/milvus-standalone-docker-compose.yml重新命令为docker-compose.yml mv milvus-standalone-docker-compose.yml docker-compose.yml启动milvus doc…

sqlmap使用教程(2)-连接目标

目录 连接目标 1.1 设置认证信息 1.2 配置代理 1.3 Tor匿名网络 1.4 检测WAF/IPS 1.5 调整连接选项 1.6 处理连接错误 连接目标 场景1:通过代理网络上网,需要进行相应配置才可以成功访问目标主机 场景2:目标网站需要进行身份认证后才…

VSCode Python Windows环境下创建虚拟环境,隔离每个项目的依赖pip包,推荐使用!

VSCode Python Windows环境下创建虚拟环境 Visual Studio Code 可以隔离不同项目的pip依赖包,防止不同版本的干扰**(推荐使用)** 先在python官网https://www.python.org/downloads/下载需要的python版本(我选择了3.9.8&#xff09…