【lesson5】linux vim介绍及使用

文章目录

  • vim的基本介绍
  • vim的基本操作
  • vim常见的命令
    • 命令模式下的命令
      • yy+p
      • n+yy
      • n+p
      • u
      • ctrl+r
      • G
      • gg
      • n+G
      • $
      • ^
      • w
      • b
      • h,j,k,l
      • dd
      • n+dd
      • n+dd+p
      • ~
      • shift+r
      • r
      • n+r
      • x
      • n+x
    • 底行模式下的命令
      • set nu
      • set nonu
      • vs 源文件
      • w
      • q
      • !+command(命令)
  • vim配置
    • 解决无法使用sudo问题

vim的基本介绍

首先vim是linux下的一款编辑器软件,只能写代码,vim是一个多模式编辑器软件。它有三种模式:
1.命令模式
2.插入模式
3.底行模式

我介绍vim的时候,大家再测试的时候可能会发现自己的vim会与我有所不同,不用担心因为我的vim是配置过的,在最后一部分会给大家讲vim如何配置。

vim的基本操作

首先要编辑代码就要先创建文件,然后用vim打开。
在这里插入图片描述
这里进入以后,vim会默认在命令模式
在这里插入图片描述
模式的切换:
在这里插入图片描述
上图就是vim各个模式的切换方法,命令模式相当于中间模式,要想底行模式切换到插入模式就得先切换到命令模式,

底行模式下:
vim保存:w(保存所写的代码)w!(强制保存)
vim退出:q(退出vim编辑模式)q!(强制性退出)
w和q可以合并使用,但是一定要先保存再退出。
在这里插入图片描述
在这里插入图片描述

vim常见的命令

命令模式下的命令

yy+p

yy功能:复制绿色光标所在行
p功能:从光标的下一行开始,粘贴一次复制的内容,并移动光标到复制内容的第一行
起始:
在这里插入图片描述
然后yy和p

在这里插入图片描述

n+yy

功能:从光标所在行开始向下复制n行(n在输入的时候为具体的数字例如:5yy,之后的n也是如此将不会再详细说明)
起始:
在这里插入图片描述
然后2yy和p
在这里插入图片描述

n+p

功能:从光标的下一行开始,粘贴n次复制的内容,并移动光标到复制内容的第一行
起始:
在这里插入图片描述
然后2yy+5p
在这里插入图片描述

u

功能:撤销之前的操作
起始:
在这里插入图片描述
然后2yy+5p
在这里插入图片描述
然后u撤销
在这里插入图片描述

ctrl+r

功能:撤销u的操作
起始:
在这里插入图片描述
然后2yy+5p
在这里插入图片描述
然后u
在这里插入图片描述
然后Ctrl+r
在这里插入图片描述

G

功能:光标直接定位到文件结尾
起始:
在这里插入图片描述
然后G
在这里插入图片描述

gg

功能:光标直接定位到文件最开始
起始:
在这里插入图片描述
然后gg
在这里插入图片描述

n+G

功能:光标直接定位到第n行
起始:
在这里插入图片描述
然后10G
在这里插入图片描述

$

功能:光标直接定位到行的最结尾
起始
在这里插入图片描述
然后$
在这里插入图片描述

^

功能:光标直接定位到行的最开始
起始:
在这里插入图片描述
然后^
在这里插入图片描述

w

功能:光标按单词为单位,向后移动
起始:
在这里插入图片描述
然后w
在这里插入图片描述

b

功能:以单词为单位向前移动
起始:
在这里插入图片描述
然后b
在这里插入图片描述

h,j,k,l

h:光标向左移动
j:光标向下移动
k:光标向上移动
l:光标右移动(小写L)

dd

功能:删除光标所在行
起始:
在这里插入图片描述
然后dd
在这里插入图片描述

n+dd

功能:从光标所在行开始删除n行
起始:
在这里插入图片描述
然后9dd
在这里插入图片描述

n+dd+p

功能:剪切
起始:
在这里插入图片描述
9dd+p(在return后面p)
在这里插入图片描述

~

功能:光标所在处进行大小写切换
起始:
在这里插入图片描述
然后~
在这里插入图片描述

shift+r

功能:进入替换模式,从光标所在位置开始替换
起始:
在这里插入图片描述
然后shift+r进入替换模式
在这里插入图片描述
在这里插入图片描述
按ESC退出替换模式
在这里插入图片描述

r

功能:替换光标所在位置的一个字符
起始:

然后r+c
在这里插入图片描述

n+r

功能:从光标所在处开始替换n个字符
起始:
在这里插入图片描述
然后5r+c
在这里插入图片描述

x

功能:删除光标处的一个字符
起始:
在这里插入图片描述
然后x
在这里插入图片描述

n+x

功能:从光标处开始向后删除n个字符
起始:
在这里插入图片描述
然后5x
在这里插入图片描述

底行模式下的命令

set nu

功能:调出行号
起始:
在这里插入图片描述

然后set nu
在这里插入图片描述

set nonu

功能:取消行号
起始:
在这里插入图片描述
然后set nonu
在这里插入图片描述

vs 源文件

功能:分屏打开其它文件,如果源文件不存在则自己创建一个
起始:
在这里插入图片描述
然后vs myfile.c
在这里插入图片描述
我们可以看到光标在myfile.c文件,那么如何切换到test.c文件呢?
键盘按:Ctrl+w+w即可切换
在这里插入图片描述
我们还可以从test.c复制或者剪切内容到myfile.c
在这里插入图片描述

w

功能:保存vim所编辑的内容

q

功能:退出vim

!+command(命令)

功能:在不退出vim的情况下指向命令
起始:
在这里插入图片描述
然!+command(命令)
在这里插入图片描述
在这里插入图片描述
退出去看我们确实多了个a.out的文件
在这里插入图片描述
运行
在这里插入图片描述
我们确实成功了

vim配置

在这里插入图片描述
如果vim配置过,在工作目录下会有.vimrc文件如果没有,则自己创建一个然后自己在文件里面配置vim,在文件里面不知道怎么配置的,可以在网上搜索一般都搜索的到。
给大家演示一下:
在这里插入图片描述
我们发现工作目录下没有./vimrc,所以自己创建一个。
在这里插入图片描述
然后打开.vimrc就可以开始配置了
比如:
加上行号
在这里插入图片描述
保存退出,并创建一个源文件,然后打开
在这里插入图片描述
在这里插入图片描述
我们会发现自动有了行号,所以vim就是这么配置的。

解决无法使用sudo问题

在这之前我们大部分初学者应该的不能使用sudo,这是因为没有添加信任关系,那么如何添加呢?
首先先切换成root用户然后用vim 打开/etc/sudoers
在这里插入图片描述
然后:调出行号
在这里插入图片描述
大概在100多行有个
在这里插入图片描述
我们只要在复制107行,然后粘贴在107行下面,然后把%wheel换成用户名即可,最后wq!强制退出。到这就已经可以使用了。

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

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

相关文章

十、数据结构——链式队列

数据结构中的链式队列 目录 一、链式队列的定义 二、链式队列的实现 三、链式队列的基本操作 ①初始化 ②判空 ③入队 ④出队 ⑤获取长度 ⑥打印 四、循环队列的应用 五、总结 六、全部代码 七、结果 在数据结构中,队列(Queue)是一种常见…

react-router-dom和react-router的区别

react-router-dom和react-router的区别 前言 在使用react-router-dom的时候,经常会和react-router搞混了,搞不清楚它们哪个跟哪,到底有什么关系,今天来总结一下。 结论 react-router-dom是在react-router的基础上开发的&#…

变现:利用 chatgpt + midjourney 制作微信表情包

1、利用gpt生成提示词,当然也可以直接翻译 生成基础提示词, 比如: an anime image with a white kawaii character in it, in the style of light green and brown, minimalist detail, animated gifs, cranberrycore, 1860–1969, babyco…

云计算结合数据科学突破信息泛滥(下)

大家好,本文将继续讨论云计算结合数据科学突破信息泛滥的相关内容,讲述其余三个关键组成部分。 3.数据清理和预处理 收集数据并将其存储在云端之后,下一步是将数据进行转换。因为原始数据经常包含错误、不一致和缺失的值,这些都…

C#实现数字验证码

开发环境:VS2019,.NET Core 3.1,ASP.NET Core API 1、建立一个验证码控制器 新建两个方法Create和Check,Create用于创建验证码,Check用于验证它是否有效。 声明一个静态类变量存放列表,列表中存放包含令…

python selenium爬虫自动登录实例

