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

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

文章目录

  • 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.rhkb.cn/news/384668.html

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

相关文章

日记审计遵守合规安全要求

一、什么是日志审计系统 日记审计系统是一种用于记录、监视和分析系统日志的工具或系统。它主要用于帮助组织实时监控与分析各种事件和行为的日志记录,以便检测潜在的安全威胁,了解系统性能和进行故障排除。日志审计系统通常能够收集、存储和分析来自各…

.env.local 配置本地环境变量 用于团队开发

.env.local 用途:.env.local 通常用于存储本地开发环境中的环境变量。这些变量可能包括敏感数据或特定于单个开发者的设置,不应该被提交到版本控制系统中。优先级:在大多数框架中,.env.local 文件中的变量会覆盖其他 .env 文件中…

vite环境下使用bootstrap

环境 nodejs 18 pnpm 初始化 pnpm init pnpm add -D vite --registry http://registry.npm.taobao.org pnpm add bootstrap popperjs/core --registry http://registry.npm.taobao.org pnpm add -D sass --registry http://registry.npm.taobao.org新建vite.config.js cons…

opencv 按键开启连续截图,并加载提示图片

背景图小图 键盘监听使用的是pynput 库 保存图片时使用了年月日时分秒命名 原图: from pynput import keyboard import cv2 import time# 键盘监听 def on_press(key):global jieglobal guanif key.char a:jie Trueelif key.char d:jie Falseelif key.char…

SpringBoot启动命令过长

Error running DromaraApplication: Command line is too long. Shorten command line for DromaraApplication or also for Spring Boot default configuration?

LeetCode 热题 HOT 100 (010/100)【宇宙最简单版】

【链表】No. 0206 反转链表 【简单】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xf…

轻松学EntityFramework Core--模型创建

一、使用代码优先(Code-First)创建模型 Code-First 方法是 EF Core 提供的一种用于定义模型的方式,它允许开发人员通过编写 C# 类来定义数据库模式,再通过迁移命令生成数据库表。下面我们来一起看一下代码优先如何使用。 1.1、创…

问题记录-SpringBoot 2.7.2 整合 Swagger 报错

详细报错如下 报错背景,我将springboot从2.3.3升级到了2.7.2,报了下面的错误: org.springframework.context.ApplicationContextException: Failed to start bean documentationPluginsBootstrapper; nested exception is java.lang.NullPo…

MySQL练手 --- 1789. 员工的直属部门

题目链接:1789. 员工的直属部门 这道题虽然是个简单题,但是"坑"倒是不少,所以记录一下 思路: 题目要干: 一个员工可以属于多个部门。当一个员工加入超过一个部门的时候,他需要决定哪个部门是…

导航网站WP主题/WP黑格导航主题BlackCandy-简约酷黑色高逼格+焕然一新的UI设计

源码简介: 导航网站WP主题-WP黑格导航主题BlackCandy,它有着简约酷黑色高逼格,而且有焕然一新的UI设计。它是一个简约漂亮的 WordPress 自媒体主题。黑格网址导航主题,自适应电脑端和手机端。 BlackCandy-V2.0这次全新升级了&am…

mac M1安装Roop教程及所遇到的问题

1.安装miniconda,下载地址: 按 Python 版本划分的最新 Miniconda 安装程序链接:https://docs.anaconda.com/miniconda/miniconda-other-installer-links/ 下载后直接默认安装即可。 我用的是:Python3.10对应的Miniconda 2.下载…

哪个邮箱最安全最好用啊

企业邮箱安全至关重要,需保护隐私、防财务损失、维护通信安全、避免纠纷,并维持业务连续性。哪个企业邮箱最安全好用呢?Zoho企业邮箱,采用加密技术、反垃圾邮件和病毒保护,支持多因素认证,确保数据安全合规…

nodejs - express 学习笔记

express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方网址:https://www.expressjs. com.cn/ 简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用(HTTP 服务&am…

EasyMedia转码rtsp视频流flv格式,hls格式,H5页面播放flv流视频

EasyMedia转码rtsp视频流flv格式,hls格式 H5页面播放flv流视频 文章最后有源码地址 解决海康视频播放视频流,先转码后自定义页面播放flv视频流 先看效果,1,EasyMedia自带的页面,这个页面二次开发改动页面比较麻烦 …

秋叶大神中文版Stable Diffusion下载安装使用教程

Stable Diffusion是什么? Stable Diffusion是一款开源的AI绘画软件,于2022年发布,由CompVis、Stability AI和LAION的研究人员创建。该软件具有出色的图像生成功能,使用户能够从头开始绘制作品,也可以使用现有的图像进…

Sentinel限流规则详解

上一期教程讲解了 Sentinel 的快速入门:Sentinel快速入门,这一期主要讲述 Sentinel 的限流规则 簇点链路 簇点链路就是项目内的调用链路(Controller -> Service -> Mapper),链路中被监控的每个接口就是一个资源…

Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署

目录 环境准备 导入项目包 配置jenkins 构建项目 配置项目上线 修改项目代码测试 环境准备 本实操项目环境基于https://blog.csdn.net/Lzcsfg/article/details/140359830 首先在node01主机中操作,本次操作需要java8的版本,将之前安装的java17卸…

Shell编程之正则表达式与文本三剑客

目录 一、正则表达式 1.引言--什么是正则表达式 1.1正则表达式的功能 2.基础正则表达式(BRE) 2.1特殊字符 2.2定位符 2.3非打印字符 3.扩展正则表达式(ERE) 4.元字符操作的案列 二、命令小工具 1.cut:列截取工具 2.sort排序 …

请你谈谈:spring bean的生命周期 - 阶段5:BeanPostProcessor前置处理-自定义初始化逻辑-BeanPostProcess后置处理

BeanPostProcessor的postProcessBeforeInitialization方法是在bean的依赖注入(即属性填充)完成后,但在bean的初始化回调(如PostConstruct注解的方法或InitializingBean接口的afterPropertiesSet方法)之前被调用的。 具…

大数据管理中心设计规划方案(可编辑的43页PPT)

引言:随着企业业务的快速发展,数据量急剧增长,传统数据管理方式已无法满足高效处理和分析大数据的需求。建立一个集数据存储、处理、分析、可视化于一体的大数据管理中心,提升数据处理能力,加速业务决策过程&#xff0…