vim 常见操作

Vim 工作模式

1、vim 三种基本的工作模式

vim有三种基本的工作模式,分别为:命令模式、末行模式、编辑模式。关于这三种工作模式的介绍,请见下文。

1.1、命令模式

使用vim打开文件之后,首先进入命令模式,它是vim编辑器的入口模式。在命令模式下,通过使用命令对文件进行常规的编辑操作,例如:复制、粘贴、删除、定位、翻页等等。

1.2、末行模式

末行模式是vim编辑器的出口,要退出vim,必须要在末行模式下。在末行模式下,执行退出文件、保存并退出文件等操作。

1.3、编辑模式

正常的编辑文字模式。

2、三种模式的切换操作

(1)vim打开一个文件进入的就是命令模式,另外两种模式需要回到命令模式才能进入彼此。

(2)在命令模式中按下i,I,o,O,a,A,r,R任何一个字母后进入编辑模式,进入编辑模式后,下方会出现INSERT或者REPLACE字样,按Esc键退出编辑模式,回到命令模式。

(3)在命令模式中按下:,/,?中任意一个即可进入末行模式,末行模式可以对文档或者vim环境进行操作,例如查找、读取、存盘、替换、离开、显示行号等。

3、三种模式的切换示意图

在这里插入图片描述
如上图所示,我们只要能灵活运用三个键:推出键esc、冒号键:、字母键i,就可以从容地在vim的三种模式中自由切换。

Vim 保存和退出命令

1、Vim 保存命令

1.1、:w命令,普通保存

英文全称是:write。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。注意,此命令保存编辑后的文件内容,但不退出vim编辑器。

1.2、:w!命令,强制保存

强制保存命令。如果原有文件的访问权限不允许写入文件,例如原有的文件为只读文件,则可使用这个命令强制写入。

2、Vim 保存并退出命令

2.1、:wq命令,保存并退出

英文全称是:write & quit。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中,然后退出vim编辑器。

备注:另外一种替代的方法是用ZZ命令。ZZ常用于描述睡觉的呼噜声,指人睡着了。用在vim中,也很形象贴切,退出vim编辑器让文件“睡觉”,不再打扰它。

2.2、:wq!命令,强制保存并退出

强制保存文件内容后退出vim编辑器。这个命令的作用是把内存缓冲区中的数据强制写到启动vim时指定的文件中,然后退出vim编辑器。

3、Vim 退出命令

3.1、:q命令

在未做任何编辑处理而准备退出vim时,可以使用此命令。如果已做过编辑处理,则vim不允许用户使用“:q”命令退出,同时还会输出下列警告信息:No write since last change (:quit! overrides)

3.2、:q!命令

强制退出vim编辑器,放弃编辑处理的结果。如果确实不需要保存修改后的文件内容,可输入“:q!”命令,强行退出vim编辑器。

Vim 翻页命令

提示:vim 翻页命令需要处于命令行模式。vim
三种模式的切换很简单,我们只要能灵活运用三个键:推出键esc、冒号键:、字母键i,就可以从容地在vim的三种模式中自由切换。更多介绍可以参考:《Vim
工作模式》

当我们使用vim编辑器查看脚本时,按上下键查看文档内容,这种工作方式效率很低。尤其是遇到突发情况,掌握vim的翻页快捷键十分有利于工作的开展。vim的翻页快捷键命令如下所示:

1、翻整页命令

Ctrl + f 键 (f 的英文全拼为:forward)
Ctrl + b 键 (b 的英文全拼为:backward)

2、翻半页命令

Ctrl + d 键 (d 的英文全拼为:down)
Ctrl + u 键 (u 的英文全拼为:up)

3、定位到页眉和页脚

直接查看该脚本的第一行,请输入:0,然后回车即可;直接查看该脚本的最后一行,请输入:$,然后回车即可。

这里是引用

备注:$ 常用于表示结尾的含义。

Vim 查找与替换

vim有强大的字符串查找功能。我们通常在vim下要查找字符串的时候,都是输入/或者?加上需要查找的字符串来进行搜索,比如,想搜索user这个单词,可以输入 :/user 或者 ?/user,两者的区别是前者是从上往下搜索,后者是从下往上搜索。

1、vim 查找字符串命令

1.1、从开头查找

在命令模式下,输入 😕 + 你要查找的字符,按下回车,可以看到vim把光标移动到该字符串处。

1.2、从结尾处查找

在命令模式下,输入 :? + 你要查找的字符,按下回车,就能搜索到字符串或字符。

备注:值得注意的是“/”是向下查找,而“?”是向上查找,而在键盘定义上“?”刚好是“/”的上档符。

1.3、上下匹配

