Vim教程

目录

[vim 介绍](#vim 介绍)

常用的四种模式

首先先学会如何正确进入和退出vim:

normal模式

insert模式:

command模式:

v-block模式:

vim异常退出

vim配置


vim 介绍

Vim是一款高度可定制的文本编辑器,它的前身是Vi,但又在Vi的基础上做了很多改进和增加。Vim是自由软件,在类Unix系统中常被使用。虽然Vim需要一定的学习才能掌握,但其掌握之后可以非常高效地进行文本编辑。

Vim以类似于在普通编辑器中移动光标的方式进行文本编辑,这种编辑方式被称为"命令模式"。除此之外,Vim还提供了"插入模式"和"底行模式",可以让你在插入文本或在执行命令时更方便地操作。

Vim的另一个特点是其丰富的快捷键和命令,这使得用户可以用极少的按键来完成复杂的编辑操作。例如,用户可以通过在底行模式下输入简单的命令,如"w",来保存当前编辑的文件。

Vim的学习曲线虽然较为陡峭,但其强大的定制性可以满足用户各种各样的需求。例如,用户可以根据自己的喜好和习惯来设置Vim的各种选项和映射,不仅可以在终端运行,也可以运行于x window、 mac os、windows,Linux CentOS中安装vim:sudo yum install vim

常用的四种模式

Vim模式有很多种,但是最常用的是四种模式:正常模式(normal)、底行模式(command)、编辑模式(insert)、视觉模式(v-block).

首先先学会如何正确进入和退出vim:

vim 文件名 ------ 文件名可以是当前路径下存在的或者是携带路径的文件名,也可以是不存在的文件名(进入编辑后保存则会保存在当前文件夹)

打开文件,需要文件权限,如果没有r权限,则会打开失败,显示空的vim界面

如果没有r权限,打开文件后会有一个小锁的标志,表示只读

正常打开vim后,默认是normal模式,如果要退出,需要转换到command模式(shift + ;)然后输入q,回车 或 q!,回车,强制退出;如需保存并退出,可以输入wq / wq! ,回车。

normal模式

进入vim的默认模式,其他模式都可以通过Esc键退回到normal模式

通过h、j、k、L(左、下、上、右)或方向键移动光标

逐个移动太慢的话,可以快速移动光标:

  • gg:定位到文本的第一行

  • (n) + G: 定位到文本的最后一行 或 第n行

  • ^:定位到所在行文本的结尾

  • $:定位到所在行文本的开始

    属于正则表达

  • 0:定位到所在行的最左侧

  • w:以单词为单位,向后移动光标,支持跨行

  • b:以单词为单位,向前移动光标,支持跨行

移动光标后,如果只是简单的文本操作,不必转到编辑模式:
复制粘贴 :

(n) + dd:剪切当前行开始的n行文本(如果剪切后不管了,不就是删除呗)

(n) + yy:复制当前行开始的n行文本

(n) + p:粘贴剪切板内容n次
文本修改:

~:文本大小写转化

(n) + r:覆盖光标开始的n个字符,行内操作

(n) + x:删除光标开始的n个字符,行内操作
其他操作:

#:查找同名单词,n同单词跳转

ctrl + r:撤销

u:撤销
以上两个撤销可以互相撤销对方的撤销

insert模式:

文本编辑的主要模式,通过在normal模式中键a/i/o进入
a/i/o:

  • a进入:光标向后一格并进入
  • i进入:光标不动并进入
  • o进入:在光标所在行下重新开一行并移动光标到新行进入
    insert模式下,只能通过方向键移动光标或者返回normal模式移动光标

command模式:

  • set nu:显示行号

  • -set nonu:不显示行号

  • /关键字:查找关键字,键入n切换搜索结果

  • !+ Linux中的指令:可以在vim中执行指令并看到返回结果

  • vs + 其他文件名:同框显示文件,通过ctrl + ww切换文件的光标

v-block模式:

主要是用该模式来做批量化操作,如多行注释等

通过在normal模式下ctrl + v 进入

多行注释 :

vim异常退出

如果在vim打开文件的过程中,突然断开连接/关机,导致vim异常退出,下次再用vim打开文件的时候,会有提示,ll -a,删除备份文件即可

vim配置

自动化部署配置:VimForCpp

链接:https://gitee.com/HGtz2222/VimForCpp?_from=gitee_search

目前只支持CentOS 7

直接复制这串脚本到linux中去执行即可

相关推荐
0+1111 天前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋1 天前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
桌面运维家1 天前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890751 天前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻1 天前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847751 天前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906941 天前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗1 天前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
Smoothcloud润云1 天前
GPU远程纳管安全吗?最小权限、网络边界与日志审计实战
服务器·网络·人工智能·安全·gpu算力·gpu
ai大模型-探索者1 天前
Function Call与MCP(区别、联系与实战)
java·服务器·网络