本文主要记录 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 该怎么退出。
在界面上按下:
键之后输入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 或插件提供的指令。
可视模式
按v
或Ctrl
+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,效果更棒!
最后附上一张图方便记忆: