Linus: vim编辑器的使用,快捷键及配置等周边知识详解

news2024/11/16 0:21:44

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • vim的安装
    • 创建新用户 adduser + 用户名
      • Linus是个多用户的操作系统
      • 是否有创建用户的权限
        • 查看当前用户身份:whoami**
      • 怎么创建
      • 设置密码passwd
      • sudo提权(sudo输入的是用户的密码)
        • 普通用户切换成root:su
        • 修改sudoers
        • 易犯错误
  • vim三种常见模式
    • 命令模式
      • 复制粘贴:yy+p
      • 撤销u与撤销复原ctrl+r
      • 剪切dd
      • 在文本中进行快速移动
      • 大小写切换和删除字符
      • 替换模式shift+r**
      • 保存退出:shift+zz
      • 批量化注释(比较复杂)
      • 批量化去注释
    • 插入模式
    • 底行模式
  • vim的配置
    • vim的原理
    • 手动配置
    • 一键配置


vim的安装

因为vim的配置在每个用户上面是不一样的.跟我们的windows一样,可以进行个性化设置.下面我给大家从创建一个新用户开始,一步步教学.
root用户安装vim
指令:yum -y install vim
yum install vim 表示安装vim,-y(yes)表示确定安装.
在这里插入图片描述
因为我提前安装好了,所以它显示nothing to do.

创建新用户 adduser + 用户名

Linus是个多用户的操作系统

首先,Linus和windows一样,是个多用户的操作系统.也就是你可以同时拥有多个用户.

[root@iZ2vc7kou0oyop7xcabvtoZ ~]# ll /home
total 8
drwx------ 3 admin admin 4096 Jul 22 18:00 admin
drwx------ 7 king  king  4096 Jul 23 18:01 king

我们可以用ll /home 查看我们当前系统有几个一般用户.我当前系统有两个一般用户:admin和king.

是否有创建用户的权限

查看当前用户身份:whoami**
[root@iZ2vc7kou0oyop7xcabvtoZ ~]# whoami
root

root是超级管理员,基本啥事都能干.

[king@iZ2vc7kou0oyop7xcabvtoZ root]$ whoami
king

一般用户也可以进行创建.但是一般用户要先对sudo进行提权
sudo提权相当于给这个用户加进白名单,代表这个用户值得信任,让这个用户有root的权力.

怎么创建

在root用户下:adduser + 用户名
在这里插入图片描述
在家目录就可以看到新用户了
在这里插入图片描述

设置密码passwd

passwd:设置密码
在这里插入图片描述

sudo提权(sudo输入的是用户的密码)

没提权前:

[king@iZ2vc7kou0oyop7xcabvtoZ root]$ sudo adduser shh
[sudo] password for king: 
king is not in the sudoers file.  This incident will be reported.

在linus系统中有一个文件sudoers,里面就记载着这个"白名单".要修改这个文件得把用户切换成root

普通用户切换成root:su

su输入的密码是root的密码

[king@iZ2vc7kou0oyop7xcabvtoZ root]$ whoami
king
[king@iZ2vc7kou0oyop7xcabvtoZ root]$ su
Password: 
[root@iZ2vc7kou0oyop7xcabvtoZ ~]# whoami
root

修改sudoers
[root@iZ2vc7kou0oyop7xcabvtoZ ~]# ll /etc/sudoers
-r--r-----. 1 root root 4358 Dec 17  2023 /etc/sudoers

要修改sudoers,需要我们提前安装好vim.所以我们先用root用户安装vim,

在root用户下:vim /etc/sudoers

[root@iZ2vc7kou0oyop7xcabvtoZ king]# vim /etc/sudoers

我们首先会看到这样的一堆代码,记住:先别慌.
在这里插入图片描述
我们先按下shift键+分号键; ->其实相当于输入冒号
在这里插入图片描述
左下角会出现一个冒号的标志,代表vim进入底行模式(先别管是什么,我下面会讲).
输入命令:set nu,然后回车
在这里插入图片描述
鼠标下拉(或者一直按住j键),滑到100行.
在这里插入图片描述
输入yy(复制) + p(拷贝) .会拷贝出新的一行.
这些指令下面都会一一提及.
在这里插入图片描述
先按esc键,从底行模式切换到命令模式.
再按i键 从命令模式切换到插入模式.

