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

【linux vim使用说明】

基本概念

提示:本文是网络资源整理

  • 模式: vim 有多种模式,每种模式都有不同的功能。
    • 普通模式 (Normal Mode): 默认模式,用于导航和执行命令。
    • 插入模式 (Insert Mode): 用于文本输入。可以通过按 i 进入。
    • 可视模式 (Visual Mode): 用于选择文本。可以通过按 v 进入。
    • 命令模式 (Command-Line Mode): 用于执行命令。可以通过按 : 进入。

启动和退出

  • 启动 vim: 在终端中输入 vim filename。
  • 退出 vim:
    • 保存并退出: :wq 或 :x
    • 仅保存: :w
    • 仅退出(不保存更改): :q!

基本操作

普通模式

  • 移动光标:

    • 左移: h
    • 右移: l
    • 上移: k
    • 下移: j
    • 到行首: 0
    • 到行尾: $
    • 跳到文件开头: gg
    • 跳到文件末尾: G
  • 文本操作:

    • 删除当前字符: x
    • 删除当前行: dd
    • 删除到行尾: d$
    • 复制当前行: yy
    • 粘贴: p
    • 撤销: u
    • 恢复: Ctrl+r
  • 查找和替换:

    • 查找文本: /pat 然后按 Enter
    • 查找下一个匹配: n
    • 查找上一个匹配: N
    • 替换当前行第一个匹配的文本: 😒/old/new/
    • 替换当前行所有匹配的文本: 😒/old/new/g
    • 替换整个文件所有匹配的文本: :%s/old/new/g

插入模式

  • 进入插入模式:

    • 在光标前插入: i
    • 在光标后插入: a
    • 在当前行前插入新行: O
    • 在当前行后插入新行: o
  • 退出插入模式: 按 Esc


可视模式

  • 选择文本:

    • 字符选择: v
    • 行选择: V
    • 块选择: Ctrl+v
  • 操作选择的文本:

    • 复制选择的文本: y
    • 删除选择的文本: d
    • 粘贴: p

  • 命令模式
    • 保存文件: :w
    • 退出 vim: :q
    • 保存并退出: :wq 或 :x
    • 撤销更改: :undo
    • 恢复更改: :redo

高级功能

窗口和标签

  • 分割窗口:

    • 横向分割: :split filename
    • 纵向分割: :vsplit filename
  • 在窗口之间切换: Ctrl+w 然后使用方向键

  • 关闭当前窗口: :q


宏和自动化

录制宏:

1、开始录制:

  • 按 q 进入录制模式,然后按一个寄存器键(如 q)。这个寄存器键会用来存储录制的宏。

  • 示例: 按 q 然后按 a 开始录制到寄存器 a 中。
    2、执行操作:

  • 执行你希望录制的操作。例如,移动光标、删除文本、插入文本等。
    3、停止录制:

-按 q 停止录制宏。此时,所有在录制期间执行的操作都会存储在你选择的寄存器中。

执行宏

1、执行宏:

  • 要执行录制的宏,按 @ 然后按寄存器键。
  • 示例: 按 @a 执行存储在寄存器 a 中的宏。
常见问题及解决方法

1、宏没有效果:

  • 确保你在正确的模式下运行宏。通常,宏在普通模式下执行。

  • 检查宏是否录制正确。可以通过执行 :registers 查看寄存器的内容,确认录制的宏是否存在。
    2、宏录制错误:

  • 如果录制的宏不如预期工作,可能是因为在录制过程中操作的不一致。尝试重新录制并确保操作的步骤一致。
    3、宏在不同上下文中执行:

  • 有些宏可能依赖于特定的光标位置或上下文。在不同的上下文中运行宏可能会产生不同的效果。

示例

假设你有一个文本文件,每一行都是一个需要删除的项目,并且你想要批量删除这些行的开头部分。

1、录制宏:

  • 按 qa 开始录制到寄存器 a。

  • 移动光标到行首: 0

  • 删除到第一个空格: d

  • 移动到下一行: j

  • 停止录制: 按 q
    2、执行宏:

  • 在文件中移动光标到你想开始的行,然后按 @a 执行宏。

  • 如果你想在多行上重复宏,可以按 n@a,其中 n 是重复的次数。


插件和扩展

vim 支持插件,通过插件可以增强编辑功能。一些常用插件管理工具包括:

  • Vundle: https://github.com/VundleVim/Vundle.vim
  • Pathogen: https://github.com/tpope/vim-pathogen
  • vim-plug: https://github.com/junegunn/vim-plug

安装插件:

1、将插件 URL 添加到 ~/.vimrc 文件中。
2、运行 :PluginInstall(对于 Vundle)或 :PlugInstall(对于 vim-plug)。


示例配置

在 ~/.vimrc 文件中,你可以添加一些自定义配置来增强 vim 的使用体验:

" 设置行号
set number" 高亮当前行
set cursorline" 自动缩进
set autoindent
set smartindent" 启用语法高亮
syntax on" 设置制表符宽度
set tabstop=4
set shiftwidth=4
set expandtab

参考文献

Vim 官方文档
Vim 用户手册

相关文章:

【linux vim使用说明】

基本概念 提示:本文是网络资源整理 模式: vim 有多种模式,每种模式都有不同的功能。 普通模式 (Normal Mode): 默认模式,用于导航和执行命令。插入模式 (Insert Mode): 用于文本输入。可以通过按 i 进入。可视模式 (Visual Mode): 用于选择…...

cocos2d-x安装和项目

首先多方查找资料发现教程很简洁,发现对自己的操作方面没多大帮助,后来干脆去官网,好像也很简洁。基于这样一个原因,加上我首次碰cocos2d-x,决定记录一下整个流程,解决实际操作上的疑惑。 涉及的方面&…...

因果推断 | 双重机器学习(DML)算法原理和实例应用

文章目录 1 引言2 DML算法原理2.1 问题阐述2.2 DML算法 3 DML代码实现3.1 策略变量为0/1变量3.2 策略变量为连续变量 4 总结5 相关阅读 1 引言 小伙伴们,好久不见呀。 距离上次更新已经过去了一个半月,上次发文章时还信誓旦旦地表达自己后续目标是3周更…...

Flutter 开源库学习

网上看了好多歌词实现逻辑相关资料,封装比较的好的 就 flutter_lyric,核心类是LyricsReader,而且如果实现逐字逐句歌词编辑功能还需要自己实现很多细节 ,网友原话是 :歌词的功能真的是不少,写起来也是挺难的…...

自主巡航,目标射击

中国机器人及人工智能大赛 参赛经验: 自主巡航赛道 【机器人和人工智能——自主巡航赛项】动手实践篇-CSDN博客 主要逻辑代码 #!/usr/bin/env python #coding: utf-8import rospy from geometry_msgs.msg import Point import threading import actionlib impor…...

MySQL中EXPLAIN关键字详解

昨天领导突然问到,MySQL中explain获取到的type字段中index和ref的区别是什么。 这两种状态都是在使用索引后产生的,但具体区别却了解不多,只知道ref相比于index效率更高。 因此,本文较为详细地记录了MySQL性能中返回字段的含义、状…...

如何理解ref toRef和toRefs

是什么 ref 生成值类型的响应式数据可用于模板和reactive通过.value修改值 ref也可以像vue2中的ref那样使用 toRef 针对一个响应式对象(reactive)的prop创建一个ref两者保持引用关系 toRefs 将响应式对象(reactive封装)转换…...

【linux】kernel-trace

文章目录 linux kernel trace配置trace内核配置trace接口使用通用配置Events配置Function配置Function graph配置Stack trace设置 跟踪器tracer功能描述 使用示例1.irqsoff2.preemptoff3.preemptirqsoff linux kernel trace 配置 源码路径: kernel/trace trace内…...

【Golang 面试基础题】每日 5 题(一)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...

ETCD介绍以及Go语言中使用ETCD详解

ETCD介绍以及Go语言中使用ETCD详解 什么是etcd ETCD是一个分布式、可靠的key-value存储的分布式系统,用于存储分布式系统中的关键数据;当然,它不仅仅用于存储,还提供配置共享及服务发现;基于Go语言实现 。 etcd的特点 完全复制:集群中的每个节点都可以使用完整的存档高…...

03-用户画像+Elasticsearch

优点 es支持海量数据的写入和更新es可以和hadoop,hive及spark进行集成es支持hivesql的操作,可以通过hivesql将数据导入eses的在进行数据检索查询是速度比较快es是分布式存储 应用 全文检索 全文检索流程: 1-对文档数据(文本数据)进行分词 2-将分词…...

初学Mybatis之搭建项目环境

在连接 mysql 数据库时,遇到了个 bug,之前都能连上,但报错说换了个 OS 操作系统什么的 然后搜索怎么连接,找到了解决方法 MySQL MYSQL – 无法连接到本地MYSQL服务器 (10061)|极客教程 (geek-docs.com) 命令行输入 services.msc…...

JMeter使用小功能-(持续更新)

1、jmeter在同一个线程组内,uuid的复用 方式一: 方式二: 2、获得jMeter使用的线程总数 ctx.getThreadGroup().getNumberOfThreads()来表示活动线程总数 int threadNumctx.getThreadGroup().getNumThreads(); String threads Integer…...

科研绘图系列:R语言火山图(volcano plot)

介绍 火山图(Volcano Plot),也称为火山图分析,是一种在生物信息学和基因组学中常用的图形表示方法,主要用于展示基因表达数据的差异。它通常用于基因表达微阵列或RNA测序数据的可视化,帮助研究人员识别在不同条件下表达差异显著的基因。 火山图的基本构成 X轴:通常表示…...

docker firewalld 防火墙设置

