【Linux】Linux开发工具vim

news2024/11/25 7:08:56

Linux开发工具vim

  • 什么是vim
  • 三种模式的转换
  • vim的基本命令
    • gg:定位光标到最开始的行
    • Shift+g:定位光标到结尾行
    • n+Shift+g:定位光标到任意行
    • Shift+$:定位光标到当前行结尾
    • Shift+^:定位光标到当前行开始
    • w,b:光标按照单词进行行内跨行进行移动
    • h,j,k,l:进行光标的左、下、上、右的操作
    • Shift+~:大小写的转换
    • yy:复制光标所在行(n行)
    • p:粘贴(n重复行)到光标的下一行
    • dd:剪切、删除
    • u:撤销
    • ctrl+r:撤销之前的撤销操作
    • r:对光标字符+之后的所有字符进行批量化替换
    • Shift+r:进入替换模式
    • x:对光标字符之后的字符进行删除
    • vs多个文件进行编写
  • vim的配置
  • 为什么 vim 比其他文本编辑器更受程序员欢迎?
  • 🍀小结🍀

🎉博客主页:小智_x0___0x_

🎉欢迎关注:👍点赞🙌收藏✍️留言

🎉系列专栏:Linux入门到精通

🎉代码仓库:小智的代码仓库

什么是vim

vim是一款多模式的编辑器,vim的模式有很多,我们只需要掌握三种常用的模式就可以了,分别是命令模式、插入模式、底行模式,没有经过配置的vim是跟普通记事本没有区别的,没有语法提示不是很好用,这里我们先开始用一个没有配置的vim为大家讲解,随后给大家讲解如何配置vim。

三种模式的转换

这里先使用vim创建并打开一个test.c文件>
在这里插入图片描述
回车之后就可以进入vim编辑器了>

在这里插入图片描述
进来之后就是命令模式(用户所有的输入都会被当作命令,一般不会进行文本输入)。
输入i就能进入插入模式>
在这里插入图片描述
这里就可以写入我们的程序了。当我们处于插入模式的时候最底下会有一个INSERT标志
在这里插入图片描述
进入插入模式之后我们就可以按Esc键退出插入模式进入命令模式。这时候我们想要保存退出就需要进入底行模式。
按住Shift键+;键输入一个 此时下面就会出现一个 我们在这里输入wq回车
在这里插入图片描述
就可以保存并退出了。
我们可以查看一下是否写入成功
在这里插入图片描述
可以看到我们可以使用vim来写程序了。
在这里插入图片描述

vim的基本命令

gg:定位光标到最开始的行

我们使用vim编辑test.c文件>
在这里插入图片描述
可以看到此时光标在最后一行,此时我们就可以按两下g就可以将光标挪到第一行。
在这里插入图片描述

Shift+g:定位光标到结尾行

此时我们的光标处于第一行我们可以按Shift+g键就可以将光标定位到结尾行>
在这里插入图片描述

n+Shift+g:定位光标到任意行

假如我们想要将光标定位在第四行,我们就可以按4+Shift+g>
在这里插入图片描述
此时光标就来到了第四行。

Shift+$:定位光标到当前行结尾

在这里插入图片描述

Shift+^:定位光标到当前行开始

在这里插入图片描述

w,b:光标按照单词进行行内跨行进行移动


w向后跳、b向前跳

h,j,k,l:进行光标的左、下、上、右的操作


h、j、k、l的记忆方法:
h:在最左边所以表示左
l:在最右边所以表示右
j:可以理解位jump,向下跳,所以j是向下
k:可以理解位king(上)

Shift+~:大小写的转换


当然大写转小写也是可以的。

yy:复制光标所在行(n行)

配合粘贴一起演示

p:粘贴(n重复行)到光标的下一行


也可以使用n+p进行多行粘贴>
这里我们演示yy复制之后使用10+p进行粘贴10行>

也可以使用n+yy进行多行复制>

dd:剪切、删除

dd也可以配合n来进行使用。
我们使用2+dd进行剪切删除,在使用p进行粘贴>

u:撤销

这个功能就是我们windows上面的ctrl+z键

ctrl+r:撤销之前的撤销操作

r:对光标字符+之后的所有字符进行批量化替换


也可以使用n+r进行批量化替换。

Shift+r:进入替换模式

我们使用Shift+r把一行全部替换掉>

x:对光标字符之后的字符进行删除


也可以通过n配合x一块使用。

vs多个文件进行编写

我们想要进行多文件编写的时候可以切换位底行模式:输入vs+文件名>
在这里插入图片描述
回车之后j,就可以进入多文件编辑>
在这里插入图片描述
可以使用Ctrl+ww(w按两下)进行光标窗口切换。