默认情况下,搜索会定位到一个离当前光标最近的一个匹配结果。如果我们想要转到下一个/上一个搜索结果,请使用以下按键:

n – 寻找下一个匹配结果

N – 寻找上一个匹配结果

1.4、关闭高亮

搜索后,我们打开别的文件,发现也被高亮了,怎么关闭高亮?

命令模式下,输入:nohlsearch,当然,也可以简写为:noh。

2、vim 字符串替换

查找和替换是任意一款文本编辑器的一组常见和必备功能。Vim 使用以下命令结构实现替换功能。

替换
😒/old/new - 用new替换当前行第一个old。
😒/old/new/g - 用new替换当前行所有的old。
:n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old。
:%s/old/new/g - 用new替换文件中所有的old。
:%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。
:%s//xxx/g−在每一行的行尾插入xxx,/xxx/g−在每一行的行尾插入xxx,表示行尾。
所有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)。

g:全局替换
gc:在每次更换之前要求确认
gn:忽略替换功能并突出显示查找结果。

Vim 保存文件

1、vim保存文件并设置文件名

我们有时候会直接输入vim命令进入编辑模式,当编辑完文件后,保存时会提示:E32: No file name

原因就是我们进入时没有输入文件名,退出时就报错了。如何保存未命名vim的文件呢?请看下面的介绍:

第一步:输入完成后按下esc退出输入模式

第二步:从输入模式切换到末行模式,即输入:w + 文件路径及文件名称,然后回车。例如::w test.txt

提醒:vim不会自动建立不存在的文件夹,需要我们手动建立。

2、vim设置默认路径

如上所示,输入 :w test.txt 之后,默认保存在当前的目录,可以设置保存到已定义的路径。

需要在_vimrc文件中添加:

exec "cd " . fnameescape("/usr/tom/")

/usr/tom/换成自己所需的路径,这样在vim中新建文件后直接用命令 :w + 文件名 就可以自动保存到已定义的路径。

Vim文件删除与清空

dd 命令

1.单行删除

在命令模式下
dd命令可以快捷删除光标所在行,
d+上下方向键,删除光标所在行和上下一行 ,
d+左右方向键 ,删除光标左右一个字符

2.文件多行删除

d命令是Vim中非常常用的命令,它可以删除行、删除字符、剪切等。当我们需要清空一个文件的内容时,可以使用dd命令来实现。

多行删除

:1,3d

删除1至3行 内容

删除当前行之前的所有行

:1,.-1d

删除当前行之后的所有行

:.+1,$d

删除当前行之后的所有行

:.+1,$d

删除包含text关键字的行,中/reg/ 是正则表达式

:g/text/d

删除以#开的的注释内容。

:g/^#/d

3.文件内容删除

实现文件内容的清空
1,$d

:1,$d

以上命令的含义是:将1行到最后一行的内容全部删除,即清空整个文件的内容。在Vim中, 表示最后一行的位置。 ∗ ∗ 或者 1 , 表示最后一行的位置。 **或者1, 表示最后一行的位置。或者1,dG**

:1,$dG

dG命令的含义是:删除光标所在行到最后一行的内容,通过将光标移动到第一行来达到清空整个文件的效果。
或者%d

:%d

%表示文件中的所有行,%d删除所有航
或者命令行dG
按esc键后,先按gg(到达顶部),然后dG

文件操作撤销

在命令行模式下文件操作的撤销与恢复通过快捷键操作
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作

文件内容的选择、粘贴、复制、剪切

文件粘贴复制

在命令行模式下
全部复制:按esc键后,先按gg,然后ggyG
全选高亮显示:按esc键后,先按gg,然后ggvG或者ggVG
粘贴:p,在光标后一个单词位置粘贴

单行复制:按esc键后, 然后yy
单行删除:按esc键后, 然后dd

文件剪切

d与y命令基本类似,所以两个命令用法一样,包括含有数字的用法.
d 剪切选定块到缓冲区;
dd 剪切整行
d^ 剪切至行首
d$ 剪切至行尾
dw 剪切一个word 单词
dG 剪切光标所在行至档尾

vim文件内容缩进

>命令是Vim中的缩进命令,可以用来对一行或多行的内容进行缩进。当对一个空文件使用>命令时,会清空文件内容并进入插入模式。

:>

以上命令的含义是:对当前行进行缩进

vimrc配置文件简介

1、.vimrc是什么?

.vimrc是vim的配置文件,vim编辑器相关的所有功能开关都可以通过.vimrc文件进行设置。

备注:文件名中的 “rc” 是出自 “run commands”。最初的源头是麻省理工学院在 1965 年发展的 CTSS
系统,其中有一个从档案中取出一系列命令来执行的功能,其被称为 run commands,这种档案又称为一个
runcom。现在多引申为配置文件之意。

