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

【Linux】Linux下的编辑器——vim


目录

一、vim的介绍

二、命令模式

2.1光标定位操作

2.2文本复制、粘贴、剪切、撤销

2.3文本操作

三、插入模式

四、底行模式

1、查看 vim的模式

 2、底行模式的分屏操作

3、不退出vim,执行指令

4、底行模式的全局替换/全局查找

4.1全局替换

4.2全局查找

五、为什么用户间的vim配置可以互不影响?

如何快速对vim进行的配置?

六、将普通用户添加至信任列表


一、vim的介绍

vim是Linux中的一款编辑器,当然是不支持调试的。但是拥有多种模式,功能强大。

二、命令模式

当打开vim时,默认是命令模式。命令模式存在的意义是提高编辑效率。

2.1光标定位操作

1、$让光标快速移动到这一行的结尾。——行右;

2、^让光标快速移动到这一行的开头。——行左;

3、G让光标快速移动到文件的最后一行开头。——底部;

4、gg让光标快速回到文件第一行开头。——顶部;

5、行数+G跳转到任意行;

6、h左、j下、k上、l右(逐字符,均支持n操作);

7、w向后、b向前按单词移动(逐单词,均支持n操作);

8、cw删除当前单词,并切换为插入模式,cnw删除n个单词,并切换为插入模式。

2.2文本复制、粘贴、剪切、撤销

1、yy复制光标所在行,nyy复制多行;

2、p粘贴,np粘贴多次;

3、u撤销,ctrl+r取消撤销;

4、dd剪切光标所在行,ndd剪切多行,ndd+p剪切粘贴;

5、x向后剪切,nx向后剪切n个;X向前剪切,nX向前剪切n个字符。

2.3文本操作

1.~将光标当前位置逐字进行大小写转换;

2、R转换为替换模式进行批量化替换;

3、r单个字符替换,nr对n个字符进行相同的替换。

三、插入模式

1、i从命令模式进入插入模式;

2、a从命令模式进入插入模式并后移一个字符;

3、o从命令模式进入插入模式并换行。

四、底行模式

1、set no显示行号,set nonu隐藏行号;

2、wq!强制保存并退出

1、查看 vim的模式

:help vim-modes//查看vim的模式

 2、底行模式的分屏操作

vs copy.c//分屏
ctrl ww//光标在分屏间的切换

3、不退出vim,执行指令

!ls//在vim中使用ls指令
!gcc text.c//使用gcc编译text.c生成a.out文件
!./a.out//运行s.out文件

4、底行模式的全局替换/全局查找

4.1全局替换

%s/printf/cout/g

s代表替换,g代表全局。将所有printf替换为cout。

4.2全局查找

/查找内容

使用/加查找内容即可进行内容的全局查找。

五、为什么用户间的vim配置可以互不影响?

虽然每一个用户都是使用同一个vim,但是vim的配置是互相不影响的,各配各的。

每一个用户在自己的家目录下,有一个属于自己的配置文件,叫做.vimrc(隐藏文件,自己创建)

例如在.vimrc中新增行号功能,可以在.vimrc中写入set nu,保存退出。

如何快速对vim进行的配置?

在gitee中搜索VimForCpp后,将该链接直接在shell中执行,即可完成配置。

六、将普通用户添加至信任列表

1、使用root用户登录

2、使用vim打开/etc/sudoers

3、找到第100行

4、在下方添加信任账户后,普通用户jly即可使用sudo提权。

相关文章:

  • JVM是什么?
  • 基于ssm广东东莞大益球队管理系统-计算机毕业设计源码+LW文档
  • 对抗生成网络GAN系列——AnoGAN原理及缺陷检测实战
  • 动态卷积条件卷积
  • 元宇宙发展演变及安全风险研究
  • 数据结构线性表之顺序表的实现
  • 基于CNN的字符型验证码识别系统设计开发[完整源码实战]
  • 【轻敲stl的大门】函数模板和类模板
  • 网络安全红队常用的攻击方法及路径
  • IMX6ULL学习笔记(10)——通过TFTP烧录Linux内核
  • 【C++】STL —— String类不会怎么办? 看文档(万字详解)
  • Spring中@Autowired注解实现原理
  • 干货!手把手教你穿透内网
  • 人家网站都免费了,你还用Python去爬?
  • 2023年上半年软考中、高级 了解一下
  • 11111111
  • Android交互
  • DataBase in Android
  • Golang-长连接-状态推送
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • interface和setter,getter
  • JavaScript 奇技淫巧
  • JavaScript设计模式与开发实践系列之策略模式
  • MySQL的数据类型
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Nacos系列:Nacos的Java SDK使用
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • sublime配置文件
  • vue-loader 源码解析系列之 selector
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 对JS继承的一点思考
  • 聊聊flink的BlobWriter
  • 深度解析利用ES6进行Promise封装总结
  • 写给高年级小学生看的《Bash 指南》
  • 一道面试题引发的“血案”
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 中文输入法与React文本输入框的问题与解决方案
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​linux启动进程的方式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​业务双活的数据切换思路设计(下)
  • # centos7下FFmpeg环境部署记录
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #Linux(权限管理)
  • #vue3 实现前端下载excel文件模板功能
  • (31)对象的克隆
  • (6)添加vue-cookie
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (办公)springboot配置aop处理请求.
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm高校实验室 毕业设计 800008
  • (四) 虚拟摄像头vivi体验