跳到主要内容

本文主要记录 vim 的一些基本命令和一些我使用 vim 的时候的经验。

[TOC]

前言

Vim 是一款开源的模式化文本编辑器。

学好 vim,在了解基本命令的同时,更多需要去不断地练习。刚开始会有一些不习惯,但长时间的练习之后,写代码的速度会大大提高。

先给出 vim 的中文社区网址,方便学习。

Vim 中文社区:Vim 中文社区,收集 Vim 相关中文资料 (gitee.com)

linux 好像是自带 vim 的 如果没有的话可以执行(以 ubuntu 为例)

sudo apt-get install vim

具体的代码不一定是这个,但估计系统会提示怎么安装。

如果是 window 用户可以到下面这个链接下载

Releases · vim/vim-win32-installer (github.com)

里面有各种版本供你下载。


vim 的退出

很多人刚接触 vim 都不知道怎么该怎么使用尤其是该怎么退出,搞的一头雾水。所以在最开始介绍 vim 该怎么退出。 mianscreen 在界面上按下:键之后输入wq,意思是先保存再退出,这是比较常用的命令

也可以输入q来退出

但有时会出现未命名文件提示没法退出。

那这时候在:之后输入q!来进行强制退出这样就可以退出啦(这种情况一般出现在空的文件的退出)

==注意:一定要在英文输入模式下==

vim文件的创建/进入

很简单在命令行输入vim <forldername>即可以用 vim 创建一个新的文件或者进入一个存在的文件用 vim 写。

vim 的四个模式

vim 编辑常用有四个模式:

  • 普通模式 Normal-mode

  • 插入模式 Insert-mode

  • 命令模式 Command-mode

  • 可视模式 Visual-mode

这四个模式有着不同的功能,来完成各种各样的操作。

普通模式

vim 打开之后首先进入的是普通模式,普通模式下是不可以插入字符的(俗称编辑),但在这个模式下可以通过一些按键命令来完成移动、复制、粘贴、删除等一些操作。

在其他模式下按下Esc键就可以返回到普通模式。==(以后有更改这些按键的文章)==

移动

最基础的就是移动命令

按键功能
h光标左移⬅️
j光标下移⬇️
k光标上移⬆️
l(小写 L)光标右移➡️

虽说也可以用方向键来进行移动,但 vim 设计的初衷是为了让手尽可能的留在键盘的中央。这也是 vim 让编辑速度加快的要诀:尽可能减少来回移动鼠标的时间。

==可以长按来进行快速移动==

但这样也比鼠标来的慢

所以有“数字“+”移动命令“来进行一次性打移动。

按键(n 为数字)功能
n+h光标左移 n 个
n+j光标下移 n 个
n+k光标上移 n 个
n+l光标右移 n 个

vim 也有其他常用的移动命令

描述
0跳到行首,可以理解为无穷大的h
^跳到行首开始的第一个非空白字符
$跳到行尾,可以理解为无穷大的l
gg跳到首行,可以理解为无穷大的k
G跳到末行,可以理解为无穷大的j
w跳到下一个词首
b跳到上一个词首
e跳到下一个词尾
ge跳到上一个词尾

这些命令也支持数值跳转,例如10e就是往下跳 10 个单词

其他操作

编辑文档,就是不断的复制、粘贴、删除······vim 也支持这些操作,同样也是同过按键完成。

单次操作

按键描述
c删除,并进入插入模式
d删除
y复制
gu变为小写字母
gU变为大写字母
g~颠倒字母的大小写
>右缩进
<左缩进
=自动缩进
按键功能
p粘贴与当前光标之后
P粘贴于当前光标之前
x删除当前字符,相当于 dl
s删除当前字符并插入,相当于 cl
C删除至行尾并插入,相当于 c$
D删除至行尾
S从当前行首个非空字符删除至行尾并插入,相当于 ^C
u撤销上一次修改
<Ctrl-r>重做上一次修改,u 的逆过程
.在当前光标处重复上一次修改
r替代字符,将当前字符替代为输入的字符
R进入替代模式,后面输入的字符都将替代当前字符,直到Esc返回到普通模式

tui 这些命令也可以跟 数字 和 移动命令一起使用,

例如dh就是向左删除一个字;

d4h就是向左删除 3 个字;

dll指的是先向左删除一个字,再向左移动一个字;

行操作

有时我们需要对一整行进行操作。比如删除一整行。

vim 提供“操作命令二连击”的方式来碎整行进行操作。

按键描述
cc删除整行,并进入 insert(插入)模式
dd删除整行
yy复制整行
guu/gugu整行变为小写字母
gUU/gUgU整行变为大写字母
g~~/g~g~颠倒整行字母的大小写
>>行右缩进
<<行左缩进
==行自动缩进

插入模式

在普通模式下按下i键,就会进入插入模式(同样按键也可以更改)

在插入模式下你可以像平时一样输入内容。直到你按下Esc键退出插入模式。

也可以通过其他按键进入插入模式

按键功能
i在当前光标前进入插入模式
a在当前光标后进入插入模式
I在当前行首插入
A在当前行尾插入
o在下方新开一行
O在上方新开一行

命令模式

命令模式就是通过输入各种命令来完成各种操作,比如刚刚的退出。

就是键入:后键入q后完成的。

:就是在普通模式下进入命令模式的命令。

在命令模式中可以执行一些输入并执行一些 VIM 或插件提供的指令。

可视模式

vCtrl+V进入,可以像鼠标那样按着左键拖动选文字的效果。不常用。(整的好像我没鼠标一样似的)

vim 一些按键的配置

由于esc:键平时不太好按到,所以可以通过修改 vim 的配置文件来修改这些按键。

配置文件叫【.vimrc】如果在用户文件夹下找不到这个文件,可以直接新建一个.vimrc 文件

``在插入模式下把 esc 改成 jj 在插入模式下连续输入 jj 就可以退出插入模式返回到普通模式

imap jj <Esc>

``在普通模式下把:改成空格键

nmap <space> :

个人的配置文件

imap jk <Esc>
nmap <space> :
nnoremap a h
nnoremap h a
nnoremap s j
nnoremap j s
nnoremap w k
nnoremap k w
nnoremap d l
nnoremap l d

#结语

本文收集了一些使用 vim 时常用的”命令”,当然这些键位也是可以改的,不过这需要去修改配置文件。各个主流的代码编辑器都支持 vim,可以在这些编辑器里下载 vim 插件,享受飞一般的代码编写体验。也不要因此放弃鼠标,鼠标搭配 vim,效果更棒!

最后附上一张图方便记忆:

keyboard