Linux下 vim的用法

news2024/11/10 19:09:14

目录

前言

一、初始Vim

二、使用Vim

1.1命令模式

2.1底行模式

3.1插入模式 


前言

提示:这里可以添加本文要记录的大概内容:

        本篇文章会介绍vim的基本用法和为什么我们要学习vim。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Vim

        Vim是一款文本编辑器对比其他的编辑器工具,vim的学习成本较高,而且它非常经典,加上功能比较强大是一个多模式的编辑器。非常值得我们学习。

        Vim也是vi的升级版本,它不仅兼容vi的所有指令,而且 还有一些新的特性在里面。 

        vim有三种工作模式:命令模式、插入模式、底行模式。

         vim默认打开是命令模式 ;在键盘中按下‘I’就可以进入插入模式,按Esc回退到命令模式;在键盘上按’Shift+;‘之后输入 wq回车退出编辑器。如果底行模式返回,命令模式继续按Exc即可。

        

       touch text.c        //创建文本

        vim text.c        // 进入vim编辑器

二、使用Vim

1.1命令模式

        vim默认打开是命令模式  

        移动光标 

gg:光标定位到文本最开始位置;

Shift + g:光标定位到文本最末尾位置;

n(指任意正整数) + Shift + g或者 n + G:光标定位到n行;

^:光标定位到所在行的行首;

$:光标定位到光标所在行的行尾;

w:光标跳到下一个单词的开头;

b:光标跳回上一个单词的开头;

e:光标跳到下一个单词的字尾;

Ctrl + b:屏幕内容向上移动一页;

Ctrl + u:屏幕内容向上移动一页;

Ctrl + f :屏幕内容向下移动一页;

Ctrl + u :屏幕内容向下移动半页;

h j k l:按照左、下、上、右、来控制光标移动一格;

复制内容

yy:复制所在行到缓冲区;

p:将缓冲区内的字符贴到光标所在位置。它必须与带y有关的复制命令配合才行;

yy + p:将当前内容复制一行到下面;

yy + n + p:将当前内容复制n行到下面;

n + p :粘贴到光标下的n次复制的行数;

n + yy:从光标开复制n行;

nyw:复制n个单词到缓冲区;

删除文字

x:每按一次,删除光标所在位置的一个字符;

nx:删除光标所在位置及后面位置的n个字符;

X:每按一次大写的X,删除光标前面的一个字符;

nX:删除光标所在位置的前n个字符;

dd:删除所在行并把删除的行放在缓冲区中。所以也有剪切的意思,dd之后再在光标位置按p就粘贴了刚刚删除的行;

        其他命令

r:替换(替换的内容是自己键盘上输入的内容)光标当前位置所在的字符;

n + r :从当前光标开始替换,直到替换了n个字符;

R:替换光标所到之处的字符,直到按下Esc键;

Shift + ~:依此改变字符的大小写;

u:撤销命令

Ctrl + r:撤销 u的命令

       

2.1底行模式

 

        :vs xxx.c:此时vim会自动显示一个xxx.c的文件,并且进行分屏操作,如果不保存xxx.c的文件。那么xxx.c的文件不会被创建;

        按下 Ctrl +ww 切换分配的窗口(光标在那个窗口,就对那个窗口进行操作);

        :set nu:调出行号;

        :set nont:去掉行号;        

        :n:跳到文件的第n行;

        :w:保存文件;        w!:强制保存;

        :q:退出文件;        q!:强制退出;

        :wq:可以搭配使用保存并退出;wq!:强制保存并退出;

3.1插入模式 

        进入插入模式就和其他编辑器一样修改或输入文本。

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

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

相关文章

计算机网络——HTTP协议详解(上)

一、HTTP协议简单介绍 1.1 什么是HTTP协议 HTTP(超文本传输协议)是一种用于在Web浏览器和Web服务器之间传输数据的应用层协议。它是一种无状态协议,即服务器不会保留与客户端的任何连接状态信息,每个请求都被视为一个独立的事务。…

Echarts饼图7.0:图例自定义+取消高亮时放大的状态

