Vim编辑器快速上手

举报
i进击的攻城狮 发表于 2022/04/09 18:48:26 2022/04/09
【摘要】 Vim编辑器是最好用的编辑器

Vim编辑器是什么?Vim编辑器是Linux系统中自带的一款文本编辑工具,我们可以使用Vim编辑器去编辑文本。Vim编辑器和我们在Windows系统中使用的文本编辑器完全不同,因为Linux是基于命令行的,它不像Windows系统的文本编辑器那样,可以通过鼠标,快速进入某个目录,然后编辑,Vim编辑器有它的特点,它基于命令行和快捷键的方式,当你熟练后,使用Vim编辑器去编辑文本,效率完全不必Windows下的文本编辑器差!

Vim编辑器主要模式

Vim 编辑器主要有3中模式:普通模式、插入模式、命令模式

普通模式(Normal mode)

在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是 Vim 启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。

Vim 强大的编辑功能来自于其普通模式命令。在普通模式下,可以输入快捷命令对文本内容进行操作。比如dd删除,gg快速到文本头部等等。

在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按 a(append/追加)键或者 i(insert/插入)键。

插入模式(Insert mode)

在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。
在插入模式中,可以按 ESC 键回到普通模式。

命令行模式(Command line mode)

在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim 返回到命令行模式之前的模式,通常是普通模式。

在这里插入图片描述

Vim快速入门

vim 启动进入普通模式,处于插入模式或命令行模式时只需要按 Esc即可进入普通模式。普通模式中按 i(插入)或 a(附加)键都可以进入插入模式,普通模式中按 : 进入命令行模式。命令行模式中输入 wq 回车后保存并退出 vim。
在这里插入图片描述

使用 vim 命令进入 vim 界面

vim 后面加上你要打开的已存在的文件名或者不存在(则作为新建文件)的文件名。在环境里输入下面的命令:

vim practice_1.txt

直接使用 vim 也可以打开 vim 编辑器,但是不会打开任何文件。

进入命令行模式后输入 :e filepath 同样可以打开相应文件。

游标移动

在进入 vim 后,按下 i 键进入插入模式。在该模式下您可以输入文本信息,下面请输入如下三行信息:

12345678
abcdefghijk
csdn.com

按Esc进入普通模式,在该模式下使用方向键或者 h,j,k,l 键可以移动游标。

按键 说明
h
l 右(小写 L)
j
k
w 移动到下一个单词
b 移动到上一个单词

当然我更喜欢使用方向键去控制光标的移动,不过在命令模式中,使用w和b用于单词之间的快速移动还是非常方便的。
在这里插入图片描述

进入插入模式

使用Vim用的最多的应该就是使用它的插入模式,我们可以在插入模式中写输入我们想要输入到文本中的字符,但插入模式不仅仅只能使用i进行插入,我们还能有其他的插入方式去提高效率。

命令 说明
i 在当前光标处进行编辑
I 在行首插入
A 在行末插入
a 在光标后插入编辑
o 在当前行后插入一个新行
O 在当前行前插入一个新行
cw 替换从光标所在位置后到一个单词结尾的字符

我们除了使用i在当前光标所处的位置插入以外,还能使用其他方式进入插入模式,在光标所属的行首行尾,或者下一行插入。

命令行模式下保存文档

从普通模式输入 : 进入命令行模式,输入 w 回车,保存文档。

命令行模式下退出 vim

从普通模式输入 : 进入命令行模式,输入 wq 回车,保存并退出编辑。

以下为其它几种退出方式:

命令 说明
:q! 强制退出,不保存
:q 退出
:wq! 强制保存并退出
:w <文件路径> 另存为
:saveas 文件路径 另存为
:x 保存并退出
:wq 保存并退出

普通模式下删除 vim 文本信息

在Windows下我们是如何删除文本了,使用backSpace退格快速删除?
但这样的参数方式,在文本特别的的情况下,删除速度不可恭维,Vim编辑器有更好的删除策略。
进入普通模式,使用下列命令可以进行文本快速删除:

命令 说明
x 删除游标所在的字符
X 删除游标所在前一个字符
Delete 同 x
dd 删除整行
dw 删除一个单词(不适用中文)
d$或D 删除至行尾
d^ 删除至行首
dG 删除到文档结尾处
d1G 删至文档首部

除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:

2dd 表示一次删除 2 行。

是不是很方便。

Vim文档编辑

重复执行上次命令

在普通模式下 .(小数点)表示重复上一次的命令操作。

拷贝测试文件到本地目录:

cd /home/shiyanlou
cp /etc/protocols .
vim protocols

普通模式下输入 x,删除第一个字符,输入 .(小数点)会再次删除一个字符,除此之外也可以重复 dd 的删除操作。

执行指定次数相同的命令
进入普通模式输入 N<command>,N 表示重复后面的次数,下面来练习:

输入 10x,删除 10 个连续字符
输入 3dd,将会删除 3 行文本

在普通模式下,你还可以使用 dw 或者 daw(delete a word)删除一个单词,所以你可以很容易的联想到 dnw(n 替换为相应数字) 表示删除 n 个单词。

游标的快速跳转

普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现行间跳转和行内跳转。

行间跳转

命令 说明
nG 游标移动到第 n 行
gg 游标移动到到第一行
G 到最后一行

还是来练习一下吧,使用 vim 打开练习文档:
依次进行如下操作练习:

  • 快速跳转到第 9 行,然后将其该行删除
  • 回到第一行,向下删除 8 行
  • 跳转到文档末,然后删除该行

小技巧:你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置,这个技巧很实用,比如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o 就可以回到你之前的位置。

复制粘贴和剪切

复制及粘贴文本

  • 普通模式中使用 y 复制

  • 普通模式中,yy 复制游标所在的整行(3yy 表示复制 3 行)

  • 普通模式中,y^ 复制至行首,或 y0。不含光标所在处字符。

  • 普通模式中,y$ 复制至行尾。含光标所在处字符。

  • 普通模式中,yw 复制一个单词。

  • 普通模式中,y2w 复制两个单词。

  • 普通模式中,yG 复制至文本末。

  • 普通模式中,y1G 复制至文本开头。

  • 普通模式中使用 p 粘贴

  • 普通模式中,p(小写)代表粘贴至光标后(下)

  • 普通模式中,P(大写)代表粘贴至光标前(上)

剪切及粘贴

其实前面讲得 dd 删除命令就是剪切,你每次 dd 删除文档内容后,便可以使用 p 来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行。

ddp,就这么简单,即实现了快速交换光标所在行与它下面的行。

思考:

我们前面学过的那些命令、操作,除了提到过的还有哪些支持前面加上数字实现重复多次操作,如 3dd。

Vim 查找替换

快速查找

普通模式下输入 /然后键入需要查找的字符串,按回车后就会进行查找。? 与/ 功能相同,只不过 ? 是向上而 / 是向下查找

进入查找之后,输入 n 和 N 可以继续查找。n 是查找下一个内容,N 查找上一个内容。

高级查找

普通模式下输入 \* 寻找游标所在处的单词
普通模式下输入 \# 同上,但 \# 是向前(上)找,\* 则是向后(下)找
普通模式下输入 g\* 同 \*,但部分符合该单词即可
普通模式下输入 g\# 同 \#,但部分符合该单词即可
以上查找 n,N 的继续查找命令依然可以用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。