【Linux】vim的简单使用

我们知道在Windows下的VS2019是一个集成开发环境,也就是说,集编辑,编译,调试等功能都放在了一起;但是在Linux下,这些步骤都是分开的,我们这篇博客就来说一说vim这个编辑器,它只有编辑功能

文章目录

  • vim的简单使用
  • 快捷键
  • 让普通用户执行root命令(sudo)
  • vim下批量化注释和去注释
  • vim配置文件

vim的简单使用

我们先来简单的在vim上写一段C语言代码

我们先touch一个.c文件,vim+文件名打开,我们发现按一些按键不能在里面写入内容,这是因为刚进入时是命令模式,我们需要按i键进入插入模式,这样就可以写代码了,写完之后按Esc退出插入模式,进入命令模式,再按shift+;就可以进入底行模式,这时输入wq再按回车就可以退出来了

上面就是一个简单的一个写一段代码的操作,下面我们来细化的讲解一下

vim的模式我们这里要说的有四种,分别是命令模式,插入模式,底行模式和替换模式,其中前三种比较常见,它们的相互转换的方法我们一定要知道

在这里插入图片描述

这张图就是它们三个相互转换的关系,插入模式和底行模式之间的相互转换必须要经过命令模式

下面说一下,如果vim异常退出,比如vim还在工作时直接关掉Xshell,或者是断网了,这时vim会在当前目录文件下生成一个隐藏文件,这个隐藏文件中就放着上会编辑的内容

在这里插入图片描述

这个就是异常退出后再次登录的画面,下面有很多选项,我们可以恢复后再删掉就行了

快捷键

下面是在命令模式下的一些的操作,可以说是快捷键,只有在命令模式下才可以用

shift+$ 将光标定位到本行的最右边
shift+^ 将光标定位到本行的最左边
shift+g 将光标定位到本文件最结尾处
gg 将光标定位到本文件最开始处

h 光标向左走
j 光标向下走
k 光标向上走
l 光标向右走

yy 复制当前行
nyy 复制当前及以下n行
p 在下一行粘贴
np 在下一行粘贴n次

u 撤销上一步操作
ctrl+r 对撤销操作进行撤销
dd 删除/剪切当前行
ndd 删除/剪切多行

