0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

vim编辑器超实用指南

sanyue7758 来源:ICer消食片 作者:ICer消食片 2023-08-16 09:38 次阅读

vim是一个Unix文本编辑器,它以快速高效而闻名,是在终端中运行的小应用程序(当然也有图形界面),它最主要的特点是完全可以通过键盘控制,而不需要菜单栏或鼠标。

例如,将文本插入到文件中,按i键并输入。浏览文本或输入命令,在键盘上按Esc,然后按下对应的任何键或组合键。对于大多数人来说,是一种非常不寻常的文本编辑方式,但这是基于Linux环境工作的开发者编辑配置文件、更改脚本、编写代码等操作的主流方式。

本文将介绍一些必要的基本命令,以供大家很快很容易地掌握vim编辑器。建议初学者在使用中进行学习,而不是只看不动手。不实战操作,那你可能很快忘记这些命令。

8088b4e6-3b80-11ee-9e74-dac502259ad0.jpg

使用vim打开文件后,一般会用到三种模式:命令模式(command mode)、输入模式(insert mode)和底行命令模式(last line mode)。

刚启动vim时,默认进入命令模式。这时候,我们敲打键盘的字母会被识别为不同的命令。

方向键h、j、k、l输入键i、a、o,切换到输入模式;

冒号键:,切换到底行命令模式。 进入输入模式,可以任意的码入字母、符号,按esc键退出到命令模式。

在底行命令模式,可以输入单个或者多个命令,按enter键结束运行。

80c9bd10-3b80-11ee-9e74-dac502259ad0.png

1、vim的进入和退出:vi、vim、:q、:q!、:wq 在terminal中直接敲vi或vim打开文本 :q退出文件 :q!强制退出文件,丢弃你所做的任何改动 :wq 保存修改,然后退出文件

2、移动光标:h、j、k、l键 h左移l右移j下移k上移,熟练使用hjkl键,习惯之后我们能很快地在屏幕四处移动光标。

3、插入、删除和撤销:i、A、x、u键、ctrl+r 在command模式下:按下i键可以进入insert模式,在光标后插入文字,输入完成按esc键A键,光标移动到本行末输入);按下x键可以删除光标所在位置的字符;按下u键可以撤销操作,回到上一步。ctrl+r撤销掉撤销命令。 按下esc键会回到command模式或者撤销一个不想输入或部分完整的命令。

4、删除类命令:dw、d$、dd dw 从光标处删除至一个单词的末尾 d$ 从光标处删除至本行末尾 dd删除光标所在行

5、在动作前输入数字会使操作重复那么多次 3dd执行三次光标所在行,即往下删除三行 2w

使光标向前移动两个单词 0

移动到光标的行首

6、关于定位和文件状态 gg

跳到文件第一行 G / shift+g

跳到文件最后一行 ctrl+g

显示当前编辑文件名和文件中光标位置 gf

进入光标所在位置路径的文件


7、关于搜索命令 /

加上字符串可以用于在当前文件中查找该字符串 用于反向查找