拷贝地址:python selenium爬虫自动登录实例_python selenium登录_Ustiniano的博客-CSDN博客 一、概述 我们要先安装selenium这个库,使用pip install selenium 命令安装,selenium这个库相当于机器模仿人的行为去点击浏览器上的元素&#xff0…

uni-app:setTimeout函数(延迟时间之后执行)

下面的代码表示在 500 毫秒(即0.5秒)之后,会执行你在函数中编写的代码。你可以将需要执行的代码放在注释部分的位置。 setTimeout(function() {// 在这里写要执行的代码 }, 500); 例如: 在经过 500 毫秒后,控制台会…

Android ANR触发机制之Service ANR

一、前言 在Service组件StartService()方式启动流程分析文章中,针对Context#startService()启动Service流程分析了源码,其实关于Service启动还有一个比较重要的点是Service启动的ANR,因为因为线上出现了上百例的"executing service &quo…

R-并行计算

本文介绍在计算机多核上通过parallel包进行并行计算。 并行计算运算步骤: 加载并行计算包,如library(parallel)。创建几个“workers”,通常一个workers一个核(core);这些workers什么都不知道,它们的全局环…

c++学习(位图)[22]

位图 位图(Bitmap)是一种数据结构,用于表示一个固定范围的布尔值(通常是0或1)。它使用一个二进制位来表示一个布尔值,其中每个位的值表示对应位置的元素是否存在或满足某种条件。 位图可以用于解决一些特…

1.8 函数的连续性与间断点(二)

🙌作者简介:数学与计算机科学学院出身、在职高校高等数学专任教师,分享学习经验、生活、 努力成为像代码一样有逻辑的人! 🌙个人主页:阿芒的主页 ⭐ 高等数学专栏介绍:本专栏系统地梳理高等数学…

利用MATLAB制作DEM山体阴影

在地理绘图中,我们使用的DEM数据添加山体阴影使得绘制的图件显得更加的美观。 GIS中使用ArcGIS软件就可以达到这一目的,或者使用GMT,同样可以得到山体阴影的效果。 本文提供了一个MATLAB的函数,可以得到山体阴影。 clear all;c…

C#中窗体之间的传值操作(传递值和获取返回值)

在C#的应用程序开发中,窗体之间的传值操作是不可避免会经常遇到的操作。   比如,在一个窗体中调用另外一个窗体、传递值并且得到返回值,通常情况下有哪些方法呢?   一般情况下,通过工程项目的公有变量、窗体的公有…

React 中 ref 如何使用?

在React 中要使用 ref ,首先要创建一个新的对象 // 创建 ref 对象于jsx 绑定const inputRer useRef(null);在使用 ref 时不要在组件渲染时使用 ref 进行 dom 操作,因为此时ref 还没有值,会报错 (注意:操作文本框时尽…

AI面试官:LINQ和Lambda表达式(二)

AI面试官:LINQ和Lambda表达式(二) 当面试官面对C#中关于LINQ和Lambda表达式的面试题时,通常会涉及这两个主题的基本概念、用法、实际应用以及与其他相关技术的对比等。以下是一些可能的面试题目,附带简要解答和相关案…

解放Linux内存:释放缓存(linux释放缓存)

随着软件越来越复杂,内存变得越来越宝贵。尤其是在Linux系统上,内存管理策略十分重要。它不仅可以帮助系统保持高效运行,而且也能够让程序有更多的空间来运行,避免系统出现假死和其他性能问题。 在Linux系统中,释放缓…

《面试1v1》如何能从Kafka得到准确的信息

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

安防视频管理平台GB设备接入EasyCVR, 如何获取RTMP与RTSP视频流

安防视频监控平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,比…

基于粒子群优化算法的分布式电源选址与定容【多目标优化】【IEEE33节点】(Matlab代码实现)

目录 💥1 概述 1.1 目标函数 2.2 约束条件 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 💥1 概述 分布式电源接入配电网,实现就地消纳,可以提高新能源的利用率、提高电能质量和降低系统网损…

网络渗透入门指南

目录 简介: 1. 什么是网络渗透? 2. 渗透测试类型 1.黑盒测试 2.白盒测试 3.灰盒测试 3. 渗透测试步骤 3.1 信息收集 3.2 漏洞扫描与评估 3.3 漏洞利用 3.4 特权升级与持久性访问 3.5 横向移动 3.6 数据获取与报告 实例: 总结 简…