当前位置: 首页 > news >正文

[Linux打怪升级之路]-vim编辑器(看就能马上操作噢)

前言

作者小蜗牛向前冲

名言我可以接受失败,但我不能接受放弃

  如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。

目录

一、vim的基本概念

 二、vim常用的三种模式

1、命令模式

2、插入模式 

3 、底行模式

三、vim的配置


 本期博客学习内容:vim的基本概念,vIm的三种基本模式,vim是如何进行配置的。

一、vim的基本概念

vim简单点来是就是linux下的一个功能强大点的编辑器,就好比window下的记事本,但他的功能可比记事本强大多了,至于为什么强大大家用了就知道了。

下面我们来看一下百度下vim的概念:

 在这篇博客中,我主要为大家讲怎么在vim下配合gcc编写代码,其实对于vim来说,他的模式是有需多种模式,但在下面的介绍中,我将为大家介绍最常用的三种模式。下面先学习如何打开vIm,其实非常简单,只要输入一行命令就可以。

 二、vim常用的三种模式

虽然vim有许多种模式,但是我们为了能够快速上手配合gcc进行代码的编写,先学习命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)。下面重点学习这些模式下的功能。当我们第一次进入vim编辑器时是默认进入命令模式,下面可以按不同指令进行模式的切换如下图:

这里要注意:不可以从插入模式直接转换位底行模式,也就是说必须回到命令模式,才能完成对其他模式的切换。

1、命令模式

在命令模式下,我们能通过键盘上的快捷进行对,控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

这里主要为大家介绍快捷建的功能,至于要更好的掌握还自己多多练习。

光标定位:

  • shift + 4 = $                  光标移动到这一行的最右边
  • shift + 6 =  ^                 光标移动到这一行的最左边
  • shift +  g = G                光标移动到最底部
  • n + shift +  g = G          光标跳转到指定行,n代表行号
  • gg                                 光标移动到最顶部
  • w                                   光标按照单词后移动
  • b                                   光标按照单词前移动

 光标移动:

  • h:光标向左移动一个单位
  • j: 光标向下移动一个单位
  • k:光标向上移动一个单位
  • l: 光标向右移动一个单位

文本复制相关:

 定位的对象是光标所在行:

  • yy:复制(nyy:支持多行复制)
  • p:粘贴(np)
  • dd:删除光标所在行(ndd)
  • ndd + d: 剪切操作

 文本编辑:

  • shift + ~ :                文本大小写切换
  • shift + r = R:              批量化替换
  • r:                               替换光标所在字符(nr)
  • x和X(shift + x):       行内删除
  • u:                               撤销操作
  • ctrl + r:                     取消u操作

2、插入模式 

对于这个模式,我们可以理解为就是用来编辑文件,因为在其他模式下是不能对编辑器输入信息的,也就是要编写代码只能在这个模式下进行,下面在这个模式下编写我们的第一个代码:

命令选择: 

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

3 、底行模式

底行模式主要是进行在编辑器进行命令操作,也就是说我们能在linux的进行的命令,大部分都是可以执行的,这里将不过多说,当我们要退出编辑器,我们就要在这里输入指令,确定是否要保持文件中的内容:

  •   在末行模式下,键入:wq 保存并退出编辑,就算没有修改也会写入,并修改文件时间属性
  •     在末行模式下,键入:q! 强制退出编辑,但并不保存当前修改
  •     在末行模式下,键入:x! 保存并退出编辑,仅当文件有修改时会保存,并修改文件时间属性

三、vim的配置

当我们第一次使用vim时,vim的编译器会显的非常原始,比如没有行号,代码不会自动对齐,代码不会有亮色提示等。

这里我们要注意vim的配置具有专一性,如果我们在root账号下进行配置了,他是不会在其他账号下能够经行使用的,只能在这个账号下重新配置使用。

首先我们要建立一个.vimrc的文件,然后打开他,在里面直接输入我们要功能就可以了(通过代码实现,自己可以上网去查),这个方法非常简单,但是非常消耗时间那么我为大家找到了一个已经配置好的文件大家直接复制这给命令就可以下载配置了。

//配置指令
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

下面我们可以打开我们配置好的.cimrc看一下:

 这里大概有4百多行,大家如果想为vim配置其他功能,直接在这里配置就好了。

我相信如果大家用的不是root账号,在进行一些需要root权限的命令,我们只能用sudo进行提权。

 当我们这里进行提权了发现是不被允许,说pjb这给账号没有在sudoers file这个文件中。

那么我们只要在sudoers file文件中的某个区域进行添加就好了(这里需要登入root账号进行操作)。

//输入该命令在文件添加进信任的用户名
vim /etc/sudoers

 然后我们在vim的底行模式下,按wq就可保存并退出了。

这时我们在切换回自己的用户,进行sudo就可以了。

 这里可以看到普通用户也就可以用sudo进行提权操作了。

 

相关文章:

  • 睿智的目标检测61——Keras搭建YoloV7目标检测平台
  • DM8: 达梦数据库生成100以内2位数加减法
  • 《数据结构》(六)八大排序(上)
  • 几道简单的Linux驱动相关面试题,你看你会几题?
  • libusb系列-004-Qt下使用libusb库
  • vue的简单学习
  • Arduino基础知识
  • 【入门4】数组——蛇形方阵
  • web自动化测试——入门篇01
  • 探索云原生技术之容器编排引擎-Kubernetes/K8S详解(5)
  • 软考中级(软件设计师)——面向对象程序设计(C++Java二选一的题15分-目标3分)
  • 《JavaSE-第十四章》之文件(一)
  • 【C++】命名空间输入输出缺省参数函数重载
  • C++ STL速成
  • 网络安全知识之什么是网络安全?
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Akka系列(七):Actor持久化之Akka persistence
  • axios 和 cookie 的那些事
  • C学习-枚举(九)
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • PHP的Ev教程三(Periodic watcher)
  • spring cloud gateway 源码解析(4)跨域问题处理
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vuex 笔记整理
  • 机器学习学习笔记一
  • 前端路由实现-history
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 学习ES6 变量的解构赋值
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (算法)Travel Information Center
  • (一)认识微服务
  • (一一四)第九章编程练习
  • (译) 函数式 JS #1:简介
  • (转)我也是一只IT小小鸟
  • .gitignore文件设置了忽略但不生效
  • .Mobi域名介绍
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .考试倒计时43天!来提分啦!
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Documented注解的作用
  • @EventListener注解使用说明
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [20181219]script使用小技巧.txt
  • [Android]竖直滑动选择器WheelView的实现
  • [Angular] 笔记 9:list/detail 页面以及@Output