例如:/error <回车> 即可在文件中查找error n键向下继续搜索,N键或shift+n键向上继续搜索(shift+小写=大写

8、替换命令 :s/old/new/gg是全局进行匹配 多种操作需要多加学习应用

9、在vim内执行外部命令 输入 :!然后输入外部命令即可执行该外部命令 所有的 : 命令都必须以敲回车键结束

10、使用操作符y复制文本,使用p粘贴文本

配合可视模式使用 多行操作是经常会用到的,切记!

11、set设置一些选项 :set xxx 可以设置 xxx 选项。一些有用的选项如下: 'ic' 'ignorecase' 查找时忽略字母大小写 'is' 'incsearch' 查找短语时显示部分匹配 'hls' 'hlsearch' 高亮显示所有的匹配短语

12、获取在线系统帮助

如下三种方法: - 按下 键 (如果键盘上有的话) - 按下 键 (如果键盘上有的话) - 输入 :help <回车>

13、启用更多的vim的特性

Vim 的功能特性要比 Vi 多得多,但其中大部分都缺省没有启用。为了使用更多的特性,需要创建一个 vimrc 文件。

1. 开始编辑 vimrc 文件,具体命令取决于所用的操作系统: :edit ~/.vimrc

这是 Unix 系统所使用的命令 :edit $VIM/_vimrc

这是 MS-Windows 系统所使用的命令

2. 接着读取 vimrc 示例文件的内容: :r $VIMRUNTIME/vimrc_example.vim

3. 保存文件,命令为: :write 下次启动 Vim 时,编辑器就会有了语法高亮的功能。

可以把喜欢的各种设置添加到这个 vimrc 文件中。

要了解更多信息请输入 :help vimrc-intro

14、使用键进行命令行补全

补全对于许多命令都有效,当输入:命令时,tab键可以匹配补全。

15、vim自带了一个教程说明,我们可以直接输入vimtutor,打开教程做相应的练习即可。

全局

:h[elp] 关键字- 打开关键字帮助

:sav[eas] 文件名- 另存为

:clo[se]- 关闭当前窗口

:ter[minal]- 打开一个shell窗口

K- 打开光标所在单词的man页面

移动光标

h- 左移光标

j- 下移光标

k- 上移光标

l- 右移光标

H- 移动到当前页面顶部

M- 移动到当前页面中间

L- 移动到当前页面底部

w- 移动到下个单词开头

W- 移动到下个单词开头(单词含标点)

e- 移动到下个单词结尾

E- 移动到下个单词结尾(单词含标点)

b- 移动到上个单词开头

B- 移动到上个单词开头(单词含标点)

ge- 移动到上个单词结尾

gE- 移动到上个单词结尾(单词含标点)

%- 跳转到配对的符号(默认支持的配对符号组::'()', '{}', '[]' - 在vim中使用:h matchpairs获得更多信息)

0- 移动到行首

^- 移动到行首的非空白符

$- 移动到行尾

g_- 移动到行内最后一个非空白符

gg- 移动到文件第一行

G- 移动到文件最后一行

5ggor5G-移动到第五行

gd- 跳转到局部定义

gD- 跳转到全局定义

fx- 移动到字符 x 下次出现的位置

tx- 移动到字符 x 下次出现的位置的前一个字符

Fx- 移动到字符 x 上次出现的位置

Tx- 移动到字符 x 上次出现的位置的后一个字符

;- 重复之前的f、t、F、T操作

,- 反向重复之前的f、t、F、T操作

}- 移动到下一个段落(当编辑代码时则为函数/代码块)

{- 移动到上一个段落(当编辑代码时则为函数/代码块)

zz- 移动屏幕使光标居中

Ctrl+e-向下移动屏幕一行(保持光标不动)

Ctrl+y-向上移动屏幕一行(保持光标不动)

Ctrl+b- 向上滚动一屏

Ctrl+f- 向下滚动一屏

Ctrl+d- 向下滚动半屏

Ctrl+u- 向上滚动半屏

插入模式 - 插入/追加文本

i- 从光标前开始插入字符

I- 从行首开始插入字符

a- 从光标后开始插入字符

A- 从行尾开始插入字符

o- 在当前行之下另起一行, 开始插入字符

O- 在当前行之上另起一行, 开始插入字符

ea- 从当前单词末尾开始插入

Ctrl+h-在插入模式下,删除光标前的字符

Ctrl+w-在插入模式下,删除光标前的单词

Ctrl+j-在插入模式下,另起一行

Ctrl+t-在插入模式下,向右缩进,宽度由 shiftwidth 控制

Ctrl+d-在插入模式下,向左缩进,宽度由 shiftwidth 控制

Ctrl+n-在插入模式下,在光标之前插入自动补全的下一个匹配项

Ctrl+p-在插入模式下,在光标之前插入自动补全的上一个匹配项

Ctrl+rx- 插入寄存器x 的内容

Ctrl + ox -暂时进入正常模式以发出一个正常模式命令 x。

Esc- 退出插入模式

编辑文本

r- 替换当前字符

R-在ESC按下之前,替换多个字符

J- 将下一行合并到当前行,并在两部分文本之间插入一个空格

gJ- 将下一行合并到当前行,两部分文本之间不含空格

gwip- 重新调整段落

g~- switch case up tomotion

gu- 小写操作修饰符

gU- 大写操作修饰符

cc- 将光标所在的行删除, 然后进入插入模式

C- 将光标处到行尾删除, 然后进入插入模式

c$- 将光标处到行尾删除, 然后进入插入模式

ciw- 将光标所在的单词删除, 然后进入插入模式

cworce-从光标位置开始, 修改单词

s- 删除当前字符, 然后进入插入模式

S- 清空当前行, 然后进入插入模式 (同cc)

xp- 当前字符后移

u- 撤销

U - 撤销上一次的改动行的操作

Ctrl + r -重做(取消撤销)

.- 再次执行上个命令

选择文本(可视化模式)

v- 进入可视化模式, 移动光标高亮选择, 然后可以对选择的文本执行命令

V - 进入可视化模式(行粒度选择)

o- 切换光标到选择区开头/结尾

Ctrl+v-进入可视化模式(矩阵选择)

O- 切换光标到选择区的角

aw- 选择当前单词

ab- 选择被 () 包裹的区域(含括号)

aB- 选择被 {} 包裹的区域(含花括号)

at- 选择被 <>标签包裹的区域(含<>标签)

ib- 选择被 () 包裹的区域(不含括号)

iB- 选择被 {} 包裹的区域(不含花括号)

it- 选择被 <>标签包裹的区域(不含<>标签)

Esc - 退出可视化模式

可视化模式命令

>- 向右缩进

< - 向左缩进

y- 复制

d- 剪切

~- 大小写切换

u- 将选中文本转换为小写

U- 将选中文本转换为大写

剪切, 复制, 粘贴

yy- 复制当前行

2yy - 复制 2 行

yw- 复制当前单词

yiw- 复制光标处的单词

yaw- 复制光标处的单词及其前后的空格

y$- 复制, 从光标位置到行末

p- 在光标后粘贴

P- 在光标前粘贴

dd- 剪切当前行

2dd- 剪切 2 行

dw- 剪切当前单词

diw- 删除光标处的单词

daw- 删除光标处的单词及其前后的空格

D- 剪切, 从光标位置到行末

d$- 剪切, 从光标位置到行末 (同D)

x- 剪切当前字符

文字缩进

>>- 将当前行向右缩进,宽度由 shiftwidth 控制

<< - 将当前行向左缩进,宽度由shiftwidth 控制

>%- 向右缩进 () 或 {} 内的区域(光标需置于括号上)

>ib- 向右缩进 () 内的区域

>at- 向右缩进 <>标签内的区域

3==- 自动缩进 3 行

=%- 自动缩进 () 或 {} 内的区域(光标需置于括号上)

=iB- 自动缩进 {} 内的区域(光标需置于括号上)

gg=G- 自动缩进整个缓冲区

]p- 粘贴并调整缩进至当前行

