【Linux】2.2 环境基础开发工具使用——vim

news2024/11/20 23:31:03

文章目录

  • 什么是 vim
  • vim 的基本操作
  • vim 指令集
    • Normal mode 指令集
      • 插入模式
      • 复制
      • 粘贴
      • 撤销
      • 剪切
      • 光标移动
      • 删除
    • last line mode 指令集
      • 列出行号
      • 跳到文件中的某一行
      • 查找字符
      • 保存文件
  • vim 的配置


什么是 vim

  • Linux editor —— vim ——多模式的编辑器
  • 每种模式有差异,模式之间可以相互转换
  • vim 常用的 三~五 种模式
    • Normal mode(正常/普通/命令模式)
    • Insert mode (插入模式)
    • last line mode(末行/底行模式)
    • 替换模式
    • 视图模式

vim 的基本操作

在这里插入图片描述

  • 进入vim之后,是处于 [正常模式] ,要切换到 [插入模式] 才能够输入文字。
  • [正常模式] 切换至[插入模式]
    • 输入a
    • 输入i
    • 输入o
  • 退出vim及保存文件,在 [正常模式] 下,按一下 : 冒号键进入 「Last line mode」,例如:
    • : w (保存当前文件)
    • : wq (输入「wq」,存盘并退出vim)
    • : q! (输入q!,不存盘强制退出vim)

vim 指令集

Normal mode 指令集

(大部分指令都是在 Normal mode 下进行的)

插入模式

  • 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
  • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

