Bootstrap

Vim新手之路:熟练使用操作指令

一. 前言

在编程世界的浩瀚星空中,Vim就像一颗璀璨的星辰,历经数十年风雨,依然熠熠生辉。Vim,全称Vi IMproved,是从古老的Vi编辑器发展而来的一款文本编辑器。自1991年首次发布以来,Vim凭借其强大的功能、灵活的定制性以及无与伦比的效率,赢得了全球无数程序员和开发者的青睐。它不仅是一款编辑器,更是程序员手中的一把利剑,助力程序员在代码的海洋中劈波斩浪,所向披靡。

1.1 Vim的演化史

Vim的历史可以追溯到上世纪70年代,当时Bill Joy在Unix系统上开发了Vi编辑器。随着时间的推移,Vi逐渐成为了Unix及类Unix系统上的标准文本编辑器。而Vim,作为Vi的改进版,不仅继承了Vi的所有优点,还加入了更多的现代化特性和功能。Vim的独特魅力在于其高度可定制性和强大的文本处理能力。无论是简单的文本编辑,还是复杂的代码重构,Vim都能游刃有余地应对。此外,Vim还提供了丰富的插件和脚本支持,使得用户可以根据自己的需求进行个性化定制,进一步提升工作效率。

1.2 为何选择Vim

在众多的文本编辑器和IDE中,Vim之所以能成为高效编码的首选工具,我认为原因主要有以下几点:

  • 轻量级与高效: Vim不依赖于图形界面,运行速度快,占用资源少。即使我们在老旧或资源受限的计算机上,也能保持流畅的操作体验。
  • 键盘为中心: Vim强调通过键盘快捷键来完成大部分操作,极大地减少了鼠标的使用,从而提高了编码速度。熟练掌握Vim快捷键后,我们可以在不离开键盘的情况下完成几乎所有的编辑任务。
  • 强大的文本处理能力: Vim提供了丰富的文本处理命令和正则表达式支持,使得用户能够轻松地进行复杂的文本编辑和查找替换操作。
  • 高度可定制: Vim的配置文件(.vimrc)允许用户根据自己的喜好和习惯进行个性化定制,包括快捷键、插件、颜色主题等。这种高度可定制性使得Vim能够满足不同用户的需求。
  • 社区支持: Vim拥有庞大的用户社区和丰富的资源库。如果我们在使用Vim过程中遇到问题,也能在社区中找到答案或得到帮助。除此此外,社区还不断贡献出各种优秀的插件和脚本,使得Vim的功能日益强大与健壮。

1.3 如何使用Vim进行高效编码

基于Vim的这些独特魅力和优势,我将给大家分享Vim的一些基础操作的使用技巧。希望能够帮助大家快速掌握Vim,从而提升代码开发效率。

二、基础篇(快速上手Vim)

2.1 Vim的基本模式

Vim编辑器有3种工作模式,分别是命令模式(command mode)、插入模式(insert mode)和末行模式(last line mode)。

  • 命令模式: 命令模式是Vim的默认模式,用户打开Vim时便进入命令模式。在命令模式下输入的键盘动作会被Vim识别成命令而非文本输入。比如,输入"i",Vim识别的是i命令。用户可以输入命令来控制屏幕光标的移动、文本的删除或某个区域的复制或者撤销等,也可以进入末行模式或文本模式。
  • 插入模式: 当需要在文本中新增或修改内容时,我们需要进入插入模式。在命令模式下输入i命令就可以进入插入模式,按Esc键可以回到命令模式。在插入模式下,用户可以像使用普通文本编辑器一样输入文本。总之,想要在文本中输入字符,必须处在插入模式下。
  • 末行模式: 命令行模式允许用户执行一些高级命令,这些命令通常与文件的保存、退出Vim、查找替换文本、设置Vim选项等操作有关。在命令模式下按":"键就会进入末行模式。例如,输入":w" 保存文件,":q" 退出Vim(如果文件未修改),":wq"保存并退出Vim,":set nu"设置显示行号等。完成命令输入后,按回车键执行命令。

2.2 三种模式之间的切换

在这里插入图片描述

1. 命令模式指令

注意:命令模式下的指令只能在命令模式下使用,在其他模式下无效
字符串中间的 +代表是快捷键操作

  • 从正常模式切换到插入模式
命令作用
i进入编辑模式,光标前插入字符
a进入编辑模式,光标后插入字符
o进入编辑模式,光标所在行的下一行插入
I进入编辑模式,光标所在行的行首插入
A进入编辑模式,光标所在行的行末插入字符
O进入编辑模式,光标所在行的上一行插入字符
s删除光标所在字符并进入插入模式
S删除光标所在行并进入插入模式
  • 移动光标