退出

:w- 保存

:w !sudo tee %- 使用 sudo 保存当前文件

:wqor:xorZZ-保存并退出

:q- 退出(修改未保存时警告)

:q!orZQ-不保存强制退出

:wqa - 保存所有标签页并全部退出

查找/替换

/pattern-查找pattern

?pattern-向上查找pattern

n- 查找下一个

N- 查找上一个

:%s/old/new/g- 替换全部

:%s/old/new/gc- (逐个)替换

:noh[lsearch]- 移除搜索结果的高亮显示

多文件搜索

:vim[grep] /pattern/{`{file}`}- 在多个文件中搜索 pattern

:cn[ext]- 移动至下一个

:cp[revious]- 移动至上一个

:cope[n]- 打开搜索结果列表

标签

:tabnewor:tabnew{page.words.file}- 在新标签中打开文件

Ctrl+wT-将窗口变成标签

gtor:tabn[ext]-切换到下一个标签

gTor:tabp[revious]-切换到上一个标签

#gt- 切换到第# 个标签

:tabm[ove] #- 移动标签到第# 位(下标从 0 开始)

:tabc[lose]- 关闭当前标签

:tabo[nly]- 关闭其他标签

:tabdocommand - 在所有标签中执行命令

多文件编辑

:e[dit] 文件名- 新建缓冲区打开filename

:bn[ext]- 切换到下个缓冲区

:bp[revious]- 切换到上个缓冲区

:bd[elete]- 关闭缓冲区

:lsor:buffers-列出所有打开的缓冲区

:sp[lit] 文件名- 新建缓冲区打开 filename 并水平分割窗口

:vs[plit] 文件名- 新缓冲区打开filename 并垂直分割窗口

:vert[ical] ba[ll]- editall buffers as vertical windows

:tab ba[ll]- edit allbuffers as tabs

Ctrl+ws-水平分割窗口

Ctrl+wv-垂直分割窗口

Ctrl+ww-在窗口间切换

Ctrl+wq- 关闭窗口

Ctrl+wx- 将窗口切换到下一个窗口

Ctrl+w=-使所有窗口的高度和宽度相等

Ctrl+wh-切换到左侧窗口

Ctrl+wl-切换到右侧窗口

Ctrl+wj-切换到下侧窗口

Ctrl+wk-切换到上侧窗口

Ctrl+wH-使游标所在视窗全高并移至最左 (最左垂直视窗)

