Vim学习笔记

博客主页:https://tomcat.blog.csdn.net
博主昵称:农民工老王
主要领域:Java、Linux、K8S
期待大家的关注💖点赞👍收藏⭐留言💬
家乡

目录

  • 模式介绍
  • 指令概览
  • 启动退出
  • 移动光标
  • 插入
  • 删除
  • 复制
  • 替换
  • 撤销
  • 搜索
  • 信息
  • 设置
  • 外部命令
  • 技巧

模式介绍

Vim有以下四种主要模式:

  • 正常(normal)模式(也称为普通模式),缺省的编辑模式;如果不加特殊说明,一般提到的命令都直接在正常模式下输入;在任何其他模式中,都可以通过键盘上的Esc键回到正常模式。
  • 插入(insert)模式,输入文本时使用;比如在正常模式下键入 i(insert)或 a(append)即可进入插入模式。
  • 可视(visual)模式,用于选定文本块;教程中已经提到可以用键v(小写)来按字符选定,Vim里也提供其他不同的选定方法,包括按行和按列块。
  • 命令行(command-line)模式,用于执行较长、较复杂的命令;在正常模式下键入冒号(:)即可进入该模式;使用斜杠(/)和问号(?)开始搜索也算作命令行模式。命令行模式下的命令要输入回车键( Enter)才算完成.

按下 ESC 键会带您回到正常模式或者撤消一个不想输入或部分完整的命令。

此外,Vim也有个选择(select)模式,与普通的Windows编辑器行为较为接近,选择内容后再输入任何内容,将会替换选择的内容。在以可视模式和选择模式之一选定文本块之后,可以使用Ctrl-G切换到另一模式。这个模式主要是为了模拟 Windows 编辑器的行为,并不是Vim的主要用法,使用它反而会给Vim里的自动化带来麻烦,所以我们也就不多作介绍了。

指令概览

基础指令
请添加图片描述
完全指令
请添加图片描述

启动退出

  • 进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>
  • 退出 Vim 编辑器,请输入 :q! <回车> 放弃所有改动。或者输入 :wq <回车> 保存改动。

移动光标

h:左移
j:下行
k:上行
l :右移

  • 0 (数字零): 移动光标到行首。
  • 数字+w:如2w,使光标右移两个单词,以单词后的空格为计数的标准,计数包括光标本身的单词,光标将停在目标单词的第一个字符。
    在这里插入图片描述
  • 数字+e:如2e,使光标右移两个单词,以单词本身为计数的标准,计数包括光标本身的单词,光标将停在目标单词的最后一个字符。
    在这里插入图片描述

G:可以使得当前光标直接跳转到文件最后一行。
gg:光标直接跳转到文件第一行。
%:查找配对的括号,包含( )、[ ]、{ }。

插入

i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
s:删除光标所在的字符并开始插入
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入

删除

以下所有删除实际上是剪切,删除的内容会被存储在剪切板中。可以通过p进行粘贴。

x:删除光标所在位置的字符
de:删除 [ 光标所在位置,光标所在单词的最后一个字符)
dw:删除 [ 光标所在位置,下一个单词的第一个字符)
d$:删除 [ 光标所在位置,本行最后一个字符]
dd:删除该行。
cw / ce:删除 [ 光标所在位置,光标所在单词的最后一个字符),然后在光标所在位置进入编辑模式。
c$:删除 [ 光标所在位置,本行最后一个字符],然后在光标所在位置进入编辑模式。

复制

按v进入可视模式。
移动光标,以选中需要复制的文本。
按y复制。
将光标移动到目标位置
按p粘贴

替换

r:替换光标所在字符,输入替换后的字符后,立刻退出编辑模式。
R:替换光标所在字符,输入替换后的字符后,光标向右移动一个位置,准备替换下一个字符,按才退出替换的状态。
:s/old/new :在一行内替换头一个字符串 old 为新的字符串 new。
:s/old/new/g 在一行内替换所有的字符串 old 为新的字符串 new。
:#,#s/old/new/g:替换两行之间出现的每个匹配串,其中 #,# 代表的是替换操作的若干行中 首尾两行的行号。
:%s/old/new/g:在文件内替换所有的字符串 old 为新的字符串 new。
:%s/old/new/gc:会找到整个文件中的每个匹配串,并且对每个匹配串,提示是否进行替换。

撤销

u (小写的u):撤消以前的操作。
U (大写的U):撤消在一行中所做的改动。
CTRL-R:撤消以前的撤消命令,恢复以前的操作结果。

