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

Linux中vim的基本介绍和使用

善为理者,举其纲,疏其网。


vim

  • 1、vim介绍
  • 2、命令模式详情
  • 3、底行模式详情
  • 4、困难问题
  • 5、历史存疑问题
  • 6、vim配置问题
    • 6、1、配置的原理
    • 6、2、一键式配置

1、vim介绍

如果我面想要在Linux上编写代码的话,我就需要vim来帮助我们编写代码。但是vim并不像是在Windows上的vs集成软件把所有的东西都集成起来但是呢,如果不进行配置的话,vim和其他是相互独立的,vim就是写代码的编辑器,编译代码就是gcc/g++的编译器,调试代码就有gdb的调试器。自动化构建就有make和makefile构建的工具。在这里插入图片描述
vim是款编辑器,同时也是多模式的编辑器—命令模式,底行模式,插入模式。
简单编译一个hello vim程序
vim刚开始打开的时候,暂时是无法正常输入的,因为刚打开的时候是命令模式,默认打开的时候,目前所输入的都会看成是命令,当然,如果命令不对当然什么操作都没有咯。
从命令模式进入插入模式输入 i
如果编辑完了,想要退出去,该怎么办呢?首先需要从插入模式退出到命令模式,按一下Esc,现在在命令模式,此时想要退出的话,需要按:() ,从命令模式进入到底行模式之后,继续按wq就能够退出。如果是在底行模式不想退出的话,也能够通过按Esc重新命令模式。
概括介绍:
插入模式:编辑模式
命令模式:允许使用者通过命令,来进行文本的编辑控制。
底行模式:如果前两个模式是对于文本内容的控制,底行模式就是让vim进行包括但不限于和shell进行交互的。

2、命令模式详情

命令模式:没必要进入插入模式才能对文本进行操作。

yy:复制当前行
p:粘贴到当前光标的下一行
u:撤销
dd:剪切/删除
n dd:剪切/删除n行
n p:粘贴n行
n yy:复制n行
$:快速定位光标到当前行的最末尾
^:快速定位光标到当前行的最开头
gg:将光标定位到文本的最开头
G:将光标定位到文本的最末尾
n G:定位到指定的n行
h:光标向左一位
j:光标向下一位
k:光标向上一位
l:光标向右一位n h:光标向左n位
n j:光标向下n位
n k:光标向下n位
n l:光标向右n位

快速记住hjkl方向键的意义。
h最左边,所以h表示向左。l在最右边,所以l表示向右。k(king高高在上),所以k表示向上。j(jump向下跳),所以j表示向下。

w:按照单词为单位,进行光标后移
b:按单词为单位,进行光标前移
ctrl r:撤销撤销的动作
shift~:shift按住不动,连续按~能让光标定位的字母快速进行大小写切换
x:删除光标所在位置的字符,先向后删,删完后向前删
n x:删除光标所在位置的n个
X:删除光标之前的字符
r:对光标指定的位置,进行一个字符的替换
n r:对光标指定的位置,进行n个字符的替换
R:进入replace模式,能够进行多次替换
i:直接进入插入模式
o:进入编辑模式的同时还新增一行
a:进入编辑模式,同时向后一位字符

3、底行模式详情

进入底行模式,是在命令模式情况下按:。

q!:强制退出。
q:退出,但是如果不保存的话,会警告没有保存。
wq:保存并退出
wq!:保存并强制退出
set nu:调出行号
set nonu:去掉行号

还可以进行批量化的替换

s/prinf/PRINTF/g:进行printf全部替换成PRINTF
/XXX:进行XXX的全文搜索,并且高亮
!command:不退出vim,可以进行shell命令的执行
(最常用的能够man指令,这样就不用退出后再去查看)

vim不会新建文件,只有当我们保存的时候,才会首次被创建。(vim 文件(新文件))。
在windows上的图形化界面,想要多文件同时编辑的话,只需要点击相对应的文件图形就能够切换,那么在Linux中怎么实现呢?难不成还是保存完之后再进行编辑另一个文件?

vs filename:分屏,多文件操作
ctrl ww:光标在两个编辑窗口切换

左右两个窗口可以互相拷贝粘贴。

底行模式不能直接进入插入模式,插入模式也不能直接进入底行模式。

命令模式时候怎么快速的退出?ZZ即可

4、困难问题