2、.vimrc存放路径

.vimrc配置文件分系统配置和用户配置两种。系统.vimrc配置文件存放在vim的安装目录,默认路径为/usr/share/vim/.vimrc。用户.vimrc配置文件存放在用户主目录下~/.vimrc。

注意:用户配置文件优先于系统配置文件,vim启动时会优先读取当前用户根目录下的.vimrc文件。所以与个人用户相关的个性化配置一般都放在~/.vimrc中。

在系统命令行下,执行 vim --version 命令可以查看当前 vim 所使用的配置文件的保存路径,如下图所示:
在这里插入图片描述
在上面,我们看到列出了几个 vimrc 文件,有一个系统的 vimrc 文件,还有用户的 vimrc 文件,还有2nd user vimrc file。另外,出于和vi兼容的目的,vim也支持vi的exrc配置文件。

vim 启动时,会先尝试执行系统的 vimrc 文件,然后将按照上述顺序查找用户 vimrc,并使用所找到的第一个用户 vimrc 中的配置,忽略其余的用户 vimrc。

如果使用 vim -u filename 命令来启动 vim,则会用你指定的 filename 作为 vim 的配置文件(在调试你的 vimrc 时有用);如果用 vim -u NONE 命令启动 vim,则不读取任何 vimrc 文件,当你怀疑你的 vimrc 配置有问题时,可以用这种方式跳过 vimrc 的执行。

3、.vimrc入门简介

默认情况下,vim编辑器里既不显示行号,也没有语法高亮度、智能缩进。为了方便使用,基本的vim配置选项一般都会包括:

显示行号

set number

突出显示当前列

set cursorcolumn

显示括号匹配

set showmatch

设置缩进,设置Tab长度为4空格

set tabstop=4

设置注释
在vimrc中,双引号开头的行,将被当作注释忽略。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文学会使用ChatGPT API搭建自己的聊天网站

一文读懂如何搭建自己的ChatGPT聊天网站 在数字时代的浪潮下,人工智能正变得愈发令人惊叹和亲近。ChatGPT,就是这个变革的杰出代表。这项令人兴奋的技术将强大的自然语言处理能力带到您的指尖,让您能够以前所未有的方式与计算机进行互动。 …

【Redis从头学-8】Redis中的ZSet数据类型实战场景之用户积分榜

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Re…

回流焊炉温曲线图讲解

从下面回流焊炉温曲线标准图分析回流焊的原理: 当PCB进入升温区(干燥区)时,焊锡膏中的溶剂、气体蒸发掉,同时焊锡膏中的助焊剂润湿焊盘、元器件端头和引脚,焊锡膏软化、塌落、覆盖了焊盘,将焊盘…

部署FTP服务(二)

目录 2.访问FTP服务 1.使用ftp命令行工具 2.使用浏览器 3.使用FileZilla Client 3.Serv-U 1.定义新域 2.创建用户 4. windowsserver搭建ftp服务器 一、FTP工具 二、Windows资源管理器 三、IE浏览器访问 2.访问FTP服务 下面在一台装有Windows10操作系统的计算机中&#…

长胜证券:九成注册制公司选择上市标准一,牛股“双高”特征明显

新股注册制施行以来,新股公司可选的上市规范愈加多样化,不同板块、不同上市规范的新股公司亦呈现出不同特征,新股上市后不再呈现“套路化”的上涨行情,新股破发成为常态。数据显现,2022年全年及2023年以来,…

中小企业精细化仓库管理,WMS仓储管理系统必不可少

尽管传统中小企业的仓库管理并不需要建立大型全自动立体智能仓库,但为了确保企业运营的稳定性和后备支持,它们仍然需要在管理方面制定更多的标准和规范。而为了达到这些目标,WMS仓储管理系统解决方案是必不可少的。 中小企业WMS仓储管理系统…

SpringBoot 模板模式实现优惠券逻辑

一、计算逻辑的类结构图 在这张图里,顶层接口 RuleTemplate 定义了 calculate 方法,抽象模板类 AbstractRuleTemplate 将通用的模板计算逻辑在 calculate 方法中实现,同时它还定义了一个抽象方法 calculateNewPrice 作为子类的扩展点。各个具…

适合国内用户的五款ChatGPT插件

众所周知使用ChatGPT3.5需要使用魔法且不稳定,订阅ChatGPT4.0每月需要支付20美元,并且使用次数有限制。对于那些不想每年花费240美元(超过1500元人民币)来使用GPT4.0的朋友们来说,还有别的办法吗? 答案是&…

【C语言】位段,枚举和联合体详解