搜索

  • 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底部,这跟 : 命令是一样的。
  • 接着输入 待查找的字符串,然后按回车键。
  • n键查找下一个。按N查找上一个。
  • 如果您想逆向查找字符串,请使用 ? 代替 / 进行。

信息

CTRL-G:显示当前编辑文件中当前光标所在行位置以及文件状态信息。

设置

set number: 显示行号,可简写为set nu
set nonumber:关闭行号,可简写为 set nonu
set list:把制表符显示为^I ,用$标示行尾。
set readonly:设置只读。
set tabstop=4:设置 tab space 为4个空格,可简写为set ts=4,此处的4可以换为任意正整数。

外部命令

输入! 然后紧接着输入一个外部命令可以执行该外部命令。

技巧

Vim的行内编辑可以归纳为[n]at

  • [n]是可选的量词,表示处理对象的数量。
  • a表示action,可以是c(change),y(yank),d(delete)。
  • t表示target,可以是w(word),e(end),$(行尾),0(行首)。
  • c是change,执行c动作后会进入编辑模式,d是delete,执行d动作后不会进入编辑模式,注意二者区别,灵活使用。
  • w和e的区别在于如何处理空格,w把空格当做当前word的一部分,e则不处理空格。
  • 关于word间空格的一个例外是,c不处理,所以cw和ce是一样的,而y,d则会处理空格,所以yw,ye,或dw,de不一样。
  • W或E则表示在action处理时包括标点。

如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。

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

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

相关文章

Emmabuntüs Debian Edition 5 正式发布

导读来自 Emmabunts Collective 的 Patrick d’Emmabunts 近日向 9to5Linux.com 通报了 Emmabunts Debian Edition 5 1.00 的发布和全面可用性&#xff0c;该版本是用于翻新旧电脑的 GNU/Linux 发行版的最新稳定版本。 Emmabunts Debian Edition 5是在Emmabunts Debian Edition…

安全渗透测试基础之漏洞扫描工具之Nessus使用介绍

前置条件:Nessus工具使用前要确保工具是服务状态 systemctl start nessusd.service 启动nessus服务 systemctl status nessusd.service 查看nessus服务状态 1.配置扫描模板 2.新增高级扫描 2.1 设置日程表: 2.2设置邮件收件人(可选): 2.3主机发现: 2.

vue3简易文字验证码

大神勿喷&#xff0c;简易版本&#xff0c;demo中可以用一下。 需要几个文字自己codelen 赋值 灵活点直接父组件传过去&#xff0c;可以自己改造 首先创建一个生成数字的js **mathcode.js**function MathCode(num){let str "寻寻觅觅冷冷清清凄凄惨惨戚戚乍暖还寒时候…

字符串函数与内存函数讲解

文章目录 前言一、字符串函数1.求字符串长度strlen 2.长度不受限制的字符串函数(1)strcpy(2)strcat(3)strcmp 3.长度受限制的字符串函数(1)strncpy(2)strncat(3)strncmp 4.字符串查找(1)strstr(2)strtok 5.错误信息报告(1)strerror(2)perror 二、内存函数1.memcpy2.memmove3.me…

如何开发物联网 APP?

如何开发物联网 APP? 这个问题本身是不严谨的&#xff0c;APP只是手机端的一个控制或者用于显示的人机交互页面&#xff0c;物联网是通过传感器&#xff0c;物联网卡等模块把物体接入网络以方便远程监控或者控制等。 你问的应该是怎么开发出来一个远程控制物体的APP吧&#x…

基于TDOA和FDOA的RSSI定位算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1TDOA&#xff08;Time Difference of Arrival&#xff09;定位算法 4.2 FDOA&#xff08;Frequency Difference of Arrival&#xff09;定位算法 5.算法完整程序工程 1.算法运行效果图预…

基于vue+Element Table Popover 弹出框内置表格的封装

文章目录 项目场景&#xff1a;实现效果认识组件代码效果分析 封装&#xff1a;代码封装思路页面中使用 项目场景&#xff1a; 在选择数据的时候需要在已选择的数据中对比选择&#xff0c;具体就是点击一个按钮&#xff0c;弹出一个小的弹出框&#xff0c;但不像对话框那样还需…

亘古难题:前端开发 or 后端开发

