Vim入门教程

Posted zkccnb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim入门教程相关的知识,希望对你有一定的参考价值。

Vim入门教程

有IDE了为什么还要学习Vim?

Vim在C/C++后台开发中是必不可少的编辑工具,很多场景下我们不能依靠任何IDE的帮助来书写代码,此时Vim成为了在这种场景下的首选代码编辑工具。因此,对有志于后台开发的同学来说,Vim入门是必不可少的一课。

本文假设你是一个Vim的新手(之前从来没有接触过Vim),希望你通读本文后,可以使用Vim做基本的代码编辑。当然,要想真正将Vim用到得心应手,并配合其他相关工具,这需要长此以往的熟悉。在没有使用Linux下的Vim工具时,也可以使用Qt中的FakeVimLeetCode中的Vim键位等来熟悉Vim的操作。

1. 三种模式的切换

在这里插入图片描述
图1 Vim的三种模式转化图

2. 普通模式

安装Vim后,在Linux命令行中键入如下命令使用Vim打开一个文件:

vim filename # 打开一个文件
vim filename1,filename2,filename3...# 同时打开多个文件到文件缓冲区

刚进入Vim的模式默认为普通模式,此模式下不能编辑,只能查看文件。所以有些没用过Vim的同学一打开Vim之后就开始疯狂操作。。。结果什么也没有发生(比如我)。在这种模式下,有一些快捷键帮助我们便捷的查看文件,如下:

普通模式下的快捷键行为
k / ↑向上
j / ↓向下
h / ←向左
l / →向右
10k / 10↑向上10字符
10j / 10↓向下10字符
10h / 10←向左10字符
10l / 10→向右10字符
/word向下查找word
?word向上查找word
n如果是/word后使用,则表示向下继续查找;
如果是?word后使用,则表示向上继续查找;
N如果是/word后使用,则表示向上继续查找;
如果是?word后使用,则表示向下继续查找;
u撤销
ctrl+r重做
ctrl+w + →/←多窗口中切换光标到右/左边的窗口
bn在当前窗口切换为下一个文件
bp在当前窗口切换为上一个文件
b num在当前窗口切换为标号为num的文件
(在命令模式下查看已打开文件编号)
a / o / i / s进入编辑模式
:进入命令模式

3. 编辑模式

从普通模式键入a / o / i / s后会进入编辑模式,此模式下可以对文件进行编辑。

文本普通的编辑和其他IDE差不多,稍加熟悉就可以编辑了,只是注意不能用鼠标了。。实际上,Vim工具的一个重要作用就是去除对鼠标的依赖,特别是用熟练了之后,不用鼠标反而可以提升编程的效率。

  • 另外,程序员必备的“复制粘贴”操作和你所处的shell一样。。

一般的bush-shell来说,复制:shift+ctrl+c;粘贴:右键。(这不还是用鼠标了。。,因为感觉Vim自带的复制粘贴有些不灵活)

从编辑模式退回普通模式按Esc即可,编辑模式不能直接到命令行模式,需要先经普通模式。

4. 命令模式(低行模式)

这个模式下可以在Vim中输入一些指令来设置文件和编辑器的属性,常见的命令如下:

命令模式下的快捷键行为
:w保存
:q不保存退出
:wq保存并退出
:q!强制退出
:w filename另存为filename文件
:set nu设置显示行号(这个还是很重要的,特别是配合gdb调试的时候)
:e filename打开filename文件到缓冲区
:sp filename打开一个文件到缓冲区并水平分割窗口以显示之(这个感觉很鸡肋)
:vsp filename打开一个文件到缓冲区并垂直分割窗口以显示之(这个很有用)
:bn在当前窗口切换为缓冲区中的下一个文件
:bp在当前窗口切换为缓冲区中的上一个文件
:b num在当前窗口切换为标号为num的文件
(在命令模式下查看已打开文件编号)
:ls显示当前所有打开文件的编号
:行号光标跳到指定的行号处
:/word查找word字符串,用n以跳到下一处
Esc退回普通模式

5. Vim操作图谱

这里有一张Vim操作图谱可供查看:
在这里插入图片描述

图2:Vim操作图谱

以上是关于Vim入门教程的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

vim代码片段插件ultisnips的使用

Vim 入门教程

markdown 打字稿...编码说明,提示,作弊,指南,代码片段和教程文章