按「a」进入插入模式:(注意观察光标随模式改变的变化
在这里插入图片描述
按「o」进入插入模式:(注意观察光标随模式改变的变化
在这里插入图片描述

复制

  • yycopy 本行
  • nyy:copy 当前行在内的以下n行的内容

在这里插入图片描述

ps. yanking 是 Vim 中拷贝命令的名字。由于 “c” 已经被用于表示 change 了,所以拷贝 (copy) 就不能再用 “c” 了。但 “y” 还是可用的。把这个命令称为 “yanking” 是为了更容易记住 “y” 这个键。

粘贴

  • p/np:从当前光标所在处 粘贴一份/n份 复制的内容的 从当前光标所在处
    在这里插入图片描述

撤销

  • u撤销
  • ctrl+r:对撤销进行撤销
    在这里插入图片描述

剪切

  • dd/ndd剪切 对当前行在内的以下 n 行 的内容进行剪切
    (如果只 ddp 就是 删除
    在这里插入图片描述

光标移动

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母hjkl,分别控制光标 左、下、上、右 移一格
  • G:移动到文章的最后
  • $:移动到光标所在行的“行尾”
  • ^:移动到光标所在行的“行首”
  • w:光标跳到下个字的开头
  • e:光标跳到下个字的字尾
  • b:光标回到上个字的开头
  • #l:光标移到该行的第#个位置,如:5l,56l
  • gg:进入到文本开始
  • ctrl+b:屏幕往“后”移动一页
  • ctrl+f:屏幕往“前”移动一页
  • ctrl+u:屏幕往“后”移动半页
  • ctrl+d:屏幕往“前”移动半页

删除

  • x:每按一次,删除光标所在位置的一个字符
  • #x:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
  • X:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  • #X:例如,「20X」表示删除光标所在位置的“前面”20个字符
  • dd:删除光标所在行
  • #dd:从光标所在行开始删除#行

last line mode 指令集

(在使用末行模式之前,请记住先按Esc键确定您已经处于正常模式,再按:冒号即可进入末行模式。)

列出行号

  • set nu: 显示行号
  • set nonu:去掉行号
    在这里插入图片描述

跳到文件中的某一行

  • #:# 号 表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字13,再回车,就会跳到文章的第13行。
    在这里插入图片描述

查找字符

  • /关键字:先按「/」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往后寻找到要的关键字为止。
  • ?关键字:先按「?」键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往前寻找到要的关键字为止。

问题:/ 和 ?查找有和区别?
在这里插入图片描述

保存文件

  • w: 在冒号输入字母「w」就可以将文件保存起来离开vim
  • q:退出,(q!强制离开vim。
  • wq:保存并退出

ps.如何不退出,直接编译文件? 在底行模式下输入:
! gcc test2.c(当前文件的文件名)
! ls -l(这个命令之后可以看见生成了a.out的文件)
! ./a.out (运行编译生成的文件)


vim 的配置

  1. 自己配置(不推荐)
    方法:在家目录下的 vimrc配置文件 中写入配置
  2. 自动化配置
    在这里插入图片描述
    在这里插入图片描述
    • 输入指令:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
    • 输入 root 账户的密码
    • 开始安装

END

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

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

相关文章

人工智能洗稿-免费自媒体洗稿工具

文字洗稿 文字洗稿是指通过修改、重组、删除、替换等手段对文本进行优化、清理和调整,以达到改善文章质量、增加独特性和提高可读性的目的。文字洗稿是自媒体行业的一个重要需求,尤其是在批量撰写文章或需要大量修改文本的情况下。文字洗稿分为自动洗稿…

记一次springboot项目漏洞挖掘

前言 前段时间的比赛将该cms作为了题目考察,这个cms的洞也被大佬们吃的差不多了,自己也就借此机会来浅浅测试下这个cms残余漏洞,并记录下这一整个流程,谨以此记给小白师傅们分享下思路,有错误的地方还望大佬们请以指正…

云办公时代,企业如何保护数据资产安全?

云办公是一种基于云计算技术的办公方式,它将传统的办公软件和数据存储方式转移到了云端服务器上。用户可以通过互联网访问各种办公应用程序和数据,实现远程协作、移动化办公和信息共享等功能。 常见的云办公应用包括文档处理、电子邮件、日历、在线会议、…

ABAP 锁对象

需求场景 最近收到用户反馈,发现同一个托运单生成了两个不同的服务订单以及根据同一个送货单生成了两个托运单,经过排查,发现原因都是由同样的问题导致的,多窗口或者多用户同时对一条数据操作,就会出现这种现象。这个…

Learning C++ No.19【搜索二叉树实战】

引言: 北京时间:2023/5/2/9:18,五一放假第四天,昨天本来想要发奋图强将该篇博客写完,但是摆烂了一天,导致已经好几天没有码字,敲代码了,此时难受的感觉涌上心头,但是摆烂…

DNF类游戏动作实现(C语言)

没有接触制作小游戏前,感觉做游戏很不可思议,游戏里的人物是怎么移动的,怎么攻击,释放技能。。。。。。现在逐渐了解到之后,发现2d游戏人物的动作更多是图片的拼接,动作是否精细,由这个动作的帧…

鲲鹏展翅 信安高飞 | 鲲鹏开发者峰会2023-麒麟信安技术论坛成功举办!

2023年5月6日-7日,以“创未来 享非凡”为主题的鲲鹏开发者峰会2023在东莞松山湖举办。鲲鹏产业生态繁荣,稳步发展,正在成为行业核心场景及科研领域首选,加速推动数字化转型。 作为鲲鹏生态重要合作伙伴,麒麟信安受邀举…

企企通:B2B商城四种“玩法”,一站式解决端到端全链路需求!

商城系统在电商零售领域中,一直是助力商家搭建商城的核心工具,随着电商行业的发展,各种新模式随即出现,与此同时也出现了各种各样的商城系统,而B2B商城是这其中最为常见的商城系统。 近年来,由于电子商务的…

相遇于此,相交链表的解题心得

本篇博客会讲解力扣“160. 相交链表”的解题思路,这是题目链接。 老规矩,先来审题。这道题的题干有点长,简而言之,就是判断2个链表是否相交,如果相交就返回第一个相交结点,不相交就返回NULL。看看题目原文…

【C++中可调用对象和function】

C中有如下几种可调用对象:函数、函数指针、lambda表达式、bind对象、仿函数。其中,lambda表达式和bind对象是C11标准中提出的(bind机制并不是新标准中首次提出,而是对旧版本中bind1st和bind2st的合并)。个人认为五种可调用对象中,…

FM33A048B LPUART

概述 LPUART 是一个低功耗UART 接口,其工作仅需32768Hz 时钟,可以支持到最高9600 波特率的数据接收。LPUART 功耗极低,可以在Sleep/DeepSleep 模式下工作。 特点: ⚫ 异步数据收发 ⚫ 标准UART帧格式 ◼ 1bit起始位 ◼ 7或8bit数据…

【ChatGPT Prompt Engineering】面向Java开发者的ChatGPT提示词工程(1)

各位Java开发者们,欢迎来到万猫学社!在这里,我将和大家分享ChatGPT提示词工程的系列文章,希望能够和大家一起学习和探讨提示词的最佳实践。 虽然互联网上已经有很多有关提示词的材料,比如那些“每个人都必须知道的30个…

lua是什么?lua的基本语法知识点

目录 一、lua是什么? 二、lua的基本语法 1.运行lua脚本文件 2.注释 3.标示符 4.关键词 5.全局变量 三、数据类型 8个基本类型 1.nil(空) 2.boolean(布尔) 3.number(数字) 4.string(字符串) 5…

一图看懂 six 模块:最常见的 POSIX 系统调用, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 six 模块:最常见的 POSIX 系统调用, 资料整理笔记(大全) 摘要模块图类关系图模块全展开【six】统计常量intboolstrtuplelist 模块24 fun…

电脑屏幕开机后一直闪不停怎么办?电脑屏幕闪烁的解决方法

不少电脑用户经常会遇到的一种情况,就是开机后,发现电脑屏幕一直闪不停,十分伤眼。驱动人生就为大家带来电脑屏幕闪烁的解决方法。 首先,驱动人生建议可以排查一下出现电脑屏幕闪烁的原因,从而更加针对性的解决故障。…

SpringBoot 整合第三方技术Junit+MyBatis+Druid

测试类中加两个注解就行 SpringBootTest(classes Application.class)//添加SpringBoot 的启动类,万无一失 RunWith(SpringJUnit4ClassRunner.class) public class SpringBootJunitTest {Testpublic void test(){System.out.println("ddddddddddddddddddd&quo…

四象限法则定量分析法,如何客观划分需求优先级?

四象限法按照重要和紧急程度,划分为4个象限:重要且紧急、重要不紧急、不重要但紧急、不重要不紧急。那么我们如何客观地对需求进行评估,并将其放到对应的象限? 我们可以使用定量分析方法对象限进行划分和定值。在横纵坐标中&#…

php+mysql求职招聘人才网站

1.系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和验证码,然后对登录进来的用户判断身份信息,判断是管理员用户还是普通用户[10]。 2.系统用户管理:不…

温湿度换算绝对含水量

常压下 公式如下 y z * ( 8.0141786694E-09*x^5 2.3071566385E-06*x^4 1.3157923494E-04*x^3 1.1376256438E-02*x^2 3.1867343275E-01*x 4.9021104226E00 ) 式子中 z 相对湿度 单位百分比 x 摄氏度 单位度 取值范围 5-100度 y 绝对湿度 单位 克每立方…

OSPF原理—详细!!

OSPF(open shortest path first):开放式最短路径优先 定义:是基于链路状态算法的路由协议 为什么要用OSPF? 网络发生变化,静态路由需要手动配置,太麻烦无法响应网络变化,需要手动更…