VIM笔记

本文介绍了VIM编辑器的基本操作方法,包括一般模式、编辑模式及命令模式下的常用指令,如光标移动、文本复制与粘贴、撤销操作等,并讲解了如何使用VIM进行文本查找与替换、配置颜色显示等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VIM:是VI的升级版,是带有颜色显示的,如果没有该命令,使用yum -y install vim-enhanced进行安装

分为一般模式,编辑模式,命令模式

vim颜色显示和移动光标,配置文件位于/etc/vimrc下,一些高级功能可以在家目录下的.vimrc文件中进行配置,默认为空

一般模式下移动光标:

hjkl分别对对应方向键(←↓↑→),进行单个字符的移动

连续按gg,光标移动到首行行首,按G光标移动到末行行首

NG → 到第 N 行

按数字0或^光标移动到当行行首,按$光标移动到当行行尾

ndd:n代表数字,如按下5dd,则表示剪切包含当行在内往下一共5行,不按数字直接dd则表示剪切当前所在行

nyy:n代表数字,如按下5yy,则表示复制包含当行在内往下一共5行,不按数字直接yy则表示复制当前所在行

p表示在当前行下一行进行粘贴,P表示在当前行的上一行进行粘贴

u表示撤销,最多撤回次数为50次

w → 到下一个单词的开头

e → 到下一个单词的结尾

v (可视化的选择)先按v,然后移动光标,你就会看到文本被选择,然后,你可能d,也可y,然后p或P进行粘贴

编辑模式:按a或者i即从一般模式进入到编辑模式

a → 在光标后插入

i → 在光标后插入

o → 在当前行后插入一个新行

O → 在当前行前插入一个新行

命令模式:

:wq保存退出

:w保存

:q!强制退出

:x保存退出

/或?进行正向和反向搜索关键字,比如/root就是查找包含root关键字的行,按n跳转到下一个,?与其操作相反

:n1,n2s/root/panqi/g 从n1行开始到n2行,将root全替换为panqi,如果不加g(global),只会替换一行中第一个出现的

1,$(表示末行),如果要替换的字段本身含有/,则替换符可以用其他代替,比如#

:set nu显示行号

:nohl不显示高亮

wq和x的区别:当vim一个文件时,没有进行任何操作就直接退出,如果使用:wq,则会修改mtime,使用x退出则不会

vim扩展知识:(转载他人)

区域选择

在visual 模式下,这些命令很强大,其命令格式为

a 和 i

action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)

object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:”、 ‘、 )、 }、 ]

假设你有一个字符串 (map (+) (“foo”)).而光标键在第一个 o 的位置

vi" → 会选择 foo.
va" → 会选择 "foo".
vi) → 会选择 "foo".
va) → 会选择("foo").
v2i) → 会选择 map (+) ("foo")
v2a) → 会选择 (map (+) ("foo"))
  • Text objects selection

块操作

块操作,典型的操作: 0 I– [ESC]

^ → 到行头
<C-v> → 开始块操作
<C-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。
  • Rectangular blocks

(注:在Windows下的vim,你需要使用 而不是 , 是拷贝剪贴板。)

自动提示

在 Insert 模式下,你可以输入一个词的开头,然后按 或是,自动补齐功能就出现了……

Completion

宏操作

qa 操作序列 q, @a, @@

qa 把你的操作记录在寄存器 a。

于是 @a 会replay被录制的宏。

@@ 是一个快捷键用来replay最新录制的宏。

示例

在一个只有一行且这一行只有“1”的文本中,键入如下命令:

qaYp<C-a>q→
    qa 开始录制
    Yp 复制行.
    <C-a> 增加1.
    q 停止录制.
@a → 在1下面写下 2
@@ → 在2 正面写下3
现在做 100@@ 会创建新的100行,并把数据增加到 103.
  • Macros

可视化选择

前面,我们看到了 的示例 (在Windows下应该是),我们可以使用 v 和 V。一但被选好了,你可以做下面的事:

J → 把所有的行连接起来(变成一行)
< 或 > → 左右缩进
= → 自动给缩进

Autoindent

在所有被选择的行后加上点东西:

<C-v>
选中相关的行 (可使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
$ 到行最后
A, 输入字符串,按 ESC。

Append to many lines

分屏

下面是主要的命令,你可以使用VIM的帮助 :help split.

:split → 创建分屏 (:vsplit创建垂直分屏)
<C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
<C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
<C-w>+ (或 <C-w>-) : 增加尺寸

Split



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值