怎么注释?
换句话说困难的问题是,如何批量注释?

ctrl+v:先进入视图模式
//进入视图模式后选择需要批量化编辑的区域
I:大写的i进入编辑模式

编写完成之后按Esc两次,就能够进行多行的注释
怎么批量化去注释

ctrl+v:进入视图模式
//选择需要进行编辑的区域
d:删除/去注释

5、历史存疑问题

解决历史问题:普通用户无法进行sudo提权(其中Linux用户章节留下的问题)
如果没有提前解决白名单黑名单类似的问题的话,会出现这样的报错。
在这里插入图片描述
在这里插入图片描述
首先如果想要修改这个文件的话,必须要是root才能。利用root打开/etc/sudoers文件。进行修改。
在这里插入图片描述
找到这里并添加用户
在这里插入图片描述
可是此时也会出现报错,会有系统来提醒是否需要保存。这是就必须要用到**wq!**来强制保存并退出。
在这里插入图片描述
这样就成功了,能够实现sudo命令。

6、vim配置问题

6、1、配置的原理

vim不是简单的执行可执行程序,在启动执行的时候也会读取若干可执行的配置文件。通常来说没配置的话读取的都包含 .vimrc。
如果本身没有的话,可以创建一个.vimrc文件并在里面进行配置。这样的话也符合Linux多用户操作系统的作用,每一个人都可以个性化配置vim。可以但不限于set nu

6、2、一键式配置

在网上寻找例如gitte或者github上的教程。

相关文章:

Linux中vim的基本介绍和使用

善为理者,举其纲,疏其网。 vim 1、vim介绍2、命令模式详情3、底行模式详情4、困难问题5、历史存疑问题6、vim配置问题6、1、配置的原理6、2、一键式配置 1、vim介绍 如果我面想要在Linux上编写代码的话,我就需要vim来帮助我们编写代码。但是…...

宝塔面板上,安装rabbitmq

废话不多说,直接上干货! 第一步:登录宝塔账号,在软件商店里搜索 第二步:点击设置 第三步:已经完成了,还看啥!...

【Docker系列】Docker 镜像管理:删除无标签镜像的技巧

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

数据采集器

目录 1. 采集Redis 2. 采集MySQL 3. 采集容器 1. 采集Redis 出口商和集成 |普罗 米修斯 (prometheus.io) 发布 奥利弗006/redis_exporter (github.com) 在目标机器上安装redis 上传redis采集器包redis_exporter-v1.53.0.linux-amd64.tar.gz [rootharbor opt]# tar -xf …...

小红书0510笔试-编程题

解题思路: 先射击左边和先射击右边两种情况,就是2*1/n*(n-1)的概率。 解题思路: 枚举所有的评论作为最小值,按评论从大到小排序,每次遍历到的都是最小值。要想得到以该评论为最小值的最大优秀度,就要维护一…...

2024年热门开放式耳机评测!悠律、韶音、声阔到底该选谁?

开放式耳机选购技巧篇,可参考选购! 作为一名数码评测博主,这两年用过的开放式耳机不下50款了,市面上的开放式耳机众多,很多人不知道该如何选择,其实选购都是有一定的技巧和规律性的,看配置就能…...

计算机毕业设计选题推荐-智慧物业服务系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

新手小白学习PCB设计,立创EDA专业版

本教程有b站某UP主的视频观后感 视频链接:http://【【教程】零基础入门PCB设计-国一学长带你学立创EDA专业版 全程保姆级教学 中文字幕(持续更新中)】https://www.bilibili.com/video/BV1At421h7Ui?vd_sourcefedb10d2d09f5750366f83c1e0d4a…...

查物流信息用什么软件

在电子商务日益繁荣的今天,快递物流信息的查询成为了我们日常生活中不可或缺的一部分。无论是网购达人还是商家,都需要随时掌握货物的物流动态。然而,如何快速、准确地查询物流信息却是一个令人头疼的问题。今天,我将为大家介绍一…...

(40)温度传感器

文章目录 前言 1 设置 2 记录 3 参数说明 前言 ArduPilot 已经有许多可能的温度报告来源:电调,智能电池,电机 EFI,这些独立的传感器可以用来取代 ArduPilot 中已经存在的那些设备温度报告。它们也可以只是被记录下来。 ArduP…...

【靶场实操】sql-labs通关详解----第二节:前端页面相关(Less-11-Less-17)

SQL注入攻击是一种针对Web应用程序的安全漏洞,那么自然,SQL注入攻击也和前端页面息息相关,用户输入未被正确处理、动态查询的构建、前端JavaScript代码错误,等等我问题都可能造成安全威胁。 在上一节,我们了解了基础的…...

样式与特效(2)——新闻列表

1.盒子模型的边距概念 ) Margin-top 上面 Margin-bottom 底部 Margin-right 右边 Margin-left 左边 Margin : 10px (上下左右都是10px) Margin :10px,20px (上下边距10px 左右20px) CSS里面最重要的属性之一 将页面理解成…...

NICE Seminar(2023-07-16)|演化算法的理论研究到底有什么用?(南京大学钱超教授)

模式定理(Schema Theorem) 模式定理(Schema Theorem)是遗传算法(Genetic Algorithm, GA)的重要理论基础,由约翰霍兰德(John Holland)在1975年提出。它描述了具有特定模式…...

优盘驱动器未格式化?数据恢复全攻略

在数字时代,优盘作为便携的数据存储工具,广泛应用于日常生活与工作中。然而,当遇到“优盘驱动器未被格式化”的提示时,无疑给许多人带来了不小的困扰。这一状况往往意味着优盘的文件系统出现了问题,导致系统无法正确识…...

(超全)Kubernetes 的核心组件解析

引言 在现代软件开发和运维的世界中,容器化技术已经成为一种标志性的解决方案,它为应用的构建、部署和管理提供了前所未有的灵活性和效率。然而,随着应用规模的扩大和复杂性的增加,单纯依靠容器本身来管理这些应用和服务已不再足够…...

前端常用的【设计模式】和使用场景

设计原则 最重要的:开放封闭原则 对扩展开放对修改封闭 工厂模式 用一个工厂函数,来创建实例,隐藏 new 如 jQuery 的 $ 函数,React 的 createElement 函数 单例模式 全局唯一的实例(无法生成第二个) 如 Vuex 和 Redux 的 store…...

QT下载问题:Download from your IP address is not allowed

问题 Download from your IP address is not allowed 解决 https://download.csdn.net/download/baidu_34971492/89608794...

自建数据库VS云数据库

自建数据库VS云数据库 什么是自建数据库?自建数据库方案自建数据库的优点自建数据库的缺点什么是云数据库?自建数据库的缺点什么是云数据库? 云数据库方案云数据库的优点云数据库的缺点适用场景比较总结 【纪录片】中国数据库前世今生 在数字…...

【大数据开发语言Scala的入门教程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🪁Scala 🪡Scala是一种功能丰富且具有强大表达能力的静态类型…...

docker部署kkfileview文件在线预览服务

kkfileview文件在线预览服务部署使用 免费开源,功能强大,几乎支持日常见到的所有文件类型在线预览 目前支持的文件类型如下 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx,xlam, xla 等 Office 办公文档支持 wp…...

朱锐 | 生命图像中的时间和意识

本文载于《科学・经济・社会》2023 年第 41 卷第 2 期第 37~61 页 作者简介: 朱锐(1968年10月—2024年8月1日),中国人民大学哲学院杰出学者、特聘教授,美国德州州立大学客座教授,主要从事神经哲学、心灵哲…...

pytorch: cpu,cuda,tensorRt 推理对比学习

0:先看结果 针对resnet模型对图片做处理 原图结果 分别使用cpu,cuda,TensorRt做推理,所需要的时间对比 方法时间cpu13s594mscuda711mstensorRt 113ms 项目地址: GitHub - july1992/Pytorch-vily-study: vily 学…...

android 音频播放器,(一)SoundPool音频播放实例

1. Apk内&#xff0c;预定义按键与触发按键&#xff1a; layout 按键定义: <Button android:id"id/start" android:layout_width"match_parent" android:layout_height"wrap_content" android:textAllC…...

AVL解析

本节主要看板书 概念 AVL树&#xff08;Adelson-Velsky and Landis tree&#xff09;是一种自平衡二叉查找树&#xff0c;用于在动态集合中进行高效的插入、删除和查找操作。它保持树的高度接近最小可能值&#xff0c;从而确保这些操作的时间复杂度始终保持在O(log n)。AVL树…...

用C#和WinForms打造你的专属视频播放器:从多格式支持到全屏播放的完整指南

