VIM编辑器的使用

快来使用VIM提升你的逼格!

VIM概述

先来说一下VI吧,VI是VIM的前身,VI的全名叫做Visual Interface(可视化接口),而VIM叫做VI Improved,也就是VI的升级版。

那么有哪些令人称赞的升级呢?

  • 多级撤销 (VI仅能撤销一布)
  • 跨平台
  • 语法高亮
  • 支持图形界面(NOT recommanded)

VIM编辑器的操作

VIM有三种最常用的模式:

  • Command Mode 命令模式
  • Insert Mode 输入模式
  • Last Line Mode 底行模式

插一句重要的话,VIM的学习和Linux一样,是实践科学!所以一定要在实际环境中多使用,仅通过看文档是不会有实际作用的!
这篇文档是列举了一些常用的VIM技巧和指令以及一些释义,相当于是一篇实验指南吧,希望能给大家起到一点参考的作用

好了,让我们现在开始吧!

VIM的指令结构

VIM有很多指令是支持数字+指令的,

譬如:dd是用来删除整行的命令,那么我们可以使用2dd来删除两行

凡是支持这样结构的命令,我会有标注。

进入输入模式的参考

命令 说明
i 在当前光标处进行编辑(insert)
I 在行首插入
A 在行末插入
a 在光标后插入编辑(append)
o 在当前行后插入一个新行(open)
O 在当前行前插入一个新行

打开文件

1
:e file

进入vim后通过指令也可以打开

1
vim file

如果当前目录下没有文件名为file的文件,VIM会为我们创建它。

1
vim +n file

打开file,默认光标在第n行

如果n大于文件的最大行,则跳到最后一行。

1
vim +/reg file

打开file,高亮所有匹配到的关键字,光标出现在首次出现的哪一行

1
vim file1 file2 file3

VIM同样支持多文件打开

如何在多文件之间跳转呢? ( Buffer )

  • 使用 :n 下一个文件 :N 上一个文件
  • 使用 :prev 上一个 :next 下一个

如果想要获得我打开了哪些文件,可以在底盘输入:

  • :ls (没错,就是ls)

保存与退出文件

1
:w <可选 文件路径>

将文件从内存写入硬盘

1
:saveas <必须 文件路径>

另存为

1
:q

关闭文件(仅适用于未修改的文件)

1
:q!

关闭文件(强制) 所做的更改无效,数据会丢失

1
2
:wq
:x

保存并关闭(应该是使用最多的命令了)

这些命令都可以组合使用。

光标移动与定位

光标的四向移动:(支持数字)

  • h 左移
  • j 下移
  • k 上移
  • l 右移

至于为什么用这个而不用方向键…..

有人说使用这四个键更快速,然而事实是,VI编辑器是在ADM-3A终端机上创建的,

这玩意就长这样:

ADM-3A

这是它的键盘:

keyboard

所以说这玩意儿是没有我们现在的方向键的

细节图:

KeyBoard_detail

更快速的移动:(支持数字)

  • w 下一个单词的开头
  • e 下一个单词的结尾
  • b 上一个单词的开头
  • ge 上一个单词的结尾

行内移动还有:

  • 0 或 ^ 行头
  • $ 行尾
  • f<字母> 向后搜索<字母>并跳转到第一个匹配的位置
  • F<字母> 向前搜索<字母>并跳转到第一个匹配的位置

翻页指令如下:

  • ctrl + f 向前(front)翻页
  • ctrl + u 向上(up)翻
  • ctrl + b 向后(back)翻页
  • ctrl + d 向下(down)翻

可以直接使用:line来定位

gg快速移到第一行
G 快速移到最后一行
<num>G 移到<num>

如果没有行号,使用:set nu来开启

查找

如打开文件一样,在底盘输入/reg来向后搜索

光标出现在首次出现的reg的位置(这次就不是行头了)

向前搜索使用:?reg,光标会出现在上方第一个匹配的reg的位置

接着使用nN来向后向前搜索

文件操作之删除

删除的指令如下:

  • x 删除游标所在的字符(支持数字)
  • X 删除游标所在前一个字符(支持数字)
  • dd 删除整行(支持数字)
  • dw 删除一个单词(支持数字)
  • d$或D 删除至行尾
  • d^ 删除至行首
  • dG 删除到文档结尾处
  • d1G 删至文档首部

文件操作之复制剪切粘贴

复制

使用y来复制

  • yy 复制游标所在的整行<支持数字>
  • y^或y0 复制至行首 不含光标所在处字符。
  • y$ 复制至行尾。含光所在处字符。
  • yw 复制一个单词。<支持数字,在w前>
  • yG 复制至文本末。
  • y1G 复制至文本开头。

粘贴

使用p来粘贴

  • p 粘贴至光标后(下)
  • P 粘贴至光标前(上)

剪切

好吧..我承认,我骗了你们 (微笑

事实上,dd命令就是剪切,由此我们可以得到一个酷炫的技能–交换上下行(ddp)

文件操作之替换

个人觉得替换是很便利的命令(尤其是R,很炫酷)

  • r+<字母> 将游标所在字母替换为指定字母

  • R 连续替换,直到按下Esc

  • cc 替换整行,即删除游标所在行,并进入插入模式

  • cw 替换一个单词,即删除一个单词,并进入插入模式

  • C(大写) 替换游标以后至行末

  • ~ 反转游标所在字母大小写

  • u<num> 撤销一次或num次操作

  • U(大写) 撤销当前行的所有修改

  • Ctrl+r redo,即撤销undo的操作

文件操作之缩进

VIM的缩进非常方便,使用:

  • >> 整行向右缩进
  • << 整行向左缩进
  • :set shiftwidth 可以进行缩进和回退的字符数的设置