Ctrl+wL-使游标所在视窗全高并移至最右 (最右垂直视窗)

Ctrl+wJ-使游标所在视窗全宽并移至最下 (最下水平视窗)

Ctrl+wK-使游标所在视窗全宽并移至最上 (最上水平视窗)

811b38ca-3b80-11ee-9e74-dac502259ad0.jpg






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Unix系统
    +关注

    关注

    0

    文章

    15

    浏览量

    9643
  • VIM
    VIM
    +关注

    关注

    0

    文章

    134

    浏览量

    15295

原文标题:vim超实用指南,收藏这一篇就够了!

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    linux中vi、vim编辑器常用的技巧

    今天浩道跟大家分享硬核干货,关于linux中vi、vim编辑器常用的技巧!
    发表于 09-21 14:04 595次阅读

    12个实用的vim编辑技巧

    vim 是一个很好用的编辑器,应用十分广泛。但关于 vim,总有一些你不知道的事情,我们需要持续不断的学习。
    发表于 11-25 09:26 989次阅读

    常用编辑器Vim编辑器

    在Linux下我们对文本进行编辑,经常用到的编辑器就是Vi/Vim,Vi/Vim命令众多,功能强大,是大多数Linux程序员选择使用的编辑器
    发表于 08-22 09:48

    嵌入式学习-常用编辑器Vim编辑器

    在Linux下我们对文本进行编辑,经常用到的编辑器就是Vi/Vim,Vi/Vim命令众多,功能强大,是大多数Linux程序员选择使用的编辑器
    发表于 08-23 09:12

    vim编辑器:4.1 vim编辑器介绍及打开文件 #硬声创作季

    编辑器
    充八万
    发布于 :2023年07月12日 10:47:15

    Linux下怎么使用vim编辑器

    Vim是Linux操作系统中最常用一个编辑器。如配置文件的更改、环境变量的设置等等基本上都是在这个vim编辑器上完成。所以这是Linux系统管理员最常用的一个工具。不过这个工具虽然小,
    发表于 04-03 07:22

    vim Linux文本编辑器

    vimLinux文本编辑器vim——最强大的文本编辑器——摆脱鼠标vi—vim—gvim三种模式:①命令模式:yy(复制)、p(粘贴)、dd(删除)、u(恢复)②插入模式:i/a(进
    发表于 12-15 06:30

    VIM编辑器学习

     Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。 
    发表于 08-11 16:58 994次阅读

    Vim编辑器的使用学习和使用技巧

    首先我们先理清楚一个概念:编辑器和编译和调试
    的头像 发表于 06-23 10:43 2223次阅读

    Vim更现代直观的Linux文本编辑器

    一些流行的命令行文本编辑器包括 Vi、Vim 和 Nano。这些工具非常流行,它们预装在大多数 Linux 发行版中。但是,某些编辑器(如 Vi 或 Vim)的学习曲线和键绑定对于初学
    的头像 发表于 02-24 10:08 1006次阅读

    vim编辑器操作指令大全

    vim编辑器的完整操作命令 在Linux下,可以键入vimtutor命令,有一个包含实操的vim教程。 1.VI的三种命令模式 1)Command(命令)模式,用于输入命令; 2
    发表于 04-28 16:25 0次下载

    你会使用 Linux 编辑器 vim 吗?

    vim:是一款编辑器,只负责写代码;相当于 windows 的记事本;
    的头像 发表于 05-10 18:21 865次阅读
    你会使用 Linux <b class='flag-5'>编辑器</b> <b class='flag-5'>vim</b> 吗?

    vim编辑器如何使用

    Vim编辑器是一个功能强大的文本编辑器,它基于Vi进行改进,并增加了许多新特性。Vim编辑器的使用主要涉及其不同的工作模式及相应操作。以下是
    的头像 发表于 08-30 14:58 444次阅读

    vim编辑器命令模式使用方法

    Vim编辑器是一款功能强大的文本编辑器,广泛应用于程序员和开发者的日常工作中。Vim编辑器拥有多种模式,其中命令模式(Command mod
    的头像 发表于 08-30 15:01 413次阅读

    【北京迅为】itop-龙芯2k1000开发指南Linux基础入门vim 编辑器

    【北京迅为】itop-龙芯2k1000开发指南Linux基础入门vim 编辑器
    的头像 发表于 10-25 14:56 306次阅读
    【北京迅为】itop-龙芯2k1000开发<b class='flag-5'>指南</b>Linux基础入门<b class='flag-5'>vim</b> <b class='flag-5'>编辑器</b>