使用 C# 和 WinForms 创建一个功能齐全的视频播放器&#xff0c;支持 MP4 和 AVI 格式&#xff0c;并具有文件夹导入、多视频播放、全屏切换、视频列表管理等功能&#xff0c;是一个相对复杂的项目。下面我会给出一个基本的实现方案&#xff0c;包括所需的关键功能和相关代码示…...

Spring security学习笔记

目录 1. 概要2. spring security原理2.1 DelegatingFilterProxy2.2 FilterChainProxy2.3 SecurityFilterChain2.4 Spring Security 作用机制 3.Spring Security快速入门4.高级自定义配置5. Spring Security 结合 JWT使用 1. 概要 Spring Security是一个用于在Java应用程序中实…...

MySQL:基础增删查改

MySQL&#xff1a;基础增删查改 插入插入冲突 查询distinctwhereorder bylimit 删除deletetruncate 更新 插入 基本插入语法&#xff1a; insert [into] 表名 (列1, 列2 ...) values (值1, 值2 ...);into可以省略(列1, 列2 ...)与后面的(值1, 值2)一一对应如果插入时数据完全…...

Apache DolphinScheduler 1.3.4升级至3.1.2版本过程中的踩坑记录

因为在工作中需要推动Apache DolphinScheduler的升级&#xff0c;经过预研&#xff0c;从1.3.4到3.1.2有的体验了很大的提升&#xff0c;在性能和功能性有了很多的改善&#xff0c;推荐升级。 查看官方的升级文档&#xff0c;可知有提供升级脚本&#xff0c;如果只是跨小版本的…...

最后一块石头的重量(超级妙的背包问题)

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果…...

如何评估和提升审查者在前端代码审查中的专业技能?

评估和提升审查者在前端代码审查中的专业技能可以通过以下步骤&#xff1a; 技能评估&#xff1a; 定期进行技能评估&#xff0c;了解审查者在前端开发各方面的能力&#xff0c;包括但不限于HTML、CSS、JavaScript、框架使用、代码规范等。 代码审查实践&#xff1a; 通过实…...

网站导航栏三根横线怎么做的/网站推广如何收费

一、LVM准备磁盘分区disk /dev/sdbn创建分区t更改类型 8epartprobe 将磁盘分区表变化信息通知内核&#xff0c;请求操作系统重新加载分区表。-d 不更新内核-s 显示磁盘分区汇总信息-h 显示帮助信息-v 显示版本信息准备物理卷yum insatll lvm2 -ypvcreate 磁盘分区pvdisplay 查…...

曲阜网站建设百度开户/网站营销与推广

Nova • Ocata 版本加入了许多 Cell V2 的功能 。 但是不是所有的都可以用于生产 。 现在部署 Nova 需要最少创建一个 Cell。 • FilterScheduler 只能基于 Placement 服务做调度 。 现在只支持 CPU, RAM 和 Disk 资源 。 将来会支持更多资源类型 。 • Nova api 的 m…...

网站建设优化河南/免费下载b站视频软件

printf("\033[47;31mhello world\033[5m"); 47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码.颜色代码:QUOTE:字背景颜色范围: 40--49 字颜色: 30--3940: 黑 30: 黑41: 红 …...

专业手机移动网站建设/微信营销的成功案例

2019独角兽企业重金招聘Python工程师标准>>> 概述 分析一下 LinkedHashMap 源码&#xff0c;看下内部结构&#xff0c;研究一下如何保证访问顺序。 继承关系 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> LinkedHa…...

福建建设职业管理中心网站/推广策划方案怎么做

(1) 物理层 定义了为建立、维护和拆除物理链路所需的机械 的、电气的、功能的和规程的特性&#xff0c;其作用是使原始的数据比特流能 在物理媒体上传输。具体涉及接插件的规格、“0”、“1”信号的电 平表示、收发双方的协调等内容。 (2) 数据链路层 比特流被组织成数据链路协…...

男女做暧昧视频网站/seo优化查询

在ASP.NET开发过程序&#xff0c;在数据插入之后&#xff0c;文本框TextBox控件需要Reset。如果只有一两个文件框也许没有什么问题&#xff0c;如果网页上有很多文本框&#xff0c;你就会有点问题了。再加上某一情形&#xff0c;一些文本框是有默认值&#xff0c;还不能做循环来…...