vim的配置

网上的配置方案有很多很多,这里给大家分享一个vim的配置:
在需要配置vim的用户命令行中输入这行指令:

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

在这里插入图片描述
这里需要输入我们的root密码。
输入完密码之后我们就可以等待安装了。
这里安装时间跟你的网速有关系。
在这里插入图片描述
出现这个页面就证明我们的vim配置好了。此时我们需要再输入这行命令:

source ~/.bashrc

回车之后再来打开vim我们就可以看到我们的vim跟之前不一样了>
在这里插入图片描述
此时也有了代码提示。
但是这个配置中的缩进默认是2,我们可以修改默认缩进输入以下指令>

vim /home/(要修改的用户名)/.vimrc

在这里插入图片描述
将这三行的默认数改成4,再保存退出。
此时我们的自动缩进就变成4了。

为什么 vim 比其他文本编辑器更受程序员欢迎?

有几个原因让 Vim 在程序员中更受欢迎:

  1. 高度定制化:Vim 可以通过配置文件进行高度定制化,让用户根据个人偏好进行设置,以及使用各种插件和脚本来增加编辑时的各种功能。

  2. 命令式编辑:Vim 并不是一个所见即所得(WYSIWYG)的编辑器,而是通过命令来操作文本。这种编辑方式可以提高效率,因为用户可以不用切换鼠标,而是通过快捷键来完成编辑任务。

  3. 高效率:由于 Vim 是一个命令式编辑器,它可以让程序员更快地完成一系列编辑任务,如搜索和替换等。此外,由于 Vim 可以在多个文本文件之间进行快速切换,所以它也可以更快地处理大量的文本文件。

  4. 可移植性:Vim 可以在各种操作系统上运行,并且可以在终端中运行,因此它可以很容易地被程序员用在不同的环境中,而不用担心环境变化会对编辑器造成影响。
    总的来说, Vim 是一个高度定制化和高效率的编辑器,它可以让程序员更快地完成编辑任务,并且可以适应不同的环境。这使得它成为了程序员们所钟爱的编辑器之一。

🍀小结🍀

今天我们学习了new和delete的用法vim的使用方法及其vim的配置相信大家看完有一定的收获。
种一棵树的最好时间是十年前,其次是现在! 把握好当下,合理利用时间努力奋斗,相信大家一定会实现自己的目标!加油!创作不易,辛苦各位小伙伴们动动小手,三连一波💕💕~~~,本文中也有不足之处,欢迎各位随时私信点评指正!

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

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

相关文章

红黑树 C++

企业里永远是技术驱动理论发展 比起理解红黑树的原理,更重要的是理解红黑树的应用场景,因为某些应用场景的需要,红黑树才会应运而生。 红黑树的特点: 插入,删除,查找都是O(logn)的复杂度。 红黑树的应用…

大数据Doris(二十六):Broker Load基本原理和语法介绍

文章目录 Broker Load基本原理和语法介绍 一、基本原理 二、Broker Load语法 Broker Load基本原理和语法介绍 Apache Doris架构中除了有BE和FE进程之外,还可以部署Broker可选进程,主要用于支持Doris读写远端存储上的文件和目录。例如:Apa…

spring boot +Sa-Token优雅的实现项目鉴权!

1. 技术选型 最近在做登录、授权的功能,一开始考虑到的是spring boot spring security,但spring security太重,而我们是轻量级的项目,所以,spring security不适合我们。 而后考虑spring boot shiro,但s…

【老王读SpringMVC-5】Controller method 是如何执行的?

通过前面对 Controller method 参数绑定的分析,我们知道, 被 RequestMapping 标记 handler method 的执行是通过调用 RequestMappingHandlerAdapter#handle()。 RequestMappingHandlerAdapter#handle() 具体的调用过程如下: 参数解析、han…

【Java基础篇】运算符

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏:Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用&…

由浅入深Dubbo网络通信深入解析