目录 一、引言二、两者的对比分析1. 技能要求和专业知识前端开发后端开发 2. 职责和工作内容前端开发后端开发 3. 项目类型和应用领域前端开发后端开发 4. 就业前景和市场需求前端开发后端开发 三、技能转换和跨领域工作四、介绍全栈开发五、结语附、开源项目微服务商城项目前后…

SimpleCG动画示例--汉诺塔动画演示

前言 SimpleCG的使用方法在前面已经介绍了许多&#xff0c;有兴趣的同学如果有去动手&#xff0c;制作一些简单动画应该没多大问题的。所以这次我们来演示一下简单动画。我们刚学习C语言的递归函数时&#xff0c;有一个经典例子相信很多同学都写过&#xff0c;那就是汉诺塔。那…

UE4 Cesium 与ultra dynamic sky插件天气融合

晴天&#xff1a; 雨天&#xff1a; 雨天湿度&#xff1a; 小雪&#xff1a; 中雪&#xff1a; 找到该路径这个材质&#xff1a; 双击点开&#xff1a; 将Wet_Weather_Effects与Snow_Weather_Effects复制下来&#xff0c;包括参数节点 找到该路径这个材质&#xff0c;双击点开&…

Linux CentOS7 vim重复行

在用vim编辑处理文件时&#xff0c;会有重复行。有的是情境需要&#xff0c;有的可能是误操作而形成。对于正常形成的重复行&#xff0c;我们不作讨论&#xff0c;我们仅讨论什么情况下会出现重复行&#xff0c;如何避免&#xff0c;如何处理。 在文件中的单行或多个连续空白行…

mysql的mvcc详解

一 MVCC的作用 1.1 mvcc的作用 1.MVCC&#xff08;Multiversion Concurrency Control&#xff09;多版本并发控制。即通过数据行的多个版本管理来实现数据库的并发控制&#xff0c;使得在InnoDB事务隔离级别下执行一致性读操作有了保障。 2.mysql中的InnoDB中实现了MVCC主要…

Qt Creator 预览界面 快捷键

一般来说&#xff0c;我们运行Qt程序所花费的时间是比较长的&#xff0c;那有时我们只改变了界面&#xff0c;那么此时花费如此长的时间去运行程序来观察界面改动的效果是非常浪费时间的行为。 此时我们可以选择预览界面来观察界面改动后的效果&#xff1a;

[Linux] 6.VMware虚拟机网络配置

在VMware虚拟机下可以在虚拟网络编辑器看到三种模式 一、Bridged&#xff08;桥接模式&#xff09; 桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。 真机、虚拟机都有自己的ip地址&#xff0c;能互相通讯&#xff0c;而且能上网。 功能齐全&#xff0c;但…

MySql出错点

一、DDL 1.修改表&#xff0c;添加新的字段时&#xff0c;不要加引号 2.在修改表中字段的类型时&#xff0c;会发生数据截断。 像DATETIME 转化为 TIME 二、DML 1.插入和删除的注意点 2.可以通过 select 来协助插入 3.

全连接网络实现回归【房价预测的数据】

也是分为data&#xff0c;model&#xff0c;train&#xff0c;test import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optimclass FCNet(nn.Module):def __init__(self):super(FCNet,self).__init__()self.fc1 nn.Linear(331,200)s…

java Spring Boot 将日志写入文件中记录

我们之前的一套操作来讲 日志都是在控制台上的 但 如果你的项目在正式环境上跑 运维人员突然告诉你说日志报错了&#xff0c;但你日志只在控制台上&#xff0c;那公司项目如果访问量很大 那你是很难在控制台上找到某一条日志的 这时 我们就可以用文件把它记下来 我们打开项目 …

[DS资源推荐] Data Structure 严书配套代码

下图引入自康建伟老师博客 Github地址 使用说明&#xff1a;康老师博客 使用感受&#xff1a;Orz&#xff01;非常非常非常全面&#xff01;终于能看得下去严书了…

【AI视野·今日NLP 自然语言处理论文速览 第四十期】Mon, 25 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 25 Sep 2023 Totally 46 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers ReConcile: Round-Table Conference Improves Reasoning via Consensus among Diverse LLMs Authors Justin C…

Linux性能优化--性能工具-系统CPU

2.0.概述 本章概述了系统级的Linux性能工具。这些工具是你追踪性能问题时的第一道防线。 它们能展示整个系统的性能情况和哪些部分表现不好。 1.理解系统级性能的基本指标&#xff0c;包括CPU的使用情况。 2.明白哪些工具可以检索这些系统级性能指标。2.1CPU性能统计信息 为了…