欢迎来到白刘的领域 Miracle_86.-CSDN博客
系列专栏 Linux
先赞后看,已成习惯
创作不易,多多支持!
目录
前言
在代码的世界里,效率是永恒的追求。无论是新手开发者还是资深工程师,都渴望拥有一款能让自己如虎添翼的编辑器。而在Linux生态中,有一款被无数程序员奉为神器、被誉为“效率之王”的编辑器——Vim。它以26个字母键为核心,用极简的操作重构了代码编辑的宇宙。今天,就让我们一同走进Vim的世界,探索它如何以独特的方式提升你的编程效率。
一、Vim是什么?
Vim(Vi IMproved)是一款高度可配置的文本编辑器,最初作为Vi编辑器的改进版发布。它运行在大多数类Unix系统(如Linux、macOS)上,同时也支持Windows平台。Vim的设计哲学是“模式化编辑”,通过不同的操作模式(如普通模式、插入模式、可视模式等)来高效地完成文本编辑任务。
二、为什么选择Vim?
1.极致效率:Vim的操作几乎完全基于键盘,无需频繁切换鼠标,让双手始终保持在键盘上,极大地提高了编辑速度。
2.高度可定制:Vim提供了丰富的配置选项和插件生态,用户可以根据自己的需求定制专属的编辑环境。
3.跨平台兼容:无论是Linux、macOS还是Windows,Vim都能提供一致的使用体验。
4.学习曲线陡峭但回报丰厚:虽然Vim的学习曲线相对较陡,但一旦掌握,你将发现它带来的效率提升是任何其他编辑器都无法比拟的。
三、Vim的核心模式
Vim的精髓在于其模式化设计,下面给大家介绍一下Vim在使用时几种常用的模式:
3.1 命令模式(Normal Mode)
默认模式,所有移动和编辑命令都基于此模式。
3.2 插入模式(Insert Mode)
插入模式顾名思义,是用来插入文字的。我们在键盘上找到a、i、o键就能进入插入模式。
3.3 底行模式(Command-line Mode)
通过:
进入,用于执行Vim命令,如保存文件(:w
)、退出Vim(:q
)等。
四、Vim的基本操作
4.1 进入vim
首先我们输入vim 文件名,就可以打开vim。
语法:vim 文件名
功能:用vim打开文件。
刚进入vim默认的模式就是命令模式,如下图:
4.2 模式切换
【命令模式】↔【插入模式】
命令模式→插入模式:
1、按 “ a ” 键:进入插入模式后,在光标当前位置的下一个位置开始插入文字。
2、按 “ i ” 键:进入插入模式后,在光标当前位置开始插入文字。
3、按 “ o ” 键:进入插入模式后,插入新一行开始插入。
插入模式→命令模式:按 “Esc” 键。
【命令模式】↔【底行模式】
命令模式→底行模式:shift + ' ; '(也就是输入' : ')
底行模式→命令模式:按 “Esc” 键。
插入模式和底行模式不能直接切换,只能通过命令模式来切换,所以命令模式是使用最频繁的模式。
4.3 退出vim
退出vim一共有两种方法:
- 在命令模式下,输入大写的“ZZ”。
- 在底行模式下,输入
w
保存当前文件,输入q
退出vim。
wq:保存并且退出。
q!:不保存,强制退出。(加个感叹号就是强制的意思)
五、命令模式的命令集
5.1 移动光标
- 基础移动
- 「h」:光标左移一格。(在键盘最左,所以是左)
- 「j」:光标下移一格。(jump,向下跳,所以是下)
- 「k」:光标上移一格。(king,国王高高在上,所以是上)
- 「l」:光标右移一格。(在键盘最右,所以是右)
- 特定位置移动
- 「G」:移动到文本最后。(shift + ‘ g ’)
- 「$」:移动到光标所在行的行尾。(shift + ‘ 4 ’)
- 「^」:移动到光标所在行的行首。(shift + ‘ 6 ’)
- 「w」:光标跳到下个单词的开头。
- 「e」:光标跳到下个单词的字尾。
- 「b」:光标回到上个单词的开头。
- 「nl」:光标移到该行的第n个位置,如:5l, 56l。
- 「gg」:进入到文本开始。
- 屏幕移动
- 「Ctrl + b」:屏幕往后移动一页。
- 「Ctrl + f」:屏幕往前移动一页。
- 「Ctrl + u」:屏幕往后移动半页。
- 「Ctrl + d」:屏幕往前移动半页。
5.2 删除文字
- 单个字符删除
- 「x」:删除光标所在位置的一个字符。
- 「#x」:例如,「6x」表示删除光标所在位置后面(包含自己在内)6个字符。
- 「X」:每按一次,删除光标所在位置的前面一个字符。(shift + ‘ x ’)
- 「#X」:例如,「20X」表示删除光标所在位置的前面20个字符。
- 整行删除
- 「dd」:删除光标所在行。
- 「#dd」:从光标所在行开始删除#行。
5.3 复制
- 字符复制
- 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
- 「#yw」:复制#个字到缓冲区。
- 整行复制
- 「yy」:复制光标所在行到缓冲区。
- 「cyy」:c代表c行,例如,「6yy」表示拷贝从光标所在的该行往下数6行文字。
- 粘贴
- 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
- 剪切
- 「dd」:剪切光标所在行到缓冲区。
5.4 替换
- 单个字符替换
- 「r」:替换光标所在处的字符。
- 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。(shift + ‘ r ’)(实际上是从命令模式进入到替换模式,而按ESC是退出替换模式到命令模式)
- 「~」:将光标所到之处的字符进行大小写变换,如果是大写字母就变成小写,如果是小写字母就变成大写。(shift + ‘ · ’)
5.5 撤销与恢复
- 撤销上一次操作
- 「u」:撤销,回到上一个操作。按多次“u”可以执行多次撤销。
- 撤销的恢复
- 「Ctrl + r」:恢复,回到撤销前的操作(反撤销)。按多次可以执行多次恢复。
5.6 更改
- 「cw」:更改光标所在处的字到字尾处。
- 「c#w」:例如,「c3w」表示更改3个字。
5.7 跳至指定的行
- 「Ctrl + g」:列出光标所在行的行号。
- 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
六、底行模式的命令集
6.1 保存文件
- 「w」:在冒号后输入字母「w」,保存文件。
6.2 退出
- 退出
- 「q」:按「q」退出vim。如果无法离开,可以在「q」后跟一个「!」强制离开。
- 保存并退出
- 「wq」:建议离开时搭配「w」一起使用,这样在退出时还可以保存文件。
6.3 强制执行
- 强制退出
- 「!q」:强制退出,不保存任何修改。
- 强制保存
- 「!w」:强制保存文件,覆盖原有的只读限制(前提是有权限)。
6.4 设置行号
- 「set nu」:列出光标所在行的行号。
- 「set nonu」:撤销光标所在行的行号。
6.5 多文本操作
在底行模式中我们可以利用 vs 文件名 来实现多文件同屏。
我们还可以通过「Ctrl + w + w」来让光标跳转到下一个文件。
七、Vim的配置
我们在插入模式中,由于未经配置,vim不像其它编译器那样有自动补全或者显示行号高亮等功能,导致我们在使用的时候会感到用起来并不是那么丝滑,这个时候我们就需要对vim进行配置。
7.1 Vim 配置文件的位置
配置项一般都放在家目录的 .vimrc 文件中,这个 .vimrc 就叫做配置文件。如果用户当前没有配置文件,则可以自己touch一个。
之后我们可以通过 vim .vimrc 来打开配置文件并且进行配置项的编辑。
7.2 常用配置项
syntax on " 自动语法高亮
set nu " 显示行号
set tabstop=4 " 设定 tab 长度为 4
set cursorline " 突出显示当前行
......
网上还有更多的配置项,大家可根据需要自己搜索进行配置。
7.3 自动化一键配置
这里分享一个可以自动化配置的方案:
只需要输入这行代码即可完成一键配置:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
但是要注意两点,首先强烈不建议使用root账户操作,其次该插件只支持 Centos7 x86_64. ,也就是说Ubuntu不支持该插件,但是也可以自行搜索进行配置。