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

Vim入门教程vimtutor1.7总结

vimtutor命令可以打开教程文档

原文特别提示 ⬇⬇⬇

特别提示:切记您要在使用中学习,而不是在记忆中学习

Vim模式

  • 正常模式(Normal Mode):默认模式,可以使用基础命令进行操作
  • 命令模式(Command Mode)::起手,可以使用比正常模式更加复杂的命令进行操作
  • 插入模式(Insert Mode):主要用于编写文档
  • 可视模式(Visual Mode):模拟鼠标选中内容
  • 替换模式(Replace Mode):用于替换字符

默认规则

  • Crtl组合键无需区分大小写
  • <key>表示某个按键
  • 所有的:命令都需要以<Enter>结束
  • 未特别说明的操作均在正常模式下执行
  • operator [number] motion操作符 [数字] 移动命令表示对numbermotion所扫过的区域进行operator操作,number可选,例如d4wc2e

Lesson 1

vim file_name:编辑文件
hjkl:分别用于向左、向下、向上、向右移动光标,方向键hjkl具有相同功能,3j表示光标向下移动3行
:q!:放弃所有修改并强制退出编辑器
x:用于将光标所在位置字符删除,3x表示删除光标位置及其之后的共3个字符
i:切换为插入模式
A:用于向该行末尾追加内容,会自动转为编辑模式并将光标置于光标所在行末尾
:wq:用于保存并退出编辑器
<Esc>:将切换为正常模式,并撤销一个不想输入或部分完整的命令
数字 + 方向键或hjkl:将光标向某个方向移动n次

Lesson 2

w:从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符
e:从当前光标当前位置直到单词末尾,包括最后一个字符
0:从当前光标当前位置移动到行首
$:从当前光标当前位置直到当前行末

2w:光标向后移动到第二个单词首字符
3e:光标向后移动到第三个单词末尾
4$:光标向后移动到第四行行尾

dw:将光标所在位置的单词删除
d2w:删除两个单词
d$:将光标所在位置及该位置至所在行末尾的所有字符删除
de:将光标所在位置及该位置至所在单词末尾的所有字符删除
d0:将光标所在位置及该位置至所在行首字符的所有字符删除

dd:删除整行
2dd:删除两行

U:撤销上次对某一行的修改(不包括整行删除、整行插入),U会撤销U本身,U只能撤销最新一次修改
u:撤销上一次编辑命令,包括U但不包括uCtrl r
Ctrl r:重做上一次命令,包括U但不包括uCtrl r

Lesson 3

粘贴
p:将最后一次删除的内容粘贴至光标之后,若为d$等非完整行内容,以字符为单位直接粘贴在光标之后,若为dd等完整行内容,以行为单位向下粘贴在新的行

替换
rc:c为任意字符,r会替换光标所在位置字符,c为指定的替换后的内容

修改
cw:删除光标至单词末尾字符,并切换为插入模式
c$:删除光标至行末尾字符
c4l:删除光标及其右边紧邻的共计4个字符,并切换为插入模式

Lesson 4

光标移动
gg:光标跳转至第一行
G:光标跳转至最后一行
5G:光标跳转至第5行

文件状态
Ctrl G:在最下方显示文件状态信息以及当前光标所在位置

查找
/str:自上而下查找字符串,str为要搜索的任意字符串
/str\c:自上而下查找字符串,str为要搜索的任意字符串,查找时忽略大小写
?str:自下而上查找字符串,str为要搜索的任意字符串
n:查找下一个满足条件的字符串
N:查找上一个满足条件的字符串
Ctrl O:返回到上一个查找位置
Ctrl I:返回下一个查找位置
%:配对括号查找,对光标所在位置的()[]{}使用该命令可以将光标跳到与之配对括号的的位置,可以用于在程序调试时查找不配对括号

替换
:s/old/new:将光标所在行的第一个old字符串替换为new
:s/old/new/g:将光标所在行所有的old字符串替换为new
:n1,n2/old/new/g:将[n1, n2]间的所有的old字符串替换为new
%s/old/new/g:将整个文件中所有的old字符串替换为new
:%s/old/new/gc:将整个文件中的old字符串替换为new,且每次替换前要确认(confirm)是否进行替换

Lesson 5

执行外部命令
:!command:在VIM内执行外部命令需要以:!为开头,command为任意外部命令,包括带命令行参数的命令,支持空命令:!

保存
:w filename:保存为filename文件。filename为文件名,若省略文件名则保存文件到当前
v motion :w FILENAME:部分保存,使用v切换为可视模式,以光标所在位置为起始位置,使用光标移动选择要保存的部分内容,直到下次使用:会触发:'<,'>,继续输入w filename可以保存为filename文件

可视模式
v:进入可视模式,移动光标可以选中内容,可以对选中的高亮内容进行操作,如d可以删除选中内容,c可以删除选中内容并切换为插入模式