插入模式就跟我们平常写代码一样可以正常输入.
最后再把root改成我们新建的用户名.
在这里插入图片描述
上面的做完,就可以退出了.esc+(shift+;)->回到底行模式.输入:wq!
w->写入,q->退出.!->强制

易犯错误

用一般用户访问sudoers
在这里插入图片描述
左下角会出现Permission Denied->拒绝访问.因为你是一般用户,看不了sudoers.
那怎么除去呢?
shift+; 进入底行模式
q! 因为一般用户对sudoers没有读写权限,没有w.直接q!->强制退出,

vim三种常见模式

在这里插入图片描述
这是vim三种模式的关系图,下面我会一一讲解.
命令模式:通过命令来控制文本的逻辑(例如拷贝,粘贴)
插入模式:进行编辑
底行模式:包括但不限于让vim和shell进行交互.(wq->写入并关闭)

在这里插入图片描述
指令:touch test.c 新建一个test.c的普通文件

[root@iZ2vc7kou0oyop7xcabvtoZ king]# vim test.c

按下i ,进入编辑模式.左下角有INSERT的标记代表进入成功.
然后按下esc+(shift+;)进入底行模式.

输入set nu设置行号
在这里插入图片描述

命令模式

复制粘贴:yy+p

在命令模式:光标在第四行,按下yy(复制)+p(拷贝),在下一行拷贝出与上一行一样的内容.
在这里插入图片描述
LInus支持一次拷贝多行和一次复制多次
n+yy:一次拷贝多行
演示:我在第四行按下3yy+p
在这里插入图片描述
n+p:一次复制出多份
演示:yy+99p 一次打印出99份printf(“hello vim\n”);
在这里插入图片描述

撤销u与撤销复原ctrl+r

相当于windows的ctrl+z撤销 ctrl+r复原
在这里插入图片描述

按下u
在这里插入图片描述
ctrl+r
在这里插入图片描述
注意,左下角一直有提示

剪切dd

相当于windows的ctrl+x.剪切的功能不只有删除
n+dd:一次剪切n行
按下5dd
在这里插入图片描述
按下p,粘贴你所剪切的内容.
在这里插入图片描述

在文本中进行快速移动

在这里插入图片描述

定位到行的开始:^
在这里插入图片描述

定位到行的结束:$
在这里插入图片描述
定位到文本的最开始:gg
在这里插入图片描述

定位到文本的最后一行:shift+g
在这里插入图片描述
定位到文本的第n行:n+shift+g
这里我敲的是5+shift+g
在这里插入图片描述
上下左右的移动
老版的电脑没有现在的上下左右
在这里插入图片描述
所以用hjkl来表示左下上右.
速记:h和l在四个数字的最左边和最右边,分别表示左和右.
j可以想成jump,向下;k想成king,国王一般坐在上面.
n+hjkl 一次跳转n行

一次跳转一个单词w,b
前进一个单词:w
后退一个单词:b

大小写切换和删除字符

大小写切换:~
在这里插入图片描述
一行内删除字符
在这里插入图片描述
删除光标后面的:n+x
演示:5+x
在这里插入图片描述删除光标前面的:n+shift+x
演示:5+shift+x
在这里插入图片描述

替换模式shift+r**

在这里插入图片描述
左下角的REPLACE代表进入替换模式.

保存退出:shift+zz

跟进入底行模式再wq功能一样.

批量化注释(比较复杂)

ctrl+v,hjkl区域选择,j,shift+i,//,esc*2.
演示:
ctrl+v,10j
在这里插入图片描述
shift+i,//
在这里插入图片描述
esc*2
在这里插入图片描述

批量化去注释

ctrl+v,hjkl区域选择,dd
ctrl+v,5j,l 相当于选中五行的//
在这里插入图片描述
dd
dd

插入模式

命令模式->插入模式
a:在下一个字符进入插入模式
i:在当前字符进入插入模式
o:新建一行并在该行进入插入模式

底行模式

命令模式->底行模式:shift+;
w->保存,q->退出,!->强制
在这里插入图片描述
vs+文件名:进行分屏操作. 例:vs test7-24.c
在不同文件进行切换:ctrl+ww
在这里插入图片描述
光标在哪一个文件,代表正在操作哪一个文件.
设置行号:set nu 取消:nonu
在这里插入图片描述
不退出vim,执行xshell的命令:!commond
例如:用man手册来查看fgets这个函数的使用.不用退出到shell里进行操作.
直接:!man fgets,然后回车
在这里插入图片描述
在这里插入图片描述

