> [!quote] 导读
>
> Vim 是一个类似于 Vi 的高度可定制的文本编辑器,在 Vi 的基础上改进和增加了很多特性。Vim 是自由软件。Vim 普遍被推崇为类 Vi 编辑器中最好的一个,事实上真正的劲敌来自 Emacs 的不同变体。1999 年 Emacs 被选为 Linux world文本编辑分类的优胜者,Vim 屈居第二。但在 2000 年 2 月 Vim 赢得了 Slashdot Beanie 的最佳开放源代码文本编辑器大奖,又将 Emacs 推至二线。
![[nvim-ui.png]]
Vim 是 Linux 等类 Unix 系统上常用的文本编辑器,因其能在终端运行与轻量化的特性,在加上大部分系统都自带了该文本编辑器,因此经常用在远程服务器的数据修改上。Vim 拥有许多的支持者,许多编辑器(例如:[[软件/编辑器/VS Code|VS Code]])都内置了 Vim 模式来迎合 Vim 用户。
## 下载与安装
### Linux
#### Ubuntu
```shell
$ sudo apt install vim-gtk
```
#### Centos
```shell
$ yum -y install vim*
```
### Windows
虽然没有什么人在 Windows 上使用 Windows,但是还是加上说明吧。
首先打开 Vim 的官网 [welcome home : vim online](https://www.vim.org/),找到 Download 页面,在 MS-Windows 标题栏下找到 [gvim_9.1.0_x64_signed.exe](https://github.com/vim/vim-win32-installer/releases/download/v9.1.0/gvim_9.1.0_x64_signed.exe)(下载不了请看 [[Github 加速]]) 点击并下载,然后双击安装。
接下来在终端内输入 vim 命令即可启动 Vim 并使用。
## 基础教程
> [!quote] 导读
>
> 在安装 Vim 之后,很多人在进入 Vim 的编辑界面的时候可能会不知所措,疑问:这怎么随意点击几个键窗口就乱变啊?因此,我们需要在使用 Vim 之前学习 Vim 的基础操作。
首先,我们来看一下 Vim 的键盘图,大概预览一下 Vim 的大致操作方式。
![[VIM 键位图.png]]
### 模式
Vim 一般分为三个模式,分别为命令模式(Command Mode)、输入模式(Insert Mode)以及命令行模式(Command-Line Mode)。
#### 命令模式
所有模式里面的老大哥,刚启动 Vim 的时候就是进入的命令模式。此时千万不要随意敲击键盘,因为基本上所有字母都能是命令。
- **i**:切换到输入模式,在光标当前位置;
- **x**:删除当前光标所在字符;
- **a**:切换输入模式,在光标下一个位置;
- **o**:插入新行并进入输入模式;
- **O**:在上方插入新行并进入输入模式;
- **dd**:剪切当前行;
- **yy**:复制当前行;
- **p**:粘贴剪贴板内容到光标下方;
- **P**:粘贴剪贴板内容到光标上方;
- **u**:撤销;
- **Ctrl + r**:重做;
- **:** 进入命令行模式。
#### 输入模式
在输入模式中,你终于可以流畅地打代码了。是的,在输入模式中基本上键盘所有键位已经解禁,你可以像普通文本编辑器那样使用 Vim。除了——Esc 键,它将会切换到命令模式。
还有一种特殊的输入模式叫做「替换模式」,可以键入 Insert 启用。在替换模式当中,键入的字符会替换当前字符,可以使用 Esc 退回输入模式。
#### 命令行模式
进入命令行模式时,光标会移动至左下角,可以冒号后方输入命令。最常用的命令:
- **:w** 保存当前文件;
- **:q** 退出当前编辑器;
- **:wq** 保存并退出当前编辑器;
- **:q!** 强制退出当前编辑器。
在输入时,可以键入 Esc 退回命令模式。命令行模式也可以运行 Vim 脚本(VimScript),可以对编辑器的主题、字体进行设置。但是,这些设置大多都是需要再 Vim 时自动运行的。有关 VimScript 的配置,可以查看 [[#基础教程]]。
## 基础配置
> [!quote] 导读
>
> 在 [[#下载与安装]] Vim 之后,Vim 可能并不像大多数文本编辑器那样开箱即用,至少在美化/易用性方面不如其他文本编辑器,因此我们要对 Vim 进行配置。
### 方式
首先我们需要知道,配置 Vim 的方式有两种,分别是:命令行修改(关于命令行模式的说明可以查看 [[#基础教程]])与 vimrc 修改。
命令行修改就是在 vim 打开一个文件的时候通过命令临时修改 Vim 的配置,缺点就是再关闭 Vim 后第二次启动将恢复原来的配置;修改 Vim 的 vimrc 文件就解决了这个问题,该脚本会在每次 Vim 启动的时候自动运行。
vimrc 的全局配置一般在 `/etc/vimrc`,对该电脑的任何用户都生效;对用户的配置在 `~/.vimrc`,只对当前用户生效。不建议使用 Vim 编辑 Vim 配置文件,可以使用其它编辑器,如 nano。
### 语句
以下为在使用 Vim 时需要的常用配置语句:
```shell
syntax on "打开语法高亮"
set showmode "显示当前模式"
set showcmd "显示输入的指令"
set mouse=a "支持鼠标操作"
set encoding=utf-8 "使用 UTF-8 编码"
set t_Co=256 "开启 256 色"
set autoindent "启用自动缩进"
set tabstop=2 "Tab 显示的空格数量"
set shiftwidth=4 "缩进的空格数"
set expandtab "Tab 转空格"
set softtabstop=2 "Tab 转空格的数量"
set number "开启行号"
```