shift+`=~ 大小写快速转换
r 替换当前光标所在字符
nr 替换多个字符
shift+r 改成替换模式–Esc–>命令模式
(n)x 删除当前n个字符
n+shift+x 向左进行删除

w 使光标按单词在行内向后移动
b 使光标按单词在行内向前移动
shift+# 高亮所有当前光标指向的单词,n是走向下一个

下面是在底行模式中的指令

w 表示写入
q 表示退出
shift+!表示强制执行
以上三个可以互相组合

!+shell命令 可以不退出vim执行某些命令
vs code.c 可以开多窗口
ctrl+ww光标多窗口切换
set nu 设置上行号
set nonu 取消行号

让普通用户执行root命令(sudo)

我们之前说权限的时候就说过普通用户可以在指令前加上sudo,就可以执行一些只有root才可以执行的命令,也就是以root的身份去执行命令。但前提是这个普通用户得在一个“白名单”中,我们如何去修改这个白名单呢?今天学了vim就可以改了
在这里插入图片描述
我们先用vim进入这个文件中,当然得是root才能进
进来之后大概在100行,就有
在这里插入图片描述
我们把root那行在复制一下到下一行,把root改成普通用户就行
这是我们执行sudo就是root的身份了
在这里插入图片描述

vim下批量化注释和去注释

注释

1.ctrl+v进入视图模式(要从命令模式进入)
2.hjkl区域选择
3.shift+i
4.//
5.Esc

去注释

1.ctrl+v
2.hjkl区域选择
3.d

vim配置文件

我们在vim中写代码的时候,不像VS2019一样可以自动对齐,自动填充括号等等。其实这是可以配置的
只需要在家目录下创建一个叫做

.vimrc

隐藏文件,在用vim去文件中写入一些东西就行,这些东西别的博主那都可以搜的到,如果不想自己配置,有一个开源软件的项目可以使用,它就自动帮助你配置了
链接: vimforcpp

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android平台如何实现RTSP转GB28181

为什么要做GB28181设备接入侧? 实际上,在做Android平台GB28181设备接入模块的时候,我们已经有了非常好的技术积累,比如RTMP推送、轻量级RTSP服务、一对一互动模块、业内几乎最好的RTMP|RTSP低延迟播放器。 Android平台GB28181接…

clickhouse在MES中的应用-跟踪扫描

开发的MES,往往都要做生产执行跟踪扫描,这样会产生大量的扫描数据,用关系型数据库,很容易造成查询冲突的问题。 生产跟踪扫描就发生的密度是非常高的,每个零部件的加工过程,都要被记录下来,特别…

在Linux中对Nginx进行安全加固

准备工作 在IP为x.x.x.x的服务器上安装nginx,确保Linux系统为nginx环境。 检查nginx是否配置nginx账号锁定策略 配置nginx账号锁定策略,降低被攻击概率。 第一步,查看nginx的锁定状态。 命令:passwd -S nginx 若结果出现“P…

vivado 制定执行策略

制定执行策略 策略是一组到工具的开关,这些开关在预先配置的一组选项中定义用于合成应用程序或在实现期间运行的各种实用程序和程序。每个主要版本都有特定于版本的策略选项。 视频:有关更多信息,请参阅以下内容:Vivado Design …

在Flutter中调用Android的代码

参考 【Flutter 混合开发】嵌入原生View-Android 默认使用Android studio 和 Kotlin 基本配置 创建flutter项目 在终端执行 flutter create batterylevel添加 Android 平台的实现 打开项目下的android/app/src/main/kotlin 下的 MainActivity.kt 文件。 我这里编辑器有…

MicroPython ESP32开发:快速参考

ESP32是使用非常广泛的一款微处理器,集成了WiFi和蓝牙模块,根据性能和应用场景的不同有很多不同的版本,本文是ESP32开发板在MicroPython环境下运行的快速参考,对于首次使用这个开发板在MicroPython下进行开发的应该会有一定的帮助…

会计的记账凭证

目录 一. 记账凭证的填制与审核1.1 收付款凭证1.2 转账凭证1.3 单式记账凭证 二. 记账凭证的编号 \quad 一. 记账凭证的填制与审核 \quad \quad 1.1 收付款凭证 \quad 注意︰ 凡是涉及货币资金之间收付款的业务如将库存现金存入银行或从银行提取现金等类经济业务。在实际工作中…

探索设计模式的魅力:为什么你应该了解装饰器模式-代码优化与重构的秘诀

设计模式专栏:http://t.csdnimg.cn/nolNS 开篇 在一个常常需要在不破坏封装的前提下扩展对象功能的编程世界,有一个模式悄无声息地成为了高级编程技术的隐形冠军。我们日复一日地享受着它带来的便利,却往往对其背后的复杂性视而不见。它是怎样…

幻兽帕鲁服务器多少钱?价格PK阿里云腾讯云华为云

2024年幻兽帕鲁服务器价格表更新,阿里云、腾讯云和华为云Palworld服务器报价大全,4核16G幻兽帕鲁专用服务器阿里云26元、腾讯云32元、华为云26元,阿腾云atengyun.com分享幻兽帕鲁服务器优惠价格表,多配置报价: 幻兽帕鲁…

【C++】C++入门— 类与对象初步介绍

C入门 1 认识面向对象2 类的引入3 类的定义类的定义方式 4 类的访问限定符及封装访问限定符封装 Thanks♪(・ω・)ノ谢谢阅读!下一篇文章见!!! 1 认识面向对象 C语言是面向过程的,关注…

位运算之妙用:识别独特数字(寻找单身狗)

目录 找单身狗1 图解: 代码如下: 找单身狗2 图解: 代码如下: 寻找单身狗1 从数组中 的1 2 3 4 5 1 2 3 4 中找出没有另一个相同的数与其匹配的数 这个问题的原理是利用异或运算的性质。异或运算(XOR&#xff09…

java学习03 判断和循环

一 流程控制语句 1.流程控制语句分类 顺序结构 判断和选择结构(if, switch) 循环结构(for, while, do…while) 2. 顺序结构 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中…

Blender使用Rigify和Game Rig Tool基础

做动画需要的几个简要步骤: 1.建模 2.绑定骨骼 3.绘制权重 4.动画 有一个免费的插件可以处理好给引擎用:Game Rig Tool 3.6和4.0版本的 百度网盘 提取码:vju8 1.Rigify是干嘛用的? 》 绑定骨骼 2.Game Rig Tool干嘛用的&#xf…

Revit中使用依赖注入

依赖注入的技术已经很成熟,本文主要是说明一下Revit中的适用版本与介绍相关的开源项目。 版本问题 版本 目前的依赖注入包无法支持Revit 2020 以下的版本,原因是因为包中的依赖项与Revit本身的依赖项不一致导致的,所以说如果使用Revit DI…

2V2无人机红蓝对抗仿真

两架红方和蓝方无人机分别从不同位置起飞,蓝方无人机跟踪及击毁红方无人机 2020a可正常运行 2V2无人机红蓝对抗仿真资源-CSDN文库

探索Gin框架:Golang使用Gin完成文件上传

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 在之前的文章中,我们讲解了Gin框架的快速入门使用,今天我们来聊聊如何使用…

单细胞scATAC-seq测序基础知识笔记

单细胞scATAC-seq测序基础知识笔记 单细胞ATAC测序前言scATAC-seq数据怎么得出的? 该笔记来源于 Costa Lab - Bioinformatics Course 另一篇关于scRNA-seq的请移步 单细胞ATAC测序前言 因为我的最终目的是scATAC-seq的数据,所以这部分只是分享下我刚学…

c++类继承

一、继承的规则 (1)基类成员在派生类中的访问权限不得高于继承方式中指定的权限。例如,当继承方式为protected时,那么基类成员在派生类中的访问权限最高也为protected,高于protected会降级为protected,但低…

阿里云部署的幻兽帕鲁服务器,为什么没有一键更新游戏服务端、导入存档、可视化的游戏配置

如果有的朋友发现自己用阿里云部署的幻兽帕鲁服务器,找不到一键更新游戏服务端、一键导入存档、以及可视化的游戏配置。其实答案很简单,因为你的“阿里云计算巢”版本需要更新。你只需要更新到最新版,就可以拥有这些便捷的功能了。 具体的操…

【备战蓝桥杯】——循环结构终篇

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-yl4Tqejg4LkjZLAM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…