【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!强制退出。到这就已经可以使用了。
相关文章:

【lesson5】linux vim介绍及使用
文章目录 vim的基本介绍vim的基本操作vim常见的命令命令模式下的命令yypnyynpuctrlrGggnG$^wbh,j,k,lddnddnddp~shiftrrnrxnx 底行模式下的命令set nuset nonuvs 源文件wq!command(命令) vim配置解决无法使用sudo问题 vim的基本介绍 首先vim是linux下的…...

【玩转Linux】Linux输入子系统简介
(꒪ꇴ꒪ ),hello我是祐言博客主页:C语言基础,Linux基础,软件配置领域博主🌍快上🚘,一起学习!送给读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误&#x…...

grid map学习笔记2之grid map的一些常规定义和功能包说明
文章目录 0 引言1 常规定义1.1 单层grid map1.2 多层grid map1.3 迭代器类别1.4 移动grid map的位置 2 功能包2.1 grid_map_rviz_plugin2.2 grid_map_sdf2.3 grid_map_visualization2.3.1 订阅的主题2.3.2 发布的主题 2.4 grid_map_filters 0 引言 grid map学习笔记1已成功在U…...
Python-文件操作
Python文件操作 1. 打开文件 使用open()函数打开文件,指定文件名和模式,常用模式有: r - 读取(默认)w - 写入(会先截断文件)a - 追加b - 二进制模式t - 文本模式(默认) - updating (reading and writing) f open(data.txt,r) # 打开data.txt文件用于读取2. 读取文件 f.re…...

windows中注册redis服务启动时报1067错误
注册完redis服务,打开计算机 服务时确实有redis服务存在,但是点击启动时却报1067错误,而命令行用redis-server.exe redis.windows.conf 命令却也可以启动 查看6379的端口也没有被占用(netstat -ano | findstr :6379) …...

大数据面试题:HBase的RegionServer宕机以后怎么恢复的?
面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)HBase一个节点宕机了怎么办;2)HBase故障恢复 参考答案: 1、HBase常见故障 导…...

ansible的脚本——playbook剧本
目录 一、playbook的组成 二、 playbook安装httpd服务 1.编写playbook剧本 2.运行playbook 三、定义、引用变量 四、 指定远程主机sudo切换用户 五、when条件判断 六、迭代 七、Templates 模块 1.先准备一个以 .j2 为后缀的 template 模板文件,设置引用的变…...
【系统监控程序】
用python编写一个系统监控程序,需要每隔一秒钟记录系统每个进程的资源占用和整体的资源占用情况,并输出成json,保存到文本文件。 import psutil import json import timedef get_process_usage():process_list []for proc in psutil.proces…...

计算机论文中名词翻译和解释笔记
看论文中一些英文的简写不知道中文啥意思,或者一个名词不知道啥意思。 于是自己做了一个个人总结。 持续更新 目录 SoftmaxDeep Learning(深度学习)循环神经网络(Recurrent Neural Network简称 RNN)损失函数/代价函数(Loss Function)基于手绘草图的三维模型检索(Ske…...
读书笔记-《ON JAVA 中文版》-摘要20[第十九章 类型信息-1]
文章目录 第十九章 类型信息1. 为什么需要 RTTI2. Class 对象2.1 Class 对象2.2 类字面常量2.3 泛化的 Class 引用 3. 类型转换检测4. 注册工厂5. 类的等价比较6. 反射:运行时类信息7. 自我学习总结 第十九章 类型信息 RTTI(RunTime Type Information&am…...
3、Linux驱动开发:模块_传递参数
目录 🍅点击这里查看所有博文 随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记…...

基于 ThinkPHP 5.1(稳定版本) 开发wms 进销存系统源码
基于ThinkPHP 5.1(LTS版本)开发的WMS进销存系统源码 管理员账号密码:admin 一、项目简介 这个系统是一个基于ThinkPHP框架的WMS进销存系统。 二、实现功能 控制台 – 权限管理(用户管理、角色管理、节点管理) – 订…...
全面解析 SOCKS5 代理和 HTTP 代理在网络安全与爬虫应用中的技术对比与应用指南
一、SOCKS5 代理和 HTTP 代理的基本原理 SOCKS5 代理:SOCKS5 是一种网络协议,可以在传输层代理 TCP 和 UDP 请求。它不解析请求内容,仅在客户端和代理服务器之间建立连接,并转发数据。SOCKS5 代理支持众多网络协议和端口类型&…...
DevOps系列文章 之 docker 制作kafka镜像
Docker制作Kafka镜像教程 概述 本教程将指导你如何使用Docker制作一个Kafka镜像。Kafka是一个高性能、分布式的消息队列系统,用于处理大规模的实时数据流。使用Docker制作Kafka镜像可以方便地部署和管理Kafka集群。 整体流程 下面是制作Kafka镜像的整体流程…...

iPhone 安装 iOS 17公测版(Public Beta)
文章目录 步骤1. 备份iPhone资料步骤2. 申请iOS 17 公测Beta 资格步骤3. 下载iOS 16 Beta 公测描述档步骤4. 选择iOS 17 Beta 公测描述档更新项目步骤5. 升级iOS 17 Public Beta 公开测试版 苹果已经开始向大众释出首个iOS 17 公开测试版/ 公测版( iOS 17 Public Beta)…...

Spingboot yaml 配置文件及数据读取
属性配置在这里插入图片描述 修改服务器端口 → server.port80 修改 banner → spring.main.banner off(关闭)/console(控制台)/log(日志) 日志 → logging.level.rootinfo Common Application Properties 配置文件分类 优先级 如果三种文件共存时,优先级为&am…...

vue中使用axios发送请求时,后端同一个session获取不到值
问题描述: 在登录页面加载完成后通过axios请求后端验证码接口(这时后端会生成一个session用于保存验证码数值),当输入完用户名、密码、验证码后请求登录接口,报错验证码输入错误,打印后端保存验证码的sessi…...

html请求谷歌音频跨域问题(谷歌翻译接口)虚拟机ping不通google(下载谷歌音频、下载百度翻译音频)
文章目录 调用谷歌翻译接口,尝试了几种方案,都提示跨域不行第一种(通过js代码获取音频文件的Blob对象,提示跨域了)代码结果 第二种(尝试新窗打开音频url,404,估计也是跨域了…...
【设计模式|结构型】享元模式(Flyweight Pattern)
概述 享元模式(Flyweight Pattern)是一种结构型设计模式,它旨在通过共享对象来减少系统中的对象数量,以便在有限的内存中节省空间和提高性能。在享元模式中,对象分为两部分:内部状态(Intrinsic…...
最小覆盖子串(JS)
最小覆盖子串 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...