【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 用户手册
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
【linux vim使用说明】
基本概念 提示:本文是网络资源整理 模式: vim 有多种模式,每种模式都有不同的功能。 普通模式 (Normal Mode): 默认模式,用于导航和执行命令。插入模式 (Insert Mode): 用于文本输入。可以通过按 i 进入。可视模式 (Visual Mode): 用于选择…...
![](https://i-blog.csdnimg.cn/direct/0fb9274b03ef4889a82ab4733bacdfa5.png)
cocos2d-x安装和项目
首先多方查找资料发现教程很简洁,发现对自己的操作方面没多大帮助,后来干脆去官网,好像也很简洁。基于这样一个原因,加上我首次碰cocos2d-x,决定记录一下整个流程,解决实际操作上的疑惑。 涉及的方面&…...
![](https://img-blog.csdnimg.cn/img_convert/687031467fd7fb6399a1486b26ecda64.png)
因果推断 | 双重机器学习(DML)算法原理和实例应用
文章目录 1 引言2 DML算法原理2.1 问题阐述2.2 DML算法 3 DML代码实现3.1 策略变量为0/1变量3.2 策略变量为连续变量 4 总结5 相关阅读 1 引言 小伙伴们,好久不见呀。 距离上次更新已经过去了一个半月,上次发文章时还信誓旦旦地表达自己后续目标是3周更…...
![](https://www.ngui.cc/images/no-images.jpg)
Flutter 开源库学习
网上看了好多歌词实现逻辑相关资料,封装比较的好的 就 flutter_lyric,核心类是LyricsReader,而且如果实现逐字逐句歌词编辑功能还需要自己实现很多细节 ,网友原话是 :歌词的功能真的是不少,写起来也是挺难的…...
![](https://i-blog.csdnimg.cn/direct/12facf75f15844a1a0d767662ba84f7a.png)
自主巡航,目标射击
中国机器人及人工智能大赛 参赛经验: 自主巡航赛道 【机器人和人工智能——自主巡航赛项】动手实践篇-CSDN博客 主要逻辑代码 #!/usr/bin/env python #coding: utf-8import rospy from geometry_msgs.msg import Point import threading import actionlib impor…...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL中EXPLAIN关键字详解
昨天领导突然问到,MySQL中explain获取到的type字段中index和ref的区别是什么。 这两种状态都是在使用索引后产生的,但具体区别却了解不多,只知道ref相比于index效率更高。 因此,本文较为详细地记录了MySQL性能中返回字段的含义、状…...
![](https://www.ngui.cc/images/no-images.jpg)
如何理解ref toRef和toRefs
是什么 ref 生成值类型的响应式数据可用于模板和reactive通过.value修改值 ref也可以像vue2中的ref那样使用 toRef 针对一个响应式对象(reactive)的prop创建一个ref两者保持引用关系 toRefs 将响应式对象(reactive封装)转换…...
![](https://www.ngui.cc/images/no-images.jpg)
【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内…...
![](https://www.ngui.cc/images/no-images.jpg)
【Golang 面试基础题】每日 5 题(一)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...
![](https://www.ngui.cc/images/no-images.jpg)
ETCD介绍以及Go语言中使用ETCD详解
ETCD介绍以及Go语言中使用ETCD详解 什么是etcd ETCD是一个分布式、可靠的key-value存储的分布式系统,用于存储分布式系统中的关键数据;当然,它不仅仅用于存储,还提供配置共享及服务发现;基于Go语言实现 。 etcd的特点 完全复制:集群中的每个节点都可以使用完整的存档高…...
![](https://i-blog.csdnimg.cn/direct/0904019666e7498daa5337795df99ccd.png)
03-用户画像+Elasticsearch
优点 es支持海量数据的写入和更新es可以和hadoop,hive及spark进行集成es支持hivesql的操作,可以通过hivesql将数据导入eses的在进行数据检索查询是速度比较快es是分布式存储 应用 全文检索 全文检索流程: 1-对文档数据(文本数据)进行分词 2-将分词…...
![](https://i-blog.csdnimg.cn/direct/bd5ef263c498472790c3b3eef3a52f5b.png)
初学Mybatis之搭建项目环境
在连接 mysql 数据库时,遇到了个 bug,之前都能连上,但报错说换了个 OS 操作系统什么的 然后搜索怎么连接,找到了解决方法 MySQL MYSQL – 无法连接到本地MYSQL服务器 (10061)|极客教程 (geek-docs.com) 命令行输入 services.msc…...
![](https://i-blog.csdnimg.cn/direct/d1926a4f6fa847f992391abbdb7385e6.png)
JMeter使用小功能-(持续更新)
1、jmeter在同一个线程组内,uuid的复用 方式一: 方式二: 2、获得jMeter使用的线程总数 ctx.getThreadGroup().getNumberOfThreads()来表示活动线程总数 int threadNumctx.getThreadGroup().getNumThreads(); String threads Integer…...
![](https://www.ngui.cc/images/no-images.jpg)
科研绘图系列:R语言火山图(volcano plot)
介绍 火山图(Volcano Plot),也称为火山图分析,是一种在生物信息学和基因组学中常用的图形表示方法,主要用于展示基因表达数据的差异。它通常用于基因表达微阵列或RNA测序数据的可视化,帮助研究人员识别在不同条件下表达差异显著的基因。 火山图的基本构成 X轴:通常表示…...
![](https://i-blog.csdnimg.cn/direct/8e9fb9e753a948bf937d881159193c27.png)
docker firewalld 防火墙设置
1、环境 centos 7 firewalld docker-ce docker 默认会更改防护墙配置 导致添加的防火墙策略不生效,可以启用firewalld 重新设置策略 2、启用防火墙 systemctl start firewalld systemctl enable firewalld3、配置文件禁用docker 的iptables /etc/docker/daemon.js…...
![](https://img-blog.csdnimg.cn/img_convert/fab25351c6179d8b96e1cd1e127cc756.png)
《问题004:报错-JS问题-unknown: Invalid shorthand property initializer.》
问题描述: unknown: Invalid shorthand property initializer. (25:13) unknown:无效的简写属性初始化项 解决方法: “”应该写为“:”(globalData 改成 globalData: )...
![](https://www.ngui.cc/images/no-images.jpg)
什么是 MLPerf?
什么是 MLPerf? MLPerf 是一个用于衡量机器学习硬件、软件和服务性能的标准化基准测试平台。它由 MLCommons 组织开发,该组织是由多家领先的科技公司和学术机构组成的。MLPerf 的目标是通过一系列标准化的基准测试任务和数据集,提供一个统一…...
![](https://www.ngui.cc/images/no-images.jpg)
【SpringBoot】第3章 SpringBoot的系统配置
3.1 系统配置文件 3.1.1 application.properties SpringBoot支持两种不同格式的配置文件,一种是Properties,一种是YML。 SpringBoot默认使用application.properties作为系统配置文件,项目创建成功后会默认在resources目录下生成applicatio…...
![](https://i-blog.csdnimg.cn/direct/984ce14762064497916bf72b30b5ce30.png)
ELK日志分析系统部署文档
一、ELK说明 ELK是Elasticsearch(ES) Logstash Kibana 这三个开源工具组成,官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…...
![](https://i-blog.csdnimg.cn/direct/5b230d22e3a24cc8bee2de140d2c324c.png)
ue5笔记
1 点光源 聚光源 矩形光源 参数比较好理解 (窗口里面)环境光混合器:快速创造关于环境光的组件 大气光源:太阳光,定向光源 天空大气:蓝色的天空和大气 高度雾:大气下面的高度感的雾气 体积…...
![](https://i-blog.csdnimg.cn/direct/5c63f53ae43b46d1a5a6af9491f504ba.png)
TCP重传机制详解
1.什么是TCP重传机制 在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回⼀个确认应答消息,表示已收到消息。 但是如果传输的过程中,数据包丢失了,就会使⽤重传机制来解决。TCP的重传机制是为了保证数据传输的…...
![](https://www.ngui.cc/images/no-images.jpg)
如何使用javascript将商品添加到购物车?
使用JavaScript将商品添加到购物车可以通过以下步骤实现: 创建一个购物车对象,可以是一个数组或者对象,用于存储添加的商品信息。在网页中的商品列表或详情页面,为每个商品添加一个“添加到购物车”的按钮,并为按钮绑…...
![](https://img-blog.csdnimg.cn/img_convert/912458b58932012c1128d52000fda994.png)
【MySQL】:想学好数据库,不知道这些还想咋学
客户端—服务器 客户端是一个“客户端—服务器”结构的程序 C(client)—S(server) 客户端和服务器是两个独立的程序,这两个程序之间通过“网络”进行通信(相当于是两种角色) 客户端 主动发起网…...
![](https://www.ngui.cc/images/no-images.jpg)
1.关于linux的命令
1.关于文件安装的问题 镜像站点服务器:cat /etc/apt/sources.list 索引文件:cd /var/lib/apt/lists 下载文件包存在的路径:cd /etc/cache/apt/archives/2.关于dpkg文件安装管理器的应用: 安装文件:sudo dpkg -i 文件名; 查找文件目录:sudo …...
![](https://i-blog.csdnimg.cn/direct/e50b730d5dba42a9bc449e8c84c9c1cf.png)
【人工智能】机器学习 -- 决策树(乳腺肿瘤数)
目录 一、使用Python开发工具,运行对iris数据进行分类的例子程序dtree.py,熟悉sklearn机器实习开源库。 二、登录https://archive-beta.ics.uci.edu/ 三、使用sklearn机器学习开源库,使用决策树对breast-cancer-wisconsin.data进行分类。 …...
![](https://img-blog.csdnimg.cn/img_convert/d56a169288c163c8e749cf16685d3e46.png)
【proteus经典实战】LCD滚动显示汉字
一、简介 Proteus是一款功能丰富的电子设计和仿真软件,它允许用户设计电路图、进行PCB布局,并在虚拟环境中测试电路功能。这款软件广泛应用于教育和产品原型设计,特别适合于快速原型制作和电路设计教育。Proteus的3D可视化功能使得设计更加直…...
![](https://www.ngui.cc/images/no-images.jpg)
数据结构复习1
1、什么是集合? 就是一组数据的集合体,就像篮子装着苹果、香蕉等等,这些“水果”就代表数据,“篮子”就是这个集合。 集合的特点: 集合用于存储对象。 对象是确定的个数可以用数组,如果不确定可以用集合…...
![](https://www.ngui.cc/images/no-images.jpg)
订单管理系统需求规范
1. 引言 1.1 目的 本文档旨在明确描述订单管理系统的功能、非功能性需求以及约束条件,以指导系统的分析、设计、开发、测试和部署。 1.2 范围 本系统将支持在线订单处理,从客户下单到完成配送的全过程管理,包括库存管理、支付处理、订单跟…...
![](https://i-blog.csdnimg.cn/direct/d5cf100fc5e24fb6ae3d3b3360981421.gif)
swiftui使用ScrollView实现左右滑动和上下滑动的效果,仿小红书页面
实现的效果如果所示,顶部的关注用户列表可以左右滑动,中间的内容区域是可以上下滚动的效果,点击顶部的toolbar也可以切换关注/发现/附近不同页面,实现翻页效果。 首页布局 这里使用了NavigationStack组件和tabViewStyle样式配置…...
![](https://www.ngui.cc/images/no-images.jpg)
深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数
引言 在处理字符串数据时,经常需要根据特定的分隔符来分割字符串或提取字符串的特定部分。MySQL 提供了一个非常有用的函数 SUBSTRING_INDEX 来简化这类操作。本文将详细介绍 SUBSTRING_INDEX 的使用方法、语法,以及通过实际案例来展示其在数据库查询中…...
![](/images/no-images.jpg)
门户网站建站方案/抖音seo搜索优化
模型实例方法 str():在将对象转换成字符串时会被调用。save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句。delete():将模型对象从数据表中删除,ORM框架会转换成对应的delete语句。模型类的属…...
![](/images/no-images.jpg)
深圳网站建设公司设计/网站平台搭建
html页面在苹果手机内,safari浏览器,微信中滑动不流畅问题解决方案参考文章: (1)html页面在苹果手机内,safari浏览器,微信中滑动不流畅问题解决方案 (2)https://www.cn…...
![](/images/no-images.jpg)
武昌网站建设 优帮云/宁波seo优化外包公司
https://www.zhihu.com/question/36301367 https://wk.baidu.com/view/15da59acdd3383c4bb4cd2be...
![](https://img-blog.csdnimg.cn/img_convert/aec8b095418ac0e804c9909be215ad8e.png)
做网站需要注意的/成人馆店精准引流怎么推广
1 引言高阶组件( higher-order component ,HOC )是 React 中复用组件逻辑的一种进阶技巧。它本身并不是 React 的 API,而是一种 React 组件的设计理念,众多的 React 库已经证明了它的价值,例如耳熟能详的 r…...
![](/images/no-images.jpg)
wordpress后台如何设置404页面/上海seo优化bwyseo
理论准备 应用数据一般存储在"系统根目录/data/data"下,一般直接替换即可替换用户数据软件“钛备份”可以将应用数据从data/data下提取到sdcard下的钛备份目录下,并打包成.tar.gz(钛备份备份的一般有三个文件,分别是文件…...
![](http://5b0988e595225.cdn.sohucs.com/images/20181012/5f683c24efd84306bee70cf583b3e8a2.png)
程序员自己做项目网站/公司网站如何推广
emcms是国内第一个开源外贸的网站管理系统,目前大多数的外贸网站都是用的semcms系统,该系统兼容许多浏览器,像IE,google,360极速浏览器都能非常好的兼容,官方semcms有php版本,asp版本,我们SINE对其安全检测的同时发现该…...