Linux编辑器-vim

news2024/11/18 9:27:48

一、vim的基本概念

我们讲解 vim 的三种模式 ( 其实有好多模式,目前掌握这 3 种即可 ), 分别是命令模式( command mode)、插入模式(Insert mode)和底行模式(last line mode ,各模式的功能区分如下:
  
  • 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
  • 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下, shift+; 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 : help vim-modes

二、vim的基本操作

1.模式的切换

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面 

例如: vim test.c

我们正常打开vim就是进入命令模式。

[正常模式]切换至[插入模式]

  • 输入 a
  • 输入 i
  • 输入 o

[正常模式]切换至[末行模式]

按下 shift + ;

 [插入模式]和[末行模式]切换至[正常模式]

按下 Esc 即可回到正常模式。

退出vim及保存文件

[末行模式]下在命令行中输入wq,即可保存文件退出。当然也可以 !q 强制退出,但是不会保存文件。

转化操作图:

2.命令模式操作集

  • 光标操作

shift + 4 = $跳转到行最右边
shift + 6 = ^跳转到行的最左边
shift + g = G跳转到最底部
gg 跳转到顶部
n + shift + g = nG跳转到指定行,n代表的是行号
w向后按照单词移动
b向前按照单词移动
  •  光标移动

h向左移动
j向上移动
k向下移动
l向右移动
  • 撤销操作和取消撤销

u撤销操作
ctrl + r取消u操作
  • 文本复制相关

yy

复制光标所在行内容(nyy :对光标所在行进行多行复制)
p粘贴(np:对复制的内容进行多行粘贴)
dd删除光标所在行(支持ndd)
ndd + p剪切操作
  • 文本编辑

shift + ` = ~

大小写转换

r替换光标所在的一个字符,支持nr
shift + r = R批量化替换

x 和 X

行内删除,x是向后删除,X是向前删除
cw 和 cnw

cw:删除光标所在的字到字尾,并进入插入模式

cnw:删除n段字,并进入插入模式

  

3.末行模式操作

set nu/nonu

set nu 是设置每一行之前显示行号

set nonu是取消设置行号

vs + 文件名分屏
ctrl + ww光标切屏
!+ 命令执行Linux命令
:%s/printf/cout/g将全文的printf换成cout (printf 和 cout 可以换成别的内容)

三、vim的基本配置

1.vim的配置原理

vim的配置是一人一份的,每个用户配置的是自己的,不会影响别人。

每一个人虽然用的是同一个vim程序,但是,大家用的是不同的vim配置。每一个用户在自己的家目录下都有一个配置文件 .vimrc (第一进家目录是没有的,需要自己创建。)

2.vim的配置

我们vim打开 .vimrc 文件,加入配置的命令就好了。例如:

设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4
还可以自行搜索一些配置的命令。

3.一键配置

有已经配置的好的,我们点开链接:VimForCpp: 快速将vim打造成c++ IDE (gitee.com)

下翻找到这个命令:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

直接复制粘贴到Linux的命令行中,确认就行了,然后输入一次root密码后就一键配置成功了。

可以看到全部都配置好了。唯一不足之处在于配一行的自动缩进是2格(我这里已经改成了4格)。

我们进入 .vimrc 文件之后,进入末行模式输入 /2 就可以找到这里。我们将2改成4即可完成配置。


四、配置 sudo 权限

前文我们提到过想要使用 sudo 权限,需要一定的操作。

学完了vim 的使用,我们就可以学习怎么来配置用户的 sudo 权限了。

我们切换到root用户,输入 ls /etc/sudoers,一定要有这个文件才能配置。

vim打开 /etc/sudoers,我们翻到100行左右的时候会有这个内容 ,yy复制一下100行内容,p粘贴一下,把root改成需要提权的用户就好了。

因为文件是只读的,这时候有些人可能末行模式输入 wq 退出不了,这时候输入 w!后再输入 q!强制保存退出。

这就完成了配置。

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

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

相关文章

OpenCV4入门到进阶

OpenCV4入门到进阶 第1章 介绍与学习指南 第2章 OpenCV开发环境搭建 第3章 图像&视频的加载与展示 第4章 OpenCV必知必会基础 第5章 OpenCV实现图形的绘制 第6章 OpenCV的算术与位运算 第7章 图像基本变换 第8章 OpenCV中的滤波器 第9章 OpenCV中的形态学 第10章 目标识别…

Redis事务以及缓存雪崩,缓存穿透,缓存击穿简介及解决策略

事物的基本操作 *开启事务 multi *作用 设定事物的开启位置,此指令执行后,后续的所有指令均加入到事物中 *执行事物 exec *作用 设定事物的结束位置,同时执行事物,与multi成对出现,成对使用 注意:加入事物的命令暂时进入到任务队列中,并没有立即执行,只有执行exec命令才开始执行…

商业与新消费:从2022到2023

【潮汐商业评论/原创】 “暴风雨结束后,你不会记得自己是怎样活下来的,你甚至不确定暴风雨真的结束了。但有一件事是确定的:当你穿过暴风雨,你就不再是原来那个人。”——村上春树转眼间,时间的齿轮已经从2022滑向了20…

开发中常用、实用命令记录总结

开发中常用、实用命令记录总结前言Linux修改Linux主机名称设置Linux虚拟内存Linux的网络和IO测试Linux查看内存、CPU占用最多的程序防火墙Firewall命令系统管理systemctl命令Centos的yum源设置Windos进程、端口、网络连接快速调出Cmdtext文本文件妙用任务计划Docker青龙面板忘记…

tomcat组件-Server

目录 概述 tomcat 启动 大致流程 Server StandardServer 利用8005端口关闭tomcat 总结 概述 了解一个程序,一定要知道他是干什么的,以及内部架构如何支撑这么干的,以及牵扯的到的概念、模式等知识点的解析(这里只介绍组件)。 Tomcat是…

软件测试 | 简历中应该如何描述才能体现出软技能的实力 ?

很多同学写简历的时候,真的是非常纠结的。技术能力怎么写?工作经历怎么写?项目经验怎么写?其中以拥有多个项目经验的同学和没有项目经验的学生最为纠结。前者是项目经验太多了,工作多年,每个项目经验要是都…

2023年全国最新消防设施操作员模拟试题题库及答案

百分百题库提供消防设施操作员考试试题、消防设施操作员考试预测题、消防设施操作员考试真题、消防设施操作员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 15.()是平时不能满足水灭火设施所需的工作压力和流量…

以太网交换基础

以太网协议 以太网是当今现有局域网(Local Area Network,LAN)采用的最通用的通信协议标准。 以太网是建立在CSDA/CD(Carrier Sense Multiple Access/Collision Detection,载波监听多路访问) 冲突域 解决机制&#xff1…

ChatGPT 都在用的身份认证产品,你了解多少?

近期,人工智能研究公司 OpenAI 正式推出 ChatGPT,这是一种基于对话的人工智能聊天机器人模型,它能够理解自然语言并以自然语言的方式做出回应。上线不到一周,用户数已经突破 100 万大关。 上线仅 5 天用户数就突破百万大关&#…

educoder头歌数据结构 查找 第1关:实现折半查找

本文已收录于专栏 🌲《educoder数据结构与算法_大耳朵宋宋的博客-CSDN博客》🌲 任务描述 本关要求通过补全函数BSL_FindKey来实现在已排序的顺序表中查找关键码值为key的结点并返回该结点的编号。 相关知识 折半查找通常是针对顺序存储的线性表&…

SWOT分析

什么是SWOT分析?从做法到具体事例、注意点进行解说 SWOT分析法是将本公司的内部环境和外部环境作为强项(Strength)、弱点(Weakness)、机会(Opportunity)、威胁(Threat)进行梳理和分析的手法。以及把握事业现状的框架。从SWOT分析的方法到具体事例、注意事项,以图解…

砥砺前行,匠心致远|袋鼠云联合创始人、易知微CEO宁海元荣获“数字工匠 ”

近期,在余杭区数管局召开的“学习贯彻二十大,聚力建设新中心”联合主题党日活动暨余杭数改企业联盟党建联建共建机制圆桌恳谈会上,袋鼠云联合创始人、易知微CEO宁海元荣获2022年度“余杭数字工匠”,区数管局党组书记、局长周汝琴为…

【谷粒商城基础篇】商品服务开发:品牌管理

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念(第一、二章)基础环境搭建(第三章)整合SpringCloud整合SpringCloud、SpringCloud alibaba(第四、五章)前端知…

Linux进程间通信---->共享内存

文章目录什么是共享内存共享内存基本原理和共享内存有关的系统接口ftokshmgetipc相关命令查看相关共享内存信息删除相关共享内存信息shmat/shmdtshmctlipc系列设计思想总结什么是共享内存 前面我们学习了管进程间通信的一种方式—>管道。 而我们今天将要介绍的共享内存也是…

10天,几万字,源码深度解析之 Spring IOC

历时 10 天,终于把 Sping 源码系列写完了,该系列一共 5 篇,后续会整理成 PDF 教程,本文是最后一篇。 这篇文章主要讲解 IOC 容器的创建过程,让你对整体有一个全局的认识,文章没有复杂嵌套的 debug 流程&am…

SA实战 ·《SpringCloud Alibaba实战》第06章-快速搭建三大微服务并完成交互开发与测试

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 大家好,我是冰河~~ 在《SpringCloud Alibaba实战》专栏中前面的文章,我们为开发用户微服务、商品微服务和订单微服务做了充分的准备。今天…

微服务 SpringBoot 整合 Redis GEO 实现附近商户功能

文章目录⛄引言♨️广播站一、Redis GEO 数据结构用法⛅GEO基本语法、指令⚡使用GEO存储经纬度、查询距离二、SpringBoot 整合Redis 导入 店铺数据 到GEO三、SpringBoot 整合 Redis 实现 附近商户功能☁️需求介绍⚡核心源码✅附近商户效果图⛵小结⛄引言 本文参考黑马 点评项…

Spring之xml方式整合第三方框架

目录 一:概述 二:代码演示 二:Spring整合MyBatis的原理剖析 三:案例演示 一:概述 xml整合第三方框架有两种整合方案: 不需要自定义名空间,不需要使用Spring的配置文件配置第三方框架本身内容,例如&…

VScode连接本地Docker

一、安装VScode和Docker 1、vscode的安装 官网下载到最新的X64安装包,然后使用下述命令进行安装: dpkg -i code_1.73.1-1667967334_amd64.deb 安装成功之后,可以在应用的安装列表中查看到。 2、docker的安装 同上 二、创建docker的用户…

使用nginx临时搭建rtmp服务器

使用nginx临时搭建rtmp服务器 文章目录使用nginx临时搭建rtmp服务器系统环境搭建步骤RTMP服务验证由于需要研究rtmp协议交互方式及报数据格式,使用nginx临时搭建一个rtmp服务器,主要通过nginx的rtmp扩展模块实现接收RTMP推送的音视频流,同时提…