提取与合并
:r filename:将filename文件的内容以行为单位粘贴至光标下方
:r !command:将command命令的结果以行为单位粘贴至光标下方,如:r !ls

Lesson 6

插入
o:在光标下方新开一行,并将光标移动至新开行行首,切换模式为插入模式
O:在光标上方新开一行,并将光标移动至新开行行首,切换模式为插入模式
i:保持光标不动,切换至插入模式
a:将光标向后移动一个字符,并切换至插入模式
A:将光标移动至行尾,并切换至插入模式
注:使用<Esc>退出插入模式时光标会在本行向左移动一个字符,若已在第一个字符则不会移动

替换
R:切换至替换模式,替换模式与插入模式类似,区别在于插入模式中每个输入的字符都会替换光标原本所在位置的字符

复制
y:将内容以字符为单位进行复制,使用p可以粘贴到光标位置之后,例如yw,或者切换至可视模式复制高亮内容

设置
:set ic:set ignorecase:ignore case,设置查找或者替换忽略大小写
:set noic:not ingore case,设置查找或者替换不忽略大小写

:set hls:set hlsearch:高亮显示所有的匹配短语
:set is:set incsearch:增量搜索
注:在选项前加no可以关闭设置

Lesson 7

帮助
<HELP><F1>:help:使用在线帮助系统
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
:help vimrc-intro

补全功能
首先确保VIm不是在以兼容模式运行:set nocp,在命令模式下输入部分命令:command,例如部分:!ls /root:!dirset number

<TAB>:自动选取一个补全命令
Ctrl D:列出补全备选向

Vim启动脚本
使用vimrc文件自定义VIm配置,下面是Vim风格的文件编辑方式:

  1. 开始编辑 vimrc 文件
:edit ~/.vimrc          这是 Unix 系统所使用的命令
:edit $VIM/_vimrc       这是 MS-Windows 系统所使用的命令
  1. 将示例文件复制过来

vimrc_example.vim通常位于/usr/share/vim/vimXXX文件夹下

:r $VIMRUNTIME/vimrc_example.vim
  1. 保存文件
:write

相关文章:

Vim入门教程vimtutor1.7总结

vimtutor命令可以打开教程文档 原文特别提示 ⬇⬇⬇ 特别提示&#xff1a;切记您要在使用中学习&#xff0c;而不是在记忆中学习 Vim模式 正常模式&#xff08;Normal Mode&#xff09;&#xff1a;默认模式&#xff0c;可以使用基础命令进行操作命令模式&#xff08;Command…...

Stephen Wolfram:让 ChatGPT 真正起作用的是什么?

What Really Lets ChatGPT Work? 让 ChatGPT 真正起作用的是什么&#xff1f; Human language—and the processes of thinking involved in generating it—have always seemed to represent a kind of pinnacle of complexity. And indeed it’s seemed somewhat remarkabl…...

CTF-Flask-Jinja2(持续更新)

放心&#xff0c;我会一直陪着你 一.知识一.在终端的一些指令1.虚拟环境2.docker容器二.SSTI相关知识介绍1.魔术方法2.python如何执行cmd命令3.SSTI常用注入模块(1)文件读取(2)内建函数eval执行命令(3)os模块执行命令(4)importlib类执行命令(5)linecache函数执行命令(6)subproc…...

linux文件I/O之 fcntl() 函数用法:设置文件的 flags、设置文件锁(记录锁)

头文件和函数声明 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ... /* arg */ ); 函数功能 获取、设置已打开文件的属性 返回值 成功时返回根据 cmd 传递的命令类型的执行结&#xff0c;失败时返回 -1&#xff0c;并设置 errno 为相…...

黑马项目一完结后阶段面试45题 JavaSE基础部分20题(一)

一、Java数据类型 基本数据类型——四类八种 整数型 byte short int long 浮点型 float double 字符型 char 布尔型 boolean 引用数据类型 String字符串 类&#xff08;对象&#xff09; 接口类型 数组类型 枚举类型 二、面向对象的三大特性 1.封装 把同一类事物…...

(一)创建型设计模式:3、建造者模式(Builder Pattern)

目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representatio…...

指针进阶大冒险:解锁C语言中的奇妙世界!

目录 引言 第一阶段&#xff1a;&#x1f50d; 独特的字符指针 什么是字符指针&#xff1f; 字符指针的用途 演示&#xff1a;使用字符指针拷贝字符串 字符指针与字符串常量 小试牛刀 第二阶段&#xff1a;&#x1f3af; 玩转指针数组 指针数组是什么&#xff1f; 指针…...

2.0 Maven基础

1. Maven概述 Maven概念 Apache Maven是一个软件项目管理工具&#xff0c;将项目开发和管理过程抽象程一个项目对象模型&#xff08;POM&#xff0c;Project Object Model&#xff09;。 Maven作用 项目构建 提供标准的、跨平台的自动化项目构建方式。 依赖管理 方便快捷…...

