vim使用操作大全

1. vim简介#

Vi是Vim的早期版本,现在我们使用的Vim(Viimproved)是Vi的增强版。
vim是文本编辑工具软件,一个基于图形化编辑工具,使用简单且功能强大。增加了一些正则表达式的查找、多窗口的编辑等功能,使得Vim对于程序开发来说更加方便
ps: vi 内置在Linux系统中,是vim的简化版编辑器,vim需要进行安装使用

2. vim的三种模式说明#

三种模式:命令模式,编辑模式,底行模式

命令模式:

Vim 启动后,默认进入命令模式,在任何模式下,都可以按 Esc 键返回到命令模式,可以多按几次 Esc 键,保证顺利返回到命令模式。
在此模式下,可以使用上、下、左、右键进行光标移动,也可以键入不同的命令完成选择、复制、粘贴、删除等操作。

编辑模式

在编辑模式下可以编辑文本内容。在命令模式下按 i、 a 、o等键可以进入编辑模式,在此模式下可以输入文本,但命令执行后的字符插入位置不同

底行模式

命令模式下按:键进入底行模式。这时光标会移到屏幕底部,在这里可以输入相关指令保存修改或退出 Vim,也可以设置编辑环境、寻找字符串、列出行号等。指令执行后会自动返回命令模式。

3. vim编辑器操作

vim编辑器相当于Windows的notepad++编辑器,相比vi的功能强大,注意点:centos7使用vi实测调用了是vim编辑器

命令模式移动光标方式#

Copy
# 纵向移动 G # 快速移动到文本行尾 gg # 快速移动到文本行首 2gg # 快速移动第二行 2G # 快速移动第二行 shitf+ 0 # 快速移动空行 # 横向移动 $ #快速移动到一行的行尾 0 或 ^ #快速移动到一行的行首

命令模式复制内容方式#

Copy
dd # 默认剪切一行内容 2dd # 从当前光标往下剪切2行内容 yy # 默认复制一行内容 copy 2yy # 从当前光标往下复制2行内容 p # 从当前光标下黏贴一遍内容 2p # 从当前光标下黏贴2遍内容 u # 撤销文本的操作 ctrl+r # 撤回文本的操作 dG # 表示从光标位置到文本末尾内容删除 r # 表示替换单个字符

如何命令模式进入编辑模式#

Copy
i # 表示当前光标位置前插入,进入编辑模式 a # 表示当前光标位置后插入,进入编辑模式 o # 表示当前光标位置另起下一行插入,进入编辑模式 O # 表示当前光标位置另起上一行插入,进入编辑模式 I # 表示当前光标位置所在行的行首,进入编辑模式 A # 表示当前光标位置所在行的行尾,进入编辑模式 C(大写) # 表示从光标所在位置到行尾内容剪切,进入编辑模式 cc # 表示剪切光标所在行,进入编辑模式

末行模式命令操作#

Copy
: # 从命令模式进入末行模式 :q # 未编辑时,退出 :q! # 强制退出vim :wq # w 保存内容 :set nu # 显示行号 :set nonu # 取消显示行号 /xxx # /表示从当前光标下搜索内容 按n 向下继续搜索 ?xxx # ?表示从当前光标下搜索内容 按n 向下继续搜索 /xxx\c # 搜索内容后加\c 表示搜索忽略大小写 :set ic # 表示在此次编辑,搜索忽略大小写 :set noic # 表示在此次编辑,取消忽略大小写

ps:vim搜索内容高亮显示搜索的内容信息

如何取消vim搜索后的高亮显示?

  1. 搜索文本没有的内容信息

  2. 输入指令 :noh

3.vim特殊用法#

快速的移动多行内容#

格式是 :1,3move4 表示把第一行到第三行的信息移动到第四行内容另起一行

快速的复制多行内容到某一行#

格式是 :1,3cpoy4 表示把第一行到第三行的信息复制单四行内容另起一行

文件信息进行替换内容#

vim替换格式是 :%s# 替换的内容 # 替换成的内容 #g

如:%s#oldboy#oldgirl#g # 表示把文件中的oldboy全部替换修改为oldgirl
替换参数说明

% 表示文件的全部信息

s 表示substitute 替换 %s 表示全部信息进行替换

### 表示替换内容和修改内容的分隔符,可以是任意三个相同的符号。比如 %s/oldboy/oldgirl/g

g 表示 global(全局的),把整行符合替换条件的内容进行替换

具体操作

Copy
[root @controller /old ]# vi oldboy.txt # 文件原有的内容 oldboy oldgirl olddog [root @controller /old ]# vi oldboy.txt aldbay aldgirl alddag ~ ~ :%s#o#a#g 表示把文件全部字母o替换为a g表示把整行字母o替换为字母a [root @controller /old ]# vi oldboy.txt oldbay oldgirl olddag ~ ~ :%s#a#o# 表示把文件每行首个字母a替换为字母o

批量的编辑修改多行内容信息#

如何快速的四行内容进行注释(在每行开始添加符号 #)

第一步:进入批量编辑的视图模式

按键盘的 Ctrl + v 进入批量模式,在底行出现标志信息 -- VISUAL BLOCK -- (可视块)

第二步:选择需要批量编辑的行:按方向上下进行选择编辑的行

第三步:进行编写内容

第四步:退出批量编辑模式,自动补全其他选择的行:按键盘的 esc 退出批量编辑模式

如何批量删除文件多行信息#

第一步:进入批量编辑的视图模式

按键盘的 Ctrl + v 进入批量模式,在底行出现标志信息 -- VISUAL BLOCK -- (可视块)

第二步:选择需要批量编辑的行

按方向上下进行选择行,按方向左右选择删除信息

第三步:直接删除信息:按键盘的 字母d 或字母x 直接删除

问题:如何在test.txt每行前添加12345?

方法一:利用视图模式批量编辑文件

方法二:vim的替换信息方法

方法三:三剑客命令sed???

[root @compute /old ]# sed 's#o#12345o#' test.txt

12345oldboy

12345oldgirl

12345olddog

4.vim查看目录数据#

[root @compute / ]# vim old

" ============================================================================

" Netrw Directory Listing (netrw v149)

" /old

" Sorted by name

" Sort sequence: [/]$,<core%(.\d+)=>,.h$,.c$,.cpp$,~=*$,*,.o$,.obj$,.info$,.swp$,.bak$,~$

" Quick Help: :help -:go up dir D:delete R:rename s:sort-by x:exec

" ============================================================================

../

./

oldboy/

oldboy.txt*

ago.txt

services

xuanxuan.txt

.swp

~

"old" is a directory

显示信息说明: :help -:go up dir D:delete R:rename s:sort-by x:exec
F1 查看帮助

- 返回上级目录

回车 选择子目录,回车可以进入子目录。选择文件,直接编辑。

D 键盘上下选择删除文件

R 文件重命名

s 表示文件名称进行排序。默认按照文件名称排序,按一次:按照文件修改时间排序。按二次:按照文件size数据大小排序。按三次:默认名称排序

x 不明白???

posted @   余生请你指教  阅读(1505)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
CONTENTS