目录 1 dubbo中数据格式2 消费方发送请求3 提供方接收请求4 提供方返回调用结果5 消费方接收调用结果6 异步转同步7 异步多线程数据一致8 心跳检查 1 dubbo中数据格式 解决socket中数据粘包拆包问题,一般有三种方式 定长协议(数据包长度一致&#xff09…

5GNR——RACH随机接入流程(1):随机接入的原因

1、随机接入触发原因 1- Initial access from RRC_IDLE; 2- RRC Connection Re-establishment procedure; 3- DL or UL data arrival during RRC_CONNECTED when UL synchronisation status is “non-synchronised”; 4- UL data arrival during RRC_CONNECTED when there are …

Java之运算符

+加号的作用 1.表示正数 2.相加运算符 3.进行字符串的拼接 4.自增 Tips: 运算运算符优于 扩展赋值运算符 byte a ; int b ; ab; 右侧为byte,无需强制转换 aab; 右侧为int,需强制转换为byte,赋给左边…

解码区块链:探索去中心化世界的奥秘与潜力

🐟 区块链技术的基本原理🐟 区块链技术的应用场景🐟 区块链技术的挑战与前景 区块链技术作为一项创新性的技术,引领着数字时代的变革。它以其去中心化、透明性和安全性的特点,为各行业带来了无限可能。在本篇博客中&am…

《程序员面试金典(第6版)》面试题 02.05. 链表求和(构建一个新链表)

题目解析 给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。 题目传送门:面试题 02.05. 链表求和 示例: 输入&#x…

漏洞管理基础知识

漏洞管理对于端点安全至关重要,是在安全漏洞导致漏洞之前清除安全漏洞的最主动方法之一。 什么是漏洞 漏洞是软件中的错误代码段,会导致软件崩溃或以程序员从未预料到的方式做出响应。黑客可以利用漏洞对计算机系统进行未经授权的访问或对计算机系统执行…

第五十天学习记录:C语言进阶:位段

位段 什么是位段 位段的声明和结构是类似的&#xff0c;有两个不同&#xff1a; 1、位段的成员可以是int,unsigned int或signed int。 2、位段的成员名后边有一个冒号和一个数字。 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>//位段-二进制位 struct A {int …

用脚本采集ChatGPT免翻免费镜像

新建了一个网站 ChatGPT人工智能中文站 - ChatGPT人工智能中文站 每天给大家更新可用的国内可用chatGPT免费镜像站 昨天发布了一个教程 本地安装 ChatGPT&#xff01;无需API、 免翻墙、完全免费使用纯正OpenAI的全部功能&#xff01; 支持 Windows、 Mac、NAS、Linux系统 …

led钨丝灯项目笔记

基于ESP-12E的LED钨丝灯作品 原理图&#xff1a; PCB&#xff1a; 嘉立创上面有些封装没有&#xff0c;需要自己画 画完这两个&#xff0c;此时它们还没有相关联&#xff0c;需要将它们关联起来 在封装管理器中将它们关联起来 在这里面就可以找到自己画的封装 如&#xff1a;…

MySQL数据库从入门到精通学习第5天(创建数据表,查看,修改表结构,删除表)

创建数据表&#xff0c;查看&#xff0c;修改表结构 创建数据表查看表结构修改表结构删除表 创建数据表 在对MySQL数据表进行操作之前我们需要创建数据库&#xff0c;并使用USE语句选择数据库。 创建数据库使用CREATE TABLE语句&#xff1a; 语法&#xff1a;CREATE [TEMPOR…

机试打卡 -06 异位词分组(哈希表)

最容易想到的是利用 ord( ) 函数&#xff0c;按照字母计数的特征归类&#xff0c;代码如下&#xff1a; class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:ans_list[]# 哈希表 {word_count:ans_list中的索引}word_count_dictdict()# 遍历strfo…

NR RLC(三) TM and UM mode

欢迎关注同名微信公众号“modem协议笔记”。 实网下VOLTE通话时常会出现通话无声或者断续的情况&#xff0c;通常的做法是通过检查MO/MT UL发送和DL接收&#xff0c;进一步排查问题原因&#xff0c;modem就避免不了要查看RLC的收发情况&#xff0c;而voice配置一般都是RLC UM …

【Linux系统编程(文件编程)】之读、写文件、文件光标移动

文章目录 一、文件写入二、文件读取三、文件光标移动使用 lseek() 计算文件大小 一、文件写入 write() writes up to count bytes from the buffer starting at buf to the file referred to by the file descriptor fd.write() write() 函数&#xff0c;将从buf缓冲区开始&…

开发实例:Spring Boot、MyBatis和Layui打造增删改查项目

目录导航 1. 技术栈介绍1.1 Springboot1.2 MyBatis1.3 Layui 2. 开发环境2.1 前端示例代码2.2 后端示例代码2.3 数据库建表语句 3. 项目截图4. 运行截图4.1 查询界面4.2 新增界面4.3 修改界面4.4 删除界面 5. 小结6. 完整代码下载 通过学习这个实例项目&#xff0c;我们将积累点…

[HarekazeCTF2019]baby_rop2

小白垃圾笔记&#xff0c;不建议阅读。 这道题学到了两个思想吧&#xff1a; 1.一个是有的函数泄露libc打印不写出来。 2.另一个是printf函数的利用吧。 3.栈对齐好像是只有system有。 分析下题目吧&#xff1a; 64位 绕过nx 本来以为第10行&#xff0c;有坑呢。结果好像是…