看完直接按q,然后回车.

搜索关键字./关键字
演示:/main
在这里插入图片描述
两个文件的main函数的光标都会高亮

vim的配置

vim的原理

vim不是简单的去执行可执行程序.它会读取若干文件,例如…vimrc文件

手动配置

先创建.vimrc的文件

[shh@iZ2vc7kou0oyop7xcabvtoZ ~]$ touch .vimrc

然后进入.vimrc的文件

[shh@iZ2vc7kou0oyop7xcabvtoZ ~]$ vim .vimrc
 set nu          " 设置显示行号
 set showmode    " 设置在命令行界面最下面显示当前模式等
 set ruler       " 在右下角显示光标所在的行数等信息
 set autoindent  " 设置每次单击Enter键后,光标移动到下一行时与上一行的起始字符对齐
 syntax on       " 即设置语法检测,当编辑C或者Shell脚本时,关键字会用特殊颜色显示

在这里插入图片描述
然后退出再进入test.c文件就会发现vim已经"悄悄进化"了.在这里插入图片描述

一键配置

在gitee上面早就有大佬帮我们搞好了.
我们在Linus上面直接输入.不推荐在root下执行,建议在一般用户执行

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

这个是网站:VimForCpp,里面可以看到这个配置文件的功能.
在这里插入图片描述

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

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

相关文章

锁相环 vivado FPGA

原理 同步状态/跟踪状态:相位差在2kπ附近,频率差为0到达上述状态的过程称为捕获过程锁相环的捕获带:delta w的最大值,大于这个值的话就不能捕获鉴相器(PD-phase discriminator):相乘加LPF&…

从0到1使用Docker部署java项目详解

Docker部署Java项目相比传统部署方式,在环境一致性、配置管理、可扩展性和安全性等方面具有显著优势。然而,它也带来了学习成本、资源消耗和复杂度增加等挑战。 云服务器 白嫖阿里云服务 通过免费试用方式获取自己的阿里云服务器。当然,如…

SQL-REGEX-常见正则表达式的使用

SQL-REGEX-常见正则表达式的使用 在SQL中,正则表达式(Regex)的使用可以帮助进行更灵活和精确的模式匹配和数据筛选。不同的数据库管理系统对于正则表达式的支持略有差异,但大体都是相似的。 Tips: 模式描述匹配内容…

优选算法之前缀和(上)

目录 一、【模板】一维前缀和 1.题目链接:DP34【模板】前缀和 2.题目描述: 3.解法(前缀和) 🍃算法思路: 🍃算法代码: 二、【模板】二维前缀和 1.题目链接:DP35【…

海外短剧CPS分销推广系统平台源码搭建方案介绍

随着全球内容消费市场的日益繁荣,短剧作为一种新兴的娱乐形式,正在迅速赢得全球观众的喜爱。特别是当国内短剧以其独特的创意和精湛的制作技艺,吸引了大量海外观众的关注时,短剧出海成为了国内影视行业的一大趋势。接下来为大家介…

HarmonyOS三方库的使用

系统组件难以提供比较优秀的界面,需要第三方库来实现一些比较好看的界面效果 三方库的获取: 开源社区支持OpenHarmony-TPC 和 Openharmony三方库中心仓 先目前已经拥有各种各样的三方库,包括UI 图片 动画 网络 数据存储 工具类 多媒体 安全等…

Cookie与Session 实现登录操作

Cookie Cookie 是网络编程中使用最广泛的一项技术,主要用于辨识用户身份。 客户端(浏览器)与网站服务端通讯的过程如下图所示: 从图中看,服务端既要返回 Cookie 给客户端,也要读取客户端提交的 Cookie。所…

Android开发中使用Base64类库进行密码加密报错解决