1、源代码: let seriseData [{ value: 1048, name: Search Engine },{ value: 735, name: Direct } ] option {color: [#5D9AF1, #D6D6D6],tooltip: {trigger: item,backgroundColor: rgba(0,0,0,0.4),borderColor: transparent,formatter: (item) > {consol…

使用Arduino IDE生成带有bootloader的烧录文件

使用Arduino IDE生成bin(烧录)文件 1、在“项目”中,选择“导出已编译的二进制文件” 2、在工程目录中,会出现“build”文件夹 3、在build文件夹中,有hex文件,以及包含bootloader的bin和hex文件 bin和h…

ArkUI---Swiper、Grid、List组件简单介绍

前言:ForEach ForEach语法如下: ForEach(arr: Array,itemGenerator: (item: Array, index?: number) > void,keyGenerator?: (item: Array, index?: number) : string > string ) 参数1:数据源,为Array的数组 参数2&am…

【51单片机】让AI识别电路图,帮你进行编码(以51单片机为例)

让AI识别电路图,帮你进行编码(以51单片机为例) ​ 这里使用的AI大模型使用的是 Copilot。(两个前提:1. 科学上网、2. 有微软账号) 今天测试了一下Copilot识别图片的能力,能力还是可圈可点的。 首先准备一…

react-antive 項目報錯 [CXX1429] error when building with cmake using

react-antive 項目報錯 [CXX1429] error when building with cmake using修复 错误现场分析原因解决方案举一反三技巧引用参考(感谢作者提供思路) 错误现场 [CXX1429] error when building with cmake using /Users/sebastiangarcia/Desktop/work/flm/…

基于spring boot的校园商铺管理系统

TOC springboot188基于spring boot的校园商铺管理系统 第1章 绪论 1.1 研究背景 互联网概念的产生到如今的蓬勃发展,用了短短的几十年时间就风靡全球,使得全球各个行业都进行了互联网的改造升级,标志着互联网浪潮的来临。在这个新的时代&…

springboot颐养居家养老管理系统---附源码19707

摘 要 随着社会的快速发展和人口老龄化趋势的加剧,居家养老已成为越来越多老年人的选择。然而,传统的居家养老方式面临着诸多问题,如服务质量不稳定、信息不对称等。为了解决这些问题,提高居家养老的服务质量和效率,我…

[mysql] 一行变多行

数据表 CREATE TABLE table_main (ID char(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,zb_list_str text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci ,kf_list_str text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,PRIMARY KEY (ID) USI…

在宝塔面板下安装WordPress

宝塔面板是服务器管理好助手,尤其在Linux系统下,提高了管理的可视化,降低了Linux服务器的使用门槛。 WordPress是个非常好的博客系统,由于支持海量主题模板、各种类型的插件,因此已经成为建设各类网站的首选框架。 今…

java 获取request中的json请求体

Java 获取request中的json请求体 简介 在Java开发中,有时我们需要从HTTP请求中获取JSON格式的数据。本文将详细介绍如何在Java中获取request中的json请求体。 流程概览 以下是获取request中的json请求体的整体流程: 步骤 描述 1 获取HttpServletReque…

代码规范 —— 并发编程规范

优质博文:IT-BLOG-CN 【1】【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。 说明: 资源驱动类、工具类、单例工厂类都需要注意。 【2】【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。…

Adobe Illustrator 2023 for Mac/Win:创意设计的强大引擎

Adobe Illustrator 2023(简称AI 2023)是一款专为设计师打造的矢量图形编辑软件,无论是Mac还是Windows平台,它都以其卓越的性能和丰富的功能赢得了业界的广泛赞誉。这款软件在设计领域具有举足轻重的地位,为设计师们提供…

算法的学习笔记—删除链表中重复的结点(牛客JZ76)

😀前言 在链表操作中,删除重复节点是一个常见的问题。特别是在排序链表中,连续的重复节点不仅会影响链表的结构,还会带来额外的复杂度。本文将介绍一种高效的算法,用于删除链表中所有重复的节点,并保留链表…

GPT-4o mini发布,轻量级大模型如何颠覆AI的未来?

从巨无霸到小巨人:GPT-4o Mini的创新之路 ©作者|潇潇 来源|神州问学 引言 随着人工智能技术的飞速进步,AI领域的竞争日益激烈,大型模型的发布几乎成为常态。然而,这些庞大的模型通常需要大量的计算资源和存储空间&#xff…

如何使用Zabbix API批量修正主机名称

作者 乐维社区(forum.lwops.cn) 许远 先说为什么要修正? 这其实源自于Ansible安装zabbix agent的一个小Bug:有小伙伴发现,利用ansible批量安装zabbix agent后,zabbix系统上显示的主机名出错了,主…

疫苗发布和接种预约系统

TOC springboot173疫苗发布和接种预约系统 第一章 绪论** 1.1 研究背景 在现在社会,对于信息处理方面,是有很高的要求的,因为信息的产生是无时无刻的,并且信息产生的数量是呈几何形式的增加,而增加的信息如何存储以…

【Next】初识 Next

概述 在Reactr中创建SSR应用,需要调用 ReactDOM.hydrateRoot 函数,而不是 ReactDOM.createRoot。 createRoot:创建一个Root,接着调用其 render 函数将 App 直接加载到页面上hydrateRoot:创建水合 Root, 是在激活的模式下渲染 App 服务端可用 ReactDOM…

如何在 Odoo 16 中修改现有网页

在 Odoo 中,网页是指在 Odoo 网站上可访问的特定页面或 URL。Odoo 中的网页是通过内置网站模块创建和管理的,该模块允许您设计和自定义网页的内容、布局和功能。 Odoo 中的网页是您网站的构建块,可用于呈现信息、展示产品或服务、通过表单收…

「MyBatis」实现留言板

效果预览 界面长这样,每次提交之后,会在下面生成一条记录,刷新页面或者关掉后重新打开,这些记录仍然存在 思路 我们需要在数据库中保存一条一条的消息,那就需要一个类 Data public class MessageInfo {private Integ…