在Linux虚拟机内配置nginx以及docker

目录 1、nginx源码包编译以及安装依赖 1、配置安装所需的编译环境 2、安装函数库&#xff08;pcre、zlib、openssl&#xff09; 2、安装nginx 1、获取源码包 2、解压编译 3、启动nginx服务 1、关闭防火墙 2、运行nginx 3、使用本地浏览器进行验证 3、安装docker 1、…...

数据结构-带头双向循环链表的实现

前言 带头双向循环链表是一种重要的数据结构&#xff0c;它的结构是很完美的&#xff0c;它弥补了单链表的许多不足&#xff0c;让我们一起来了解一下它是如何实现的吧&#xff01; 1.节点的结构 它的节点中存储着数据和两个指针&#xff0c;一个指针_prev用来记录前一个节点…...

android Ndk Jni动态注册方式以及静态注册

目录 一.静态注册方式 二.动态注册方式 三.源代码 一.静态注册方式 1.项目名\app\src\main下新建一个jni目录 2.在jni目录下,再新建一个Android.mk文件 写入以下配置 LOCAL_PATH := $(call my-dir)//获取当前Android.mk所在目录 inclu...

MySQL中的索引

1.2.MySQL中的索引 InnoDB存储引擎支持以下几种常见的索引&#xff1a;B树索引、全文索引、哈希索引&#xff0c;其中比较关键的是B树索引 1.2.1.B树索引 InnoDB中的索引自然也是按照B树来组织的&#xff0c;前面我们说过B树的叶子节点用来放数据的&#xff0c;但是放什么数…...

idea中如何处理飘红提示

idea中如何处理飘红提示 在写sql时&#xff0c;总是会提示各种错误 查找资料&#xff0c;大部分都是说关提示&#xff0c;这里把错误提示选择为None即可 关掉以后&#xff0c;也确实不显示任何提示了&#xff0c;但总有一种掩耳盗铃的感觉 这个sms表明明存在&#xff0c;但是还…...

Elasticsearch使用中出现的错误

Elasticsearch使用中出现的错误 1、分页查询异常 在分页的过程中出现了一个问题是当查询的数据超过10000条的时候报了异常&#xff1a; from size must be less than or equal to: [10000]这个问题最快捷的解决方式是增大窗口大小&#xff1a; curl -XPUT http://127.0.0.…...

【IMX6ULL驱动开发学习】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)

目录 一、驱动程序编写流程 二、代码编写 2.1 驱动程序hello_drv.c 2.2 测试程序 2.3 编写驱动程序的Makefile 三、上机实验 3.1 NFS 挂载 3.2 测试示例 一、驱动程序编写流程 构造file_operations结构体 在里面填充open/read/write/ioctl成员 注册file_operations结…...

决策规划仿真平台搭建

决策规划仿真平台搭建 自动驾驶决策规划算法第二章第一节 决策规划仿真平台搭建 这部分的主要难点在于多个软件的连通与适配&#xff0c;环境的搭建总是折磨人的&#xff0c;主要是 4 个软件&#xff0c;各软件版本如下 Visual Studio2017PreScan8.5.0CarSim2019.0MATLAB2019b…...

计算图像哈希SHA-512

1、MATLAB实现 计算图像哈希值SHA-512,在文献[1]提到的算法如下: % Example Code: Create an MD5 crypto-hash of an arbitrary string, "str" % Main class of interest: System.Security.Cryptography.HashAlgorithm% Example String to hash with MD5 %…...

Android之消除APP图标的白色边框

有问题的效果&#xff1a; 解决方案&#xff1a; 第一步&#xff1a;app右键—>new—>Image Asset 第二步&#xff1a;上传Logo图标&#xff0c;选择每种分辨率&#xff0c;预览看效果&#xff0c;选择Resize&#xff0c;可以微调 第三步&#xff1a;点击 Next&#xff…...

java线程的优先级、守护线程的概念

1.线程的调度 抢占式调度 非抢占式调度 1.1 抢占式调度 优先级越高&#xff0c;抢到cpu的概率越高 1.2 守护线程 守护线程&#xff0c;非守护线程。当其他的非守护线程执行完毕以后&#xff0c;守护线程会陆续结束。 守护线程的应用场景...

asp.net core 6.0 efcore +sqlserver增删改查的demo

asp.net core 6.0 efcore sqlserver增删改查的demo 下面是一个使用ASP.NET Core 5.0和Entity Framework Core进行增删改查操作的示例。 首先&#xff0c;创建一个空的ASP.NET Core 6.0 Web应用程序项目。 然后&#xff0c;安装以下NuGet包&#xff1a; Microsoft.EntityFra…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...