vim指令详解

2024年12月数据月报 2024年12月大数据月报,为您准备了阿里、字节、百度等大厂150多篇实践案例 阅读详情

转载自https://blog.youkuaiyun.com/xiajun07061225/article/details/7039413

一、我们为什么要学习vim编辑器?

Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:

(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在。

(2)很多软件的编辑接口都会主动调用vi。

(3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。

(4)程序简单,编辑速度快。

二、下面先介绍一下vi的基本使用方法及其相关命令。

vim编辑器的三种模式:一般模式、编辑模式和命令行模式。
在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。按下Esc键可以回到一般模式。在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行。在这个模式中可以提供查找数据的操作,而读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。需要注意的是,编辑模式与命令行模式之间是不能互相切换的。
下面列出平时用的最多的vi命令:

移动光标的方法:

命令操作
[Ctrl]+[f]屏幕向下移动一页,相当于[PageDown]按键。
[Ctrl]+[b]屏幕向上移动一页,相当于[PageUp]按键。
0或功能键[Home]移动到这一行的最前面字符处。
$或功能键[End]移动到这一行的最后面字符处。
G移动到这个文件的最后一行。
gg移动到这个文件的第一行,相当于1G.
N[Enter]N为数字,光标向下移动N行。

查找和替换:

命令操作
/word向下寻找一个名称为word的字符串。
?word向上寻找一个名称为word的字符串。
:n1,n2s/word1/word2/g在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.
:1,$s/word1/word2/g从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.
:1,$s/word1/word2/gc从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。

删除、复制和粘贴:

命令操作
x,X在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。
dd删除光标所在的一整行。
ndd删除光标所在的向下n行。
yy复制光标所在的一行。
nyy复制光标所在的向下n行。
p,Pp为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。
u复原前一个操作。
[Ctrl]+r重做上一个操作。
.小数点,重复前一个操作。

一般模式切换到编辑模式:

命令操作
i,I进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。
a,A进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。
o,O进入插入模式。o为在下一行插入。O为在上一行插入。
r,R进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。

一般模式切换到命令行:

命令操作
:w将编辑的数据写入到硬盘中。
:q离开vi.后面加!为强制离开。
:wq保存后离开。:wq!为强制保存后离开。

目前主要的编辑器都有恢复功能,vim也不例外。vim是通过“保存”文件来挽回数据的。
每当我们在用vim编辑时,vim都会自动在被编辑的文件的目录下面再新建一个名为filename.swap的文件。这就是一个暂存文件,我们对文件filename所做的操作都会被记录到这个文件当中。如果系统意外崩溃,导致文件没有正常保存,那么这个暂存文件就会发挥作用。下面用一个例子来说明(Note:我用的是Ubuntu)。
打开终端,输入命令,将etc目录下面的manpath.config复制到tmp目录下面,并且更改当前工作目录为tmp:
cp /etc/manpath.config /tmp
cd /tmp

用vim编辑manpath.config文件:vim manpath.config。

我们在vim的一般模式下按下Ctrl+z组合键,vim就会被丢到后台执行。回到命令提示符环境后,我们模拟将vim的工作不正常中断。

kill -9 %1;强制杀死制定的进程。

这样导致暂存盘无法通过正常的流程结束,所以暂存文件不会消失,而是继续保留下来。当再次编辑那个文件时(输入命令vim manpath.config),出现(ubuntu 11.10):

这时,有六个按钮可以使用:

命令操作
O(pen for Read-Only)打开成只读文件。
E(dit)用正常方式打开要编辑的文件,并不会载入暂存文件的内容。这很容易出现两个用户相互改变对方的文件的问题。
R(ecover)加载暂存文件的内容。
D(elete)如果你确定这个暂存文件是没有用的,则可以删除。
Q(uit)不进行任何操作,回到命令行。
A(bort)忽略这个编辑行为,和Q类似。

需要注意的是:这个暂存文件不会应为你结束vim后自动删除,必须要手动删除。否则每次打开对应的文件时都会出现这样的提示。

三、vim的功能

【1】块选择:
这个功能可以让我们复制一个矩形区域的内容,十分方便。

命令操作
v字符选择,会将光标经过的地方反白选择;
V行选择;
Ctrl+v块选择;
y复制反白的地方;
d删除反白的地方。

示例如下:

需要注意的是,粘贴时候也是粘贴在一个块的范围内,而不是以行为单位来处理的。

【2】多文件编辑

我们在两个或多个文件之间复制粘贴内容时,这个功能会让我们方便很多。

使用命令vim name1 name2 name3…(各个文件名之间用空格隔开)可以同时打开多个文件。

命令操作
:n编辑下一个文件;
:N编辑上一个文件;
:files列出目前vim打开的所有文件。

【3】多窗口功能

可以在一个窗口中打开多个文件。

输入命令:sp{filename}便可以实现这个功能。如果想要在新窗口启动另外一个文件,则加入文件名。如果省略文件名,则打开的是同一个文件。

用一个例子来说明。

vim manpath.config打开一个文件。在一般模式下输入:sp。发现打开的是同一个文件。如果再输入:sp /etc/hosts。则变成:

其他的按键功能:

命令操作
Ctrl+w+j先按下Ctrl不放,再按下w后放开所有的按键,再按下j(或向下箭头键),则光标可以移到下方的窗口;
Ctrl+w+k同上,不过光表移到上面的窗口;
Ctrl+w+q离开。

【4】vim环境设置

需要注意的是,vim会将i我们的以前的行为都记录下来,以方便我们操作。它保存在文件:~/.viminfo中。

vim常用的环境设置参数命令如下:

命令操作
:set nu设置行号
:set nonu取消行号
:set hlsearch设置高亮度查找
:set nohlsearch取消高亮度查找
:set backup自动备份文件
:set ruler开启右下角状态栏说明
:set showmode显示左下角的INSERT之类的状态栏
:set backspace={0,1,2}设置退格键功能。为2时可以删任意字符。为0或1时仅可以删除刚才输入的字符。
:set all显示目前所有的环境参数值
:set显示与系统默认值不同的参数值
:syntax on/off是否开启依据相关程序语法显示不同的颜色
:set bg=dark/light是否显示不同的颜色色调

但是我们没有必要每次使用vim都要重新设置一次各个参数值。我们可以通过配置文件来直接规定我们习惯的vim操作环境。整体vim的设置值一般是放在/etc/vimrc中的。我们一般不要修改这个文件。我们可以通过修改~/.vimrc这个文件,如果不存在,可以手动创建。然后将我们所希望的设置值写入。例如,我们可以这样写:

vim ~/.vimrc  
set hlsearch(注意:set前面也可以加冒号,结果一样)  
set backspace=2  
set ruler  
set showmode  
set nu  
syntax on  

创建并保存这个文件之后,当下次重新以vim编辑某个文件时,该文件的默认环境就是这么设置的。


重点不在死记硬背,尽快养成自己熟悉的操作习惯。

IDEA的使用指南 IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧. 立即下载

相关推荐

Ubuntu 18.04下Freesurfer 7.2.0安装全攻略:从下载到环境配置一步到位

本文详细介绍了在Ubuntu 18.04系统上安装Freesurfer 7.2.0的完整流程,包括系统准备、依赖安装、下载解压、环境配置、许可证获取及性能优化。Freesurfer作为神经影像分析的重要工具,支持皮层重建和体积分割等复杂任务,适用于阿尔茨海默症等神经系统疾病研究。指南还提供了常见问题解决方案和实际应用案例,帮助用户快速搭建高效的神经影像分析平台。

omega的博客 996

进程调度及终止

3案例3:进程调度及终止 3.1问题 本例要求掌握调度及终止进程的操作,使用必要的工具完成下列任务: 运行“sleep 600”命令,再另开一个终端,查出sleep程序的PID并杀死 运行多个vim程序并都放入后台,然后杀死所有vim进程 su切换为zhsan用户,再另开一个终端,强制踢出zhsan用户 3.2方案 进程调度及终止的主要命令工具: 命令行&:将命令行在后台运行...

weixin_41176080的博客 467

测绘无人船避坑指南:云卓H12Pro遥控器接海康摄像头,从网络设置到RTSP流延迟优化全流程

本文详细解析了测绘无人船视频子系统的优化方案,重点介绍海康威视摄像头与云卓H12Pro遥控器的深度适配流程。从网络设置到RTSP流延迟优化,提供了一套经过实测的低延迟(<200ms)解决方案,适用于复杂水域环境下的测绘任务。

weixin_30415113的博客 624

vim 相关口令

撤销 命令模式下(即按ESC后的模式) u 撤销 Ctrl r (组合键) 反撤销<后悔撤销> vim复制粘贴命令 1. 选定文本块。使用v进入可视模式,移动光标键选定内容。 2.复制的命令是y,即yank(提起) ,常用的命令如下: y在使用v模式选定了某一块的时候,复制选定块到缓冲区用; yy复制整行(nyy...

qq_27088383的博客 204

三维重建之条纹投影结构光(三)——相高模型标定

接上面两文: 三维重建之条纹投影结构光(一)https://blog.youkuaiyun.com/beyond951/article/details/123361852?spm=1001.2014.3001.5501三维重建之条纹投影结构光(二)——四步相移+三频外差法https://blog.youkuaiyun.com/beyond951/article/details/123769596?spm=1001.2014.3001.5501接下来对相高模型进行标定,其推导过程如下图所示 ...

beyond951的博客 4875

Cosmos Transfer2.5多模态AI模型部署与优化实战

多模态AI技术通过融合文本、图像、代码等不同模态数据,实现跨模态理解与生成。其核心原理基于Transformer架构的注意力机制,结合对比学习实现模态对齐。这类技术在智能内容创作、跨模态搜索等领域具有重要价值,尤其适合电商营销图文生成、UI设计转代码等场景。Cosmos Transfer2.5作为先进的多模态模型,支持8192 tokens长文本窗口和混合模态输入,实测推理速度达17.5 samples/s(T4显卡)。部署时需注意FlashAttention优化可提升3倍长文本处理效率,8-bit量化则能

weixin_29038303的博客 280

linux Vim编辑器使用以及文件权限修改,kill process

vim命令 基本操作 1.vim 文件名 :进入一般模式(不能输入) 2.按下 i 从一般模式,进入到插入编辑模式 3.按下esc从插入模式,退出到一般模式 4.输入:wq,退出编辑。 ...

weixin_43632687的博客 3290

vim操作命令

vim操作命令/指令

m0_74872789的博客 2065

从开票数据到 ML81N 一键过账:用 ABAP BAPI 批量创建 Service Entry Sheet 的落地方案

摘要:SAP ESM场景中,服务履约确认通常通过ML81N事务码创建服务条目表(SES)完成。本文介绍如何基于开票数据(VBRK/VBRP)自动生成SES:首先通过BAPI_PO_GETDETAIL获取采购订单服务行结构,然后使用BAPI_ENTRYSHEET_CREATE创建SES并覆盖开票数量与金额,最后调用BAPI_ENTRYSHEET_RELEASE自动释放。解决方案包含ALV交互界面、批量处理逻辑和结果跳转功能,实现从人工录入到自动化处理的转变。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 323

【项目实战】SOVD协议(面向服务的车辆诊断协议)

此外,AUTOSAR组织将SOVD部分内容的软件实现定义在了R22-11及以上版本的AUTOSAR Adaptive规范中,还支持动态发现车内诊断功能、获取高性能计算机(HPC)的Log信息等新的诊断需求,更符合当前软件定义汽车概念下的行业趋势。而SOVDGateway作为边缘节点,也肩负着对SOVD Client进行认证以及权限控制的责任,从而保证车辆的信息安全。相较于传统的UDS(Unified Diagnostic Services)协议,SOVD不仅保留了传统的读写数据、例程控制、故障读取等功能,

奶爸的编程之路,也就一周冷个三天 1900

VIM使用技巧

vim中的三种模式 vim可以分为三种状态:一般模式、编辑模式和命令模式,各模式的功能区分如下: 一般模式: 以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容, 也可以使用复制、粘贴来处理你的文件数据。 编辑模式: 在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,

默默前行,勿喜、勿悲、一切随缘! 1646

四旋翼飞行器建模(一)

四旋翼飞行器的姿态运动学和姿态动力学建模方法。

加斯顿工程师的博客 685

Vim指令详解

常用指令: 1、设置文本 行号 :set number 2、删除命令 3、搜索单词 例如:搜索 maxmenmory /maxmemory 4、关闭文件退出vim编辑器 5、进入插入模式 i 6、光标移动

白鸽 215

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Vim查找文本指令详解

命令模式作用/patternNormal正向查找字符串pattern?patternNormal反向查找字符串patternnNormal跳转到下一个匹配项NNormal跳转到上一个匹配项Normal正向查找当前光标下的整个单词Normal反向查找当前光标下的整个单词:nohCommand暂时关闭查找高亮(直到下次搜索)Command永久开启查找高亮Command永久关闭查找高亮建议先从?nN这几个最常用的命令开始练习,它们会极大地提升你的编辑效率。

ITHomeZSL的博客 1199

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Linux】详解Linux下的工具(内含yum指令和vim指令)

内含yum和vim指令。干货很多,快来看看吧!!!

tianxiawushanu的博客 3109

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

vi与vim 的区别与常用指令详解

vi与vim 的区别与常用指令详解 vi和vim的区别 vi:文本编辑器 vim:程序编辑器 其实vi和vim的功能上区别不是很大,由于vim在编写过程中可以利用颜色纠错的功能, 所以被官方定位成了程序编辑器 三种模式的切换 在模式的名字上可能会各有不同,没有必要深究。 ...

Jsben的博客 513

linux vim指令示例,Vim中宏命令的使用实例详解

前言Vim 的设计哲学中有这样一句话:”if you write a thing once, it is okay. However if you're writing it twice or more times, then you should find a better way to do it”.Vim 的 Macro 就是用来解决重复的问题。在 Vim 寄存器的文章里面已经对 macro...

weixin_35922490的博客 370

Linux系统中的vi/vim指令【详解】

vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称。几乎可以说任何一台Unix机器都会提供这套软件。 只要简单的在Shell下执行vi就可以进入 vi 的编辑环境。在实际操作之前先对它有个了解会比较好。 vi 有两种模式,输入模式以及指令模式。输入模式即是用来输入文字资料,而指令模式则是用来下达一些编排文件、存档、以及离开 ...

weixin_30828379的博客 202

linux中vi指令干嘛的,Linux系统中的vi/vim指令【详解】

vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称。几乎可以说任何一台Unix机器都会提供这套软件。只要简单的在Shell下执行vi就可以进入 vi 的编辑环境。在实际操作之前先对它有个了解会比较好。vi 有两种模式,输入模式以及指令模式。输入模式即是用来输入文字资料,而指令模式则是用来下达一些编排文件、存档、以及离开 vi 等等的操作指令。当执行 v...

weixin_39728320的博客 1706

linux gvim指令,Linux Vim 实用命令详解

Linux常用命令- 已学cd (路径的切换) rm(后接-rf 可删除文件或文件夹) ls(查看当前路径下的文件和文件夹) mkdir(创建文件夹) touch(创建文件)cat(查看文件内容)mv (移动文件,也可以重命名文件) rmdir(删除空文件夹)whoami(查看当前用户) pwd(查看当前所在路径)- / # 根目录 linux系统没有盘符,只有根目录 /。- cd # 目录跳转-...

weixin_39835925的博客 508

linux vim文本编辑器 指令详解

进入插入模式 光标移动到位置不同而已

Remember who you are! 766

linux中vi中d,Linux系统中的vi/vim指令【详解】

vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称。几乎可以说任何一台Unix机器都会提供这套软件。只要简单的在Shell下执行vi就可以进入 vi 的编辑环境。在实际操作之前先对它有个了解会比较好。vi 有两种模式,输入模式以及指令模式。输入模式即是用来输入文字资料,而指令模式则是用来下达一些编排文件、存档、以及离开 vi 等等的操作指令。当执行 v...

weixin_36489344的博客 2292

kali linux 里vim如何使用_详解kali linux 常用文件与指令路径

kali linux 常用文件与指令路径重启网络/etc/init.d/networking restart语言设置文件/etc/default/localeapt 安装deb保存目录/var/cache/apt/archives字体修改目录/etc/fonts/conf.d配置更新源文件/etc/apt/sources.list配置更多更新源文件,将list文件放入此目录文件/etc/apt/s...

weixin_39817176的博客 382

linux系统输入指令,详解linux系统输入输出管理和vim的常用功能

####系统中输入输出的管理####1.理解系统的输入输出重定向输入重定向是指把文件导入到命令中,而输出重定向则是把原本要输出到屏幕的数据信息写入到指定文件中。2.管理输入输出的符号##输出重定向> ##重定向正确输2> ##重定向错误输出&> ##重定向所有输出注意:重定向会覆盖原文件内容>> ##不会覆盖原文件内...

weixin_42594419的博客 362

【Linux】vim编辑器

本文详细介绍了Linux系统中vi/vim文本编辑器的使用方法和操作技巧。重点讲解了vim的三种主要模式(一般模式、编辑模式、指令列模式)及其切换方式,并列举了各模式下的常用操作命令。包括光标移动、文本搜索替换、删除复制粘贴等一般模式操作,以及文件保存退出、行号显示等指令列命令。vim作为Linux系统的内置编辑器,支持语法高亮和程序编辑功能,是系统管理员和开发人员进行配置文件修改的重要工具。文章通过清晰的按键功能说明,帮助用户快速掌握vim的基本使用方法。

m0_64538862的博客 849
上一篇: LeetCode.28.Implement strStr()
下一篇: Python.json.常见两个错误处理(Expecting , delimiter)(Invalid control character at)
BishopTylaor
博客等级 码龄10年 9粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值