【linux开发工具】vim详解


📙 作者简介 :RO-BERRY

📗 学习方向:致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识

📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持


"学如逆水行舟,不进则退"


目录


1.概念

🎄vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。


2.vim的模式

🖍我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

正常/普通/命令模式(Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入


3.vim的基本操作

3.1进入vim

在系统提示符号输入vi及文件名称后,按Enter键,就进入vim全屏幕编辑画面:

vim myfile

不过有一点要特别注意,就是您进入vim之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。初次使用vim的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vim后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!

3.2切换至插入模式(Insert mode)编辑文件

在「命令行模式(command mode)」下有三种方式可以进入「插入模式(Insert mode)」

i---进入insert模式

a---进入insert模式并且光标往后移动一格

o---进入insert模式并且光标往下移动一行

这时候你就可以开始输入文字了。

3.3 退出vi及保存文件

在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:

: w filename (输入 「w filename」将文章以指定的文件名filename保存)

: wq (输入「wq」,存盘并退出vi)

: q! (输入q!, 不存盘强制退出vi)

4.vim正常模式命令集

4.1 插入模式

按「i」切换进入插入模式,按"i"进入插入模式后是从光标当前位置开始输入文件;

按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

按「ESC」键。 从插入模式切换为命令行模式
dd:删除当前行。
yy:复制当前行。
p:粘贴已复制或者已删除的文本到下一行。
P:粘贴已复制或者已删除的文本到当前行。
u:撤销上一次操作。
Ctrl+r:重做上一次操作。
cw: 清空光标到末尾的单词。
n+yy:复制多行
n+p:在下一行进行粘贴
Ctrl+r:对撤销进行撤销
n+dd:删除当前行/剪切当前行
Shift+'=''~':大小写快速切换
n+x:删除光标所在字符
n+Shift+x=X:向左进行局部删除

4.2 命令行模式

移动光标

按「ctrl」+「b」:屏幕往"后"移动一页。

按「ctrl」+「f」:屏幕往"前"移动一页。

按「ctrl」+「u」:屏幕往"后"移动半页。

按「ctrl」+「d」:屏幕往"前"移动半页。

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的"行尾"。

按「^」:移动到光标所在行的"行首"

按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l。

删除文字

「x」:每按一次,删除光标所在位置的"后面"一个字符。

「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。

「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。

「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。

「dd」:删除光标所在行。

「#dd」:从光标所在行开始删除#行

复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

替换

「r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

恢复/撤消/还原上一次操作

「u」:如果误执行一个命令,可以马上按下「u」,撤消上一个操作。按多次"u"可以执行多次撤消。

更改

「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表示更改3个字

跳至指定的行

「ctrl」+「g」列出光标所在行的行号。

「#G」:例如,「15G」,表示移动光标至文章的第15行行首。


3.Last line mode下命令简介

在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

列出行号

set nu:输入set nu后,会在文件中的每一行前面列出行号。

跳到文件中的某一行

#:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

查找字符

/关键字:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
?关键字:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

保存文件

w:在冒号输入字母「w」就可以将文件保存起来,可以在[w]后跟一个[!]强制写入。

离开vi

q!:强制退出Vim编辑器,不保存文件。
:qall! :强制退出所有Vim窗口
:wq:保存文件并退出Vim编辑器。
:e! 放弃修改,重新回到文件打开时的状态
:e xxxx/xxx 打开某个文件
:saveas xxx.c另存为xxx.c文件

感叹号的使用

!commond: 在感叹号后面输入指令可以直接进行执行

例如:!ls -l:查看当前目录文件信息

分屏命令

在Vim中,您可以编辑多个文件。以下是一些多文件编辑命令:

:vs :垂直分屏当前窗口
:sp:水平分屏当前窗口。
:vsp:垂直分屏当前窗口。

上面三个都可以在后面跟上另一个文件名称,左边为输入的文件,右边为vim的文件
Ctrl+ww:将光标移到另一个窗口

例;

输入:q即可退出这个模式,输入:wq如果左边为不存在的文件会将文件保存并退出,存在则保留修改然后退出


以上是一些常用的Vim命令,它们可以大大提高您的编辑效率。当然,还有许多其他的Vim命令和技巧可以掌握,不断练习并查阅相关资料,您将成为一位Vim高手。

相关推荐
和煦的春风39 分钟前
性能案例分析 | Waiting for GPU completion
android·linux
道路与代码之旅1 小时前
Delphi - IndyHttpServer接收上传文件
运维·服务器
lybugproducer2 小时前
深入 Linux 文件系统:从数据存储到万物皆文件
linux
烦躁的大鼻嘎2 小时前
【Linux】深入Linux多线程架构与高性能编程
linux·运维·服务器·开发语言·c++·ubuntu
羚羊角uou2 小时前
【Linux】system V共享内存
linux·运维·服务器
林克爱塞尔达2 小时前
Linux入门(二)
linux·运维·chrome
破烂儿2 小时前
Ubuntu Server 安装图形界面和通过Window远程桌面连接服务器(Xrdp)
linux·服务器·ubuntu
Hello.Reader2 小时前
Kafka 运维实战基本操作含命令与最佳实践
运维·kafka·linq
存储服务专家StorageExpert2 小时前
手搓一个 DELL EMC Unity存储系统健康检查清单
linux·运维·服务器·存储维护·emc存储
笑口常开xpr3 小时前
Linux 库开发入门:静态库与动态库的 2 种构建方式 + 5 个编译差异 + 3 个加载技巧,新手速看
linux·c语言·动态库·静态库