当前位置: 首页 > news >正文

【Linux】linux编辑器-vim的命令及配置

📢博客主页:https://blog.csdn.net/2301_779549673
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 JohnKi 原创,首发于 CSDN🙉
📢未来很长,值得我们全力奔赴更美好的生活✨

在这里插入图片描述

在这里插入图片描述

文章目录

  • 📢前言
  • 🏳️‍🌈1.vim的基本概念
  • 🏳️‍🌈2.vim的基本操作
  • 🏳️‍🌈3.vim正常模式命令集
  • 🏳️‍🌈4.vim末行模式命令集
  • 🏳️‍🌈6.简单vim配置
  • 🏳️‍🌈7.一键C++环境配置
  • 👥总结


📢前言

它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容v的所有指令,而且vi/vim的区别简单点来说,还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。


🏳️‍🌈1.vim的基本概念

vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)插入模式(Insert mode)底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

  • 插入模式(lnsert mode)。
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

  • 末行模式(last line mode).
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shit+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

🏳️‍🌈2.vim的基本操作

  • 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
$ vim test.c
不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字
  • [正常模式]切换至[插入模式]
输入a
输入i
输入o
  • [插入模式]切换至[正常模式]
目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,
可以先按一下 [ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
  • [正常模式]切换至[末行模式]
[shift +;,其实就是输入「:」
退出vim及保存文件,[正常模式]下,按一下「:」冒号键进入 [Last line mode」,例如:
·:w(保存当前文件)
·:wq(输入「wq」,存盘并退出vim)
·:q!(输入q!,不存盘强制退出vim)

🏳️‍🌈3.vim正常模式命令集

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

  • 从插入模式切换为命令模式
    按 [ESC」键。

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

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

  • 复制
    [yw」:将光标所在之处到字尾的字符复制到缓冲区中。
    [#yw」:复制#个字到缓冲区
    [yy」:复制光标所在行到缓冲区,
    [#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
    [p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p”配合才能完成复制与粘贴功能。
    [#p」: 复制#行

  • 撤销上一次操作 : 一旦退出就不能再撤销,如果只是保存可预撤
    [u」如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
    [ctrl+r」:撤销的恢复

🏳️‍🌈4.vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按[:」冒号即可进入未行模式

  • 列出行号
    [set nu」:输入「set nu」后,会在文件中的每一行前面列出行号,

  • 跳到文件中的某一行
    「#]:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

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

  • 保存文件
    [w」:在冒号输入字母[w」就可以将文件保存起来
    离开vim
    「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
    [wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

🏳️‍🌈6.简单vim配置

配置文件的位置

  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,- - 都可以自己建立私有的配置文件,命名为:“vimrc"。例如,/root目录下通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
  • 打开自己目录下的:vimrc文件,执行vim.vimrc

常用配置选项,用来测试

  • 设置语法高亮: syntax on
  • 显示行号: set nu
  • 设置缩进的空格数为4:set shiftwidth=4

🏳️‍🌈7.一键C++环境配置

由于笔者是以C++语言为主的这里介绍一种利用gitee现有的配置环境进行

gitee库链接: https://gitee.com/HGtz2222/VimForCpp
在这里插入图片描述
在这里插入图片描述

我们进入普通用户环境,直接在命令行中粘帖上上面这个指令
在这里插入图片描述
输入密码后等待

在这里插入图片描述
按提示继续操作

cat /etc/redhat-release 查看Linux内核
source ~/.bashrc 让配置文件立即生效

在这里插入图片描述
这就是最后的vim界面


👥总结


本篇博文对 linux编辑器-vim的命令及配置 做了一个较为详细的介绍,不知道对你有没有帮助呢

觉得博主写得还不错的三连支持下吧!会继续努力的~

请添加图片描述

相关文章:

【Linux】linux编辑器-vim的命令及配置

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...

解决vite项目tailwindcss不生效!!(Vue3、tailwindcss失效)

安装tailwindcss vite自带安装了postcss,只需要安装tailwindcss npm install -D tailwindcss自动创建tailwind.config.js npx tailwindcss init -p/** type {import(tailwindcss).Config} */ module.exports {// 配置需要使用tailwindcss的文件content: [./src/vi…...

ubuntu 20.04 NVIDIA驱动、cuda、cuDNN安装

1. NVIDIA驱动 系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。 运行nvidia-smi: NVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver. Make sure that the lat…...

Python世界:力扣题704二分查找

Python世界:力扣题704二分查找 任务背景思路分析代码实现测试套件本文小结 任务背景 问题来自力扣题目704:Binary Search,大意如下: Given an array of integers nums which is sorted in ascending order, and an integer target…...

W55RP20-EVB-Pico评估板介绍

目录 1 简介 2 硬件资源 2.1 硬件规格 2.2 引脚定义 2.3 工作条件 3 参考资料 3.1 RP2040 数据手册 3.2 原理图 ​编辑 原理图 & 物料清单 & Gerber 文件 3.3 尺寸图(单位:mm) ​编辑 3.4 认证 3.5 参考例程 4 硬件协…...

Flink安装和Flink CDC实现数据同步

一,Flink 和Flink CDC 1, Flink Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。 中文文档 Apache Flink Documentation | Apache Flink 官方文档 :https://flink.apache.org Flink 中文社区…...

数字化转型助手 快鲸SCRM系统为企业营销赋能

内容概要 在当今这个快速变化的商业环境中,数字化转型已经成为企业生存与发展的关键要素。无论是零售、制造还是服务行业,企业都深刻意识到传统工作模式的局限性,必须借助先进的技术来优化运营和提升客户体验。快鲸SCRM系统就是这样一款数字…...

浅谈Agent

目录 什么是大模型 Agent ? 大模型Agent 有哪些部分组成? 规划(Planning) Planning类型 不依赖反馈的计划 基于反馈的计划 拆解子目标和任务分解方法 COT TOT GOT LLMP 反思和完善 ReAct(融合推理与执行的能力) Reflexion(动态…...

绿色能源发展关键:优化风电运维体系

根据QYResearch调研团队最新发布的《全球风电运维市场报告2023-2029》显示,预计到2029年,全球风电运维市场的规模将攀升至307.8亿美元,并且在接下来的几年里,其年复合增长率(CAGR)将达到12.5%。 上述图表及…...

Sparrow系列拓展篇:对调度层进行抽象并引入IPC机制信号量

前言 在笔者更新完Sparrow手把手教学系列后,原本是不打算继续更新的。但关于Sparrow系列的读者又渐渐增多,作为作者,总感觉这个系列的文章还是稍微有些不圆满,恐怕多少会让读者有些意兴阑珊。 最近又恰好有一点空闲时间&#xf…...

天塌了!!!SQL竟也可以做预测分析?| 商品零售额的预测

目录 0 问题背景 1 数据准备 2 问题解决 2.1 模型构建 (1)符号规定 (2)基本假设 (3)模型的分析与建立 2.2 模型求解 3 小结 0 问题背景 1960年—1985年全国社会商品零售额如图1 所示 表1全国社…...

VSCode本地C/C++环境配置

基本环境下载 1.我的系统是windows,自己先下载安装VSCode,网上视频实在太多,我建议跟着B站视频操作。 2.下载安装好后你需要明白:VSCode只是一个编辑工具,我们要写C/C代码得编译运行,所以我们要配置它在w…...

【智能算法应用】淘金优化算法求解二维路径规划问题

摘要 本文基于智能算法的淘金优化算法(Gold Panning Optimization, GPO)求解二维路径规划问题。该算法模拟淘金过程中个体寻找最优金矿路径的行为,利用适应度函数优化路径规划,能够在复杂环境下实现从起点到目标点的最优路径搜索…...

Linux挖矿病毒(kswapd0进程使cpu爆满)

一、摘要 事情起因:有台测试服务器很久没用了,突然监控到CPU飙到了95以上,并且阿里云服务器厂商还发送了通知消息,【阿里云】尊敬的xxh: 经检测您的阿里云服务(ECS实例)i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒…...

【java】ArrayList与LinkedList的区别

目录 1. 说明2. 内部实现2.1 ArrayList2.2 LinkedList 3. 性能特点3.1 插入和删除操作3.2 访问操作3.1 遍历操作 4. 使用场景5. 扩容机制6. 空间开销 1. 说明 1.Java中的ArrayList和LinkedList是两种常用的集合实现类,都属于Java集合框架的一部分,但它们…...

【LangChain系列6】【Agent模块详解】

目录 前言一、LangChain1-1、介绍1-2、LangChain抽象出来的核心模块1-3、特点1-4、langchain解决的一些行业痛点1-5、安装 二、Agent模块详解2-0、Agent核心思想——React介绍2-0-1、React的介绍以及由来2-0-2、伪代码介绍React的执行顺序 2-1、Agent介绍2-1、Self ask with se…...

JavaScript Cookie 与 服务器生成的 Cookie 的区别与应用

JavaScript Cookie 与 服务器生成的 Cookie 的区别与应用 Cookie是一种甜点,同时也是web前端开发中一种非常常见且重要的技术,它用于在客户端和服务器之间存储和传递信息。用户身份验证、会话管理,还是用户个性化设置,都离不开Coo…...

深入了解Git、GitHub、GitLab及其应用技巧

在现代软件开发中,掌握版本控制系统(VCS)是至关重要的,其中Git是最流行的分布式版本控制工具之一。本文将详细介绍Git的用途及其基本操作,并深入探讨GitLab、GitHub、和Git Desktop的使用方法,同时总结Git的…...

ctfshow(316,317,318)--XSS漏洞--反射性XSS

反射型XSS相关知识 Web316 进入界面: 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题,看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台,…...

Visual Studio2022版本的下载与安装

1-首先打开微软的官网,下面就是链接 下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux免费下载 Visual Studio IDE 或 VS Code。 在 Windows、Mac 上试用 Visual Studio Professional 或企业版。https://visualstudio.microsoft.com/zh-hans/downloads/?…...

GA/T 1400视图库实战:从零部署Easy1400平台到设备级联全流程解析

1. 初识GA/T 1400与Easy1400平台 第一次接触GA/T 1400标准时,我完全被各种专业术语绕晕了。简单来说,这是一套专门针对视频监控领域的行业标准,规定了视频图像信息在采集、传输、存储等环节的技术要求。而Easy1400就是基于这个标准开发的一套…...

构建本地化个人助理系统:事件驱动架构与模块化设计实践

1. 项目概述:一个高度可定制的个人助理系统最近在GitHub上看到一个挺有意思的项目,叫“Personal-Assistant”,作者是idk-man69。光看名字,你可能会觉得这又是一个类似Siri或Google Assistant的语音助手,但点进去仔细研…...

告别Python依赖!手把手教你用C++复现Librosa的Mel频谱和MFCC特征提取

高性能C音频特征提取实战:从Librosa原理到嵌入式部署优化 在语音识别和音频分析领域,Mel频谱和MFCC特征提取是基础但关键的技术环节。许多开发者习惯使用Python的Librosa库快速实现原型,但当需要部署到生产环境时,Python的解释器性…...

如何用nmrpflash拯救你的Netgear路由器:从“变砖“到重生的完整指南

如何用nmrpflash拯救你的Netgear路由器:从"变砖"到重生的完整指南 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 当你的Netgear路由器固件升级失败、意外断电或系统崩溃后无法启动…...

【优化交叉口的绿灯时间】基于遗传算法的交通灯管理研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Linuxbonding链路生产排障流程

Linuxbonding链路生产排障流程这是一篇面向中级 Linux 使用者的技术文章,主题聚焦在bonding链路,重点讨论链路聚合、冗余切换和接口状态。在真实生产环境中,bonding链路相关问题往往不会以单一错误形式出现,而是混杂在日志、权限、…...

并行LLM推理技术:Hogwild! Inference原理与应用

1. 并行LLM推理的技术背景与挑战在传统Transformer架构中,语言模型的推理过程本质上是顺序执行的——每个新token的生成都严格依赖于之前所有token的注意力计算结果。这种串行特性导致两个显著瓶颈:首先,硬件计算资源利用率低下,特…...

Go语言AI编程助手SDK:提升Cursor代码理解与生成精准度

1. 项目概述:一个为AI编程而生的Go语言SDK如果你是一名Go语言开发者,同时又在深度使用Cursor这样的AI辅助编程工具,那么你很可能已经感受到了一个痛点:如何让AI更精准、更高效地理解你的代码库,并在此基础上进行智能操…...

Switch便携投影底座DIY:3D打印与硬件改造实战指南

1. 项目概述:当Switch遇上投影,一场桌面上的大屏革命作为一个折腾过不少游戏机外设的玩家,我一直在想,有没有办法让Switch的“便携”属性再进化一步?官方底座接电视固然爽,但总被一根线缆束缚在客厅。直到我…...

基于树莓派与QT Py的本地化物联网红外遥控器DIY指南

1. 项目概述与核心价值想没想过,把家里那堆遥控器——电视的、机顶盒的、空调的、音响的——统统集成到一个你手机能打开的网页里?而且这个控制中心完全在你家局域网里运行,不依赖任何云服务,不用担心厂商倒闭后设备变砖。今天分享…...