目录 1.位段 1.1 什么是位段 1.2 位段的内存分配 1.3 位段的跨平台问题 2.枚举 2.1 枚举类型的定义 2.2 枚举的优点 3. 联合(共用体) 3.1 联合类型的定义 3.2 联合的特点 3.3 联合大小的计算 1.位段 1.1 什么是位段 位段的声明和结构体是类…

多线程——学习笔记 1

目录 多线程的了解多线程并行和并发的区别Java程序运行原理多线程程序实现的方式1.继承Thread2.实现Runnable 多线程(实现Runnable的原理)实现多线程两种方式的区别匿名内部类实现线程的两种方式获取线程名字和设置名字获取当前线程的对象——hread.currentThread()…

Docker拉取并配置Grafana

Linux下安装Docker请参考:Linux安装Docker 安装准备 新建挂载目录 /opt/grafana/data目录,准备用来挂载放置grafana的数据 /opt/grafana/plugins目录,准备用来放置grafana的插件 /opt/grafana/config目录,准备用来挂载放置graf…

取模运算符在数组下标的应用

什么是取模运算符%&#xff1f; 定义&#xff1a; a mod b&#xff0c;设a、b属于正整数且b>0&#xff0c;如果q、r属于正整数满足aq*br&#xff0c;且0≤r<b&#xff0c;则定义&#xff1a; a mod b r 注意&#xff1a;取模运算符两侧的除数和被除数都是整数&#xff…

Debootstrap 教程

文章目录 Debootstrap 教程安装 debootstrap使用 debootstrap运行 debootstrap进入新的系统结束语 Debootstrap 教程 debootstrap 是一个用于在 Debian-based 系统上创建一个基本的 Debian 系统的工具。它可以用于创建 chroot 环境、容器或者为新的系统安装做准备。 安装 deb…

分布式数据库架构:高可用、高性能的数据存储

在现代信息时代&#xff0c;数据是企业发展的核心。为了支持海量数据的存储、高并发访问以及保证数据的可靠性&#xff0c;分布式数据库架构应运而生。分布式数据库架构是一种将数据存储在多个物理节点上&#xff0c;并通过一系列复杂的协调和管理机制来提供高可用性和高性能的…

Qt下拉菜单

1&#xff0c;QComboBox 2&#xff0c;setMenu()---设置下拉菜单 AI对话未来丨智能写作对话: setMenu()是QWidget类的一个成员函数&#xff0c;在Qt中用于将一个菜单作为一个控件的下拉菜单设置。具体来说&#xff0c;它会把相应的菜单对象与该控件关联&#xff0c;并在控件上…

Element通过v-for循环渲染的form表单校验

需求&#xff1a;有个表单信息是v-for渲染的&#xff0c;例如下图&#xff0c;通过循环遍历实现新增和删除模块&#xff0c;按照平时的写法实现校验&#xff0c;是不能实现我们想要的效果&#xff0c;根据这个需求&#xff0c;我找到了一个解决方法 1.HTML <el-form ref&qu…

ESD门禁管理系统的主要功能和优势

ESD门禁管理系统是一种用于控制和管理人员进出特定区域的系统。它通常由门禁控制器、门禁读卡器、门禁管理软件等组成。 ESD门禁管理系统的主要功能包括&#xff1a; 1. 门禁控制&#xff1a;通过门禁控制器实现对门禁设备的控制&#xff0c;如开关门、锁定门等。 2. 门禁验…

Go与Rust的对比与分析

Rust 和 Go 是两种现代语言&#xff0c;近年来获得了巨大的关注&#xff0c;每种语言都有自己独特的优势和权衡。在这篇文章中&#xff0c;我们将深入探讨 Rust 和 Go 之间的差异&#xff0c;重点关注性能、语言功能和其他关键因素&#xff0c;以帮助您针对您的开发需求做出明智…

【面试】项目经理面试题

文章目录 一、项目管理面试中通常会问到的问题1.项目管理软件工具知识2.做项目计划的技能3.人员管理技能4.沟通技巧5.方法论知识 二、问面试官的问题三. 面试系列推荐 一、项目管理面试中通常会问到的问题 1.项目管理软件工具知识 问题 1: 工期和工作量之间的差异是什么? 答案…

视频汇聚平台EasyCVR安防视频监控在地下停车场中的具体应用方案

一、背景 随着我国城市化进程的加快&#xff0c;汽车已成为人们生活中不可缺少的交通工具&#xff0c;但在许多城市中&#xff0c;买车容易&#xff0c;停车难的问题愈发突出。特别是在人群密集的商场、写字楼和地下停车场&#xff0c;车流量大、车况复杂。传统的人工判断方式耗…