1、环境 centos 7 firewalld docker-ce docker 默认会更改防护墙配置 导致添加的防火墙策略不生效,可以启用firewalld 重新设置策略 2、启用防火墙 systemctl start firewalld systemctl enable firewalld3、配置文件禁用docker 的iptables /etc/docker/daemon.js…...

《问题004:报错-JS问题-unknown: Invalid shorthand property initializer.》

问题描述: unknown: Invalid shorthand property initializer. (25:13) unknown:无效的简写属性初始化项 解决方法: “”应该写为“:”(globalData 改成 globalData: )...

什么是 MLPerf?

什么是 MLPerf? MLPerf 是一个用于衡量机器学习硬件、软件和服务性能的标准化基准测试平台。它由 MLCommons 组织开发,该组织是由多家领先的科技公司和学术机构组成的。MLPerf 的目标是通过一系列标准化的基准测试任务和数据集,提供一个统一…...

【SpringBoot】第3章 SpringBoot的系统配置

3.1 系统配置文件 3.1.1 application.properties SpringBoot支持两种不同格式的配置文件,一种是Properties,一种是YML。 SpringBoot默认使用application.properties作为系统配置文件,项目创建成功后会默认在resources目录下生成applicatio…...

ELK日志分析系统部署文档

一、ELK说明 ELK是Elasticsearch(ES) Logstash Kibana 这三个开源工具组成,官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…...

ue5笔记

1 点光源 聚光源 矩形光源 参数比较好理解 (窗口里面)环境光混合器:快速创造关于环境光的组件 大气光源:太阳光,定向光源 天空大气:蓝色的天空和大气 高度雾:大气下面的高度感的雾气 体积…...

DeepSeek RAG系统渗透测试全链路复现(含PoC代码与防御加固清单)

更多请点击: https://kaifayun.com 第一章:DeepSeek RAG系统渗透测试全链路复现概览 DeepSeek RAG系统作为面向企业级知识检索增强生成的典型架构,其安全边界不仅涵盖LLM服务层,更延伸至向量数据库、检索代理、提示工程网关及外部…...

网易云音乐NCM转MP3终极指南:ncmdump工具完整使用教程

网易云音乐NCM转MP3终极指南:ncmdump工具完整使用教程 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经从网易云音乐下载了心爱的歌曲,却发现只能在特定播放器上收听?NCM格式的限制让音乐…...

为什么视频代剪辑会影响你的内容传播效果

为什么你精心拍的视频,发出去却没人看? 你有没有过这样的经历:花了一整天拍Vlog,素材画质高清、内容真实,可一剪出来就显得平淡无奇,点赞寥寥?或者婚礼当天感动全场,回看成片却像流水…...

光轮智能 谢晨 访谈总结机器人仿真数据产业

光轮智能 谢晨 访谈总结机器人仿真关于创始人关于数据数据金字塔数据痛点仿真数据的重要性仿真数据的质量b站链接地址公司官网关于创始人 清华物理;哥伦比亚金融;英伟达智驾仿真;小鹏智驾仿真;现为光轮智能CEO 关于数据 数据的…...

League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理?

League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理? 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Leag…...

XXPermissions:Android权限管理框架的架构设计与最佳实践

XXPermissions:Android权限管理框架的架构设计与最佳实践 【免费下载链接】XXPermissions Android Permissions Framework, Adapt to Android 16 项目地址: https://gitcode.com/GitHub_Trending/xx/XXPermissions 在Android应用开发中,权限管理一…...

基于Shapley值与随机森林的印度CPI通胀预测与特征重要性分析

1. 项目概述与核心价值在宏观经济预测领域,通胀预测的准确性直接关系到货币政策制定、市场预期管理乃至社会民生稳定。传统的计量经济学模型,如基于菲利普斯曲线的线性回归,虽然具有良好的可解释性,但在捕捉现实世界中复杂、非线性…...

别再死记硬背了!用‘重复局面’这道CSP真题,带你彻底搞懂C++中map容器的使用场景与底层逻辑

从国际象棋到红黑树:用CSP真题解锁C map的底层力量 国际象棋大师卡斯帕罗夫曾说:"棋局如同程序,每一步都是对数据结构的选择。"当我们面对CSP考试中那道看似简单的"重复局面"题时,表面上是考察字符串处理能力…...

突破百度网盘速度壁垒:Python直链解析工具的技术实现与应用

突破百度网盘速度壁垒:Python直链解析工具的技术实现与应用 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字资源共享的时代,百度网盘作为国内主流…...

毕业论文难写?2026年AI写作辅助平台排行榜权威发布,轻松定稿不是梦!

写论文效率低、熬夜赶稿、查重不过关?别慌!2026 年最新 AI 论文写作工具合集来了,覆盖选题、大纲、初稿、润色、降重、格式、文献引用全流程,帮你精准匹配最适合的学术助手,彻底告别论文内耗!🏆…...