在对密码加密采用sdk自带类库Base64加密时,函数可跳转,能够索引到类函数位置,但是运行出现报错。 使用情况: 引用:import java.util.Base64; 调用:String decode new String(Base64.getEncoder().encod…

实战练习之Linux上实现shell脚本自动化编程

实验拓扑要求 主机环境描述 注意: 172.25.250.101-172.25.250.105 共 5 个 IP 地址由servera.exam.com服务器进行提供。172.25.250.106 由 serverb.exam.com 服务器进行提供。 需求描述 1. 172.25.250.101 主机上的 Web 服务要求提供 www.exam.com Web站点&#…

模拟ADG主库归档文件丢失,备库出现gap(增量备份解决)

文章目录 一、说明二、环境信息2.1.主备库环境信息2.2.检查主备是否同步正常 三、模拟日志断档3.1.模拟主库归档文件丢失3.2 查看主库状态出现GAP 四、RMAN增量备份恢复备库同步4.1 RMAN增量恢复备库4.2 开启备库redo同步4.3 主备库验证同步 一、说明 模拟Oracle主库归档文件丢…

C++图书管理系统

目录 实现功能 用户管理 图书管理 借阅与归还 未归还图书 部分效果图 结构体 Book 结构体 User 结构体 源代码 编译时在连接器命令行加入 完整代码 实现功能 用户管理 添加用户:输入用户ID、用户名和密码…

简单的git分支mergepush权限设定

简单的git分支merge&push权限设定 1. 需求 公司的分支很多,主要的有master分支,很多的业务需求分支,开发测试分支(uat,uat2,sit,sit2),这些分支当前是谁都可以进行提交,但是如果在分支上直接修改,或者…

3.1、数据结构-线性表

数据结构 数据结构线性结构线性表顺序存储和链式存储区别单链表的插入和删除练习题 栈和队列练习题 串(了解) 数据结构 数据结构该章节非常重要,上午每年都会考10-12分选择题下午一个大题 什么叫数据结构?我们首先来理解一下什…

如何查找下载安装安卓APK历史版本?

在安卓设备上,有时候我们可能希望安装某个软件的旧版本,可能是因为新版本不兼容、功能改变不符合需求或是其他原因。 安卓系统并不像iOS那样提供直观的历史版本下载界面。 不过,通过一些第三方市场和网站,我们仍然可以找到并安装…

通信原理实验六:实验测验

实验六 实验测验 一:测验内容和要求 测试需要完成以下几个步骤: 配置好以下网络图;占总分10%(缺少一个扣一分)根据下面图配置好对应的IP和网关以及路由等相关配置,保证设备之间连通正常;占总…

数据结构经典测试题4

1. #include <stdio.h> int main() { char *str[3] {"stra", "strb", "strc"}; char *p str[0]; int i 0; while(i < 3) { printf("%s ",p); i; } return 0; }上述代码运行结果是什么&#xff1f; A: stra strb strc B: s…

前端面试宝典【Javascript篇】【2】

欢迎来到《前端面试宝典》&#xff0c;这里是你通往互联网大厂的专属通道&#xff0c;专为渴望在前端领域大放异彩的你量身定制。通过本专栏的学习&#xff0c;无论是一线大厂还是初创企业的面试&#xff0c;都能自信满满地展现你的实力。 核心特色&#xff1a; 独家实战案例…

Flink之重启策略

目录 1、固定延迟重启策略 2、失败率重启策略 3、不重启策略 在设置完 CheckPoint() 检查点机制后&#xff0c;不设置重启策略的话&#xff0c;&#xff0c;可以无限重启程序&#xff0c;那么设置的检查点机制也就没有什么意义了。因此&#xff0c;在生产实践中&#xff0c;…

笔记本检测工具 | 爱回收笔记本质检系统 v1.9.6

软件简介 爱回收笔记本质检系统是一款专为笔记本电脑硬件检测而设计的软件。它以其快速的检测速度、简便的操作流程和直观的检测结果&#xff0c;为用户提供了一种高效、易懂的硬件检测解决方案。 这款软件不仅适用于对电脑硬件有一定了解的用户&#xff0c;也特别适合对硬件…

Sentinel隔离、降级、授权规则详解

文章目录 Feign整合Sentinel线程隔离熔断降级授权规则自定义异常结果 上一期教程讲解了 Sentinel 的限流规则&#xff1a; Sentinel限流规则&#xff0c;这一期主要讲述 Sentinel 的 隔离、降级和授权规则 虽然限流可以尽量避免因高并发而引起的服务故障&#xff0c;但服务还…