命令作用
h命令模式下的光标移动 左移
j命令模式下的光标移动 下移
k命令模式下的光标移动 上移
I命令模式下的光标移动 右移
0(数字)光标移到行首,工作模式不变
$光标移到行尾,工作模式不变
gg跳转首行
G跳转末行
w正向移动到下一个单词的开头
b反向移动到下一个单词的开头
f{char}正向移动到下一个{char}字符所在之处例如fa,移动到下一个a字符
Ctrl + f屏幕向下移动一页,相当于Page Down键
Ctrl + b屏幕向上移动一页,相当于Page Up键
Ctrl + d屏幕向下移动半页
Ctrl + u屏幕向上移动半页
n + Entern为数字,光标向下移动n行
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
H光标移动到屏幕最上方那一行的第一个字符
L光标移动到屏幕最下方那一行的第一个字符
line-G命令模式下行跳转 例11G,光标跳到11行
%大括号跳转命令模式下,光标处于左大括号时,使用%跳转到对应右大括号,再按%跳回去。其他括号也可以这样
  • 删除文本
命令作用
x删除光标所在字符,工作模式不变
dx删除光标所在单词,要求光标在首字母上,如果不在首字母,只会删除当前位置到单词末,工作模式不变
D删除光标所在位置到行末,工作模式不变
d0删除光标所在位置到行首,工作模式不变
d$删除光标所在位置到行末,工作模式不变
删除指定区域光标选中要删除的首字符,按v进入可视模式,再使用hjkl移动到要删除的末尾,按d删除
dd删除光标所在行(dd不是真正意义上的删除,而是剪切,消失的内容去了剪切板)
ndd删除从光标开始的n行
  • 复制和粘贴文本
命令作用
yy复制光标所在行
nyy复制光标所在位置的n行,包括光标所在行
p向后粘贴剪切板内容,如果复制整行,这里是粘贴在光标所在位置的下一行
P向前粘贴剪切板内容,如果是整行,这里是粘贴在光标所在位置的上一行
  • 撤销操作
命令作用
u撤销操作
Ctrl-r反撤销
  • 搜索和替换
命令作用
/findname命令模式下向下查找,按回车键启动查找后,按n,会自动找下一个,N跳到上一个
?findname向上查找
查找光标所在单词光标在目标单词上时,*或者#查找下一个,这里不要求光标必须在首字母上
r命令模式下替换光标选中字符,替换单个字符
从vim中跳转manpage将光标放在待查看单词上,按K,默认看第一卷n+K,查看第n卷
[+d查看宏定义:命令模式光标放在待查看词上,即可查看
  • 保存和退出
命令作用
ZZ保存退出

2. 末行模式指令

注意:末行模式下的指令只能在末行模式下使用,在其他模式下无效
字符串中间的 +代表是快捷键操作

  • 保存和退出
命令作用
:q退出Vim
:q!强制退出Vim,修改过的文件不会被保存
:w保存修改过的文件
:w!强制保存修改过的文件
:wq保存文件后退出Vim
:wq!强制保存文件后退出Vim
  • 搜索和替换
命令作用
:s /待替换词/替换词单行替换 光标置于待替换行,需自己确定是否替换
:%s /待替换词/替换词 全文替换:这个默认替换每行的首个,一行有多个目标词时,后面的不会变
:%s /待替换词/替换词/g全文替换:真正意义上的全局替换
  • 分屏操作
命令作用
:sp水平分屏
:vsp竖直分屏
分屏命令+filename分屏并打开这个文件
Ctrl+w+w分屏后屏幕切换
:q退出光标所在窗口
:qall退出所有窗口
  • 其他操作
命令作用
:! + 命令vim下使用shell命令,操作后,会切换至终端显示结果,按Enter后回到vim界面
Ctrl + p在末行模式下按Ctrl + p快捷键显示末行模式下的上一条命令
Ctrl + n显示末行模式下的下一条命令

3. 插入模式指令

字符串中间的 +代表是快捷键操作

命令作用
ESC键在插入模式下按下 Esc 键会返回到命令模式
Ctrl + [与ESC键作用相同

三、Vim配置文件

vim有两个配置文件

1.	/etc/vim/vimrc
2.	~/.vimrc 其中,第二个配置文件会优先加载,属于用户配置

关于vimrc的配置,网上有很多教程,在这里我就不做分享了,大家直接找网上开源的配置直接导入即可。大家可以参考一下这个:Vim的终极配置方案,完美的写代码界面! ——.vimrc

好了,今天的文章就分享到这里,后续如果有其他有用的指令,我也会添加进来,大家有需要的可以关注收藏一下。

;