Zohar's blog

vim 笔记 - 基础用法

Vimvim

听说 vim 是一个强大高效的编辑器,我决定试一下,很多人都看不起 vim ,听了没啥, 试试就知道了

第一次使用 vim 可以打开官方教程, 输入命令即可:vimtutor zh_CNvimtutor

模式: vim 具有 6 种基本模式和 5 种派生模式, 此处不作具体介绍, 因为介绍了效果不大还浪费篇幅, 直接动手试试便知

普通模式

光标移动命令

基础移动

按键  提示  功能
h 食指左移 往左
j 食指 往下
k 中指 往上
l 无名指 往右
w word 到下一个单词首字母
e end 到下一个单词尾字母
b back 到上一个单词首字母
W/E/B   执行上述功能忽略标点
num + 以上字母   执行上述功能, 跳转到第 num 个
ge go end  到上一个单词尾字母

行内跳转

按键  提示 功能
f + char find 到下一个 char 字符
F + char Find 到上一个 char 字符
num + f/F + char   到上/下 num 个 char 字符
t + 标点 to 到下一个标点的前一个字符
T + 标点 to 到上一个标点的后一个字符
num + t/T + char   到上/下 num 个标点的前/后一个字符
0 a[0] 行首
$   行末
g_   行末
^   到本行第一个非空字符

页面跳转

按键  提示 功能
H Head 到当前屏幕首行
L Last 到当前屏幕尾行
M Middle 到当前屏幕中间
num + H   到当前屏幕第 num 行
num + L   到当前屏幕倒数第 num 行
z + Enter   当前行置于屏幕首行
z + -   当前行置于屏幕尾行
ctrl + f forward 向前翻页
ctrl + b back 向后翻页
ctrl + d down 向下滚动半屏
ctrl + u up 向上滚动半屏

全文跳转

按键  提示 功能
*   到下一个相同的单词
#   到上一个相同的单词
( 依据 . 到前一句子开始
) 依据 . 到后一句子开始
{ 依据空行 到前一段
} 依据空行 到后一段
gg 双击  到首行
G Go 到尾行
num + G   到第 num 行
%   到所匹配另一端括号

其他基本命令

基本命令可进行组合, 采用 数量符 + 复合操作符 + 数量符 + 操作符 的混合形式进行组合, 上文的 weg…… 都是单操作符

  • 复合操作符除了其自身大写格式外无法进行单独操作, 后必须接操作符才可进行操作.
  • 单操作符可直接进行操作.

常见命令组合

命令组合 含义
操作符 + 本身 行操作
操作符 + w word, 单词操作
操作符 + l letter, 字符操作

d - 删除

ddelete, 复合操作符, 进行删除操作

复合操作演示:

dd  : 删除本行
D   : 删除至句末
dj  : 删除本行和下一行
d5j : 删除本行和后五行
5dj : 删除本行和后五行
dw  : 删除下一个单词, 连同单词后空格
de  : 删除下一个单词, 保留单词后空格
d$  : 删除至行末
d}  : 删除至段尾
d)  : 删除至句末
dG  : 删除至文末
dM  : 删除至屏幕尾行
dfa : 删除至下一个 'a', 包括 a 本身, a 可换任意字符
dta : 删除至下一个 'a', 不包括 a 本身, a 可换任意字符
d*  : 删除至下一个相同的单词

其他自行类比

u - 撤销

uundo, 想重做被撤销的动作, 请使用 ctrl + r

u   : 撤销上一次操作
uu… : 连续撤销
U   : 撤销对本行的所有操作

x - 删除

使用 x 删除光标所在的字符或选定区域内的字符
使用 num + x 删除多个字符

i - 插入

iinsert, 将普通模式转换为插入模式, 即通常而言的编辑模式, 所编辑内容插入在光标前, 按 ESC 可退出插入模式

a - 追加

aappend, 转插入模式, 从光标所在位置后追加插入内容

s - 替代

ssubstitute, 删除光标所在字符, 并转插入模式

c - 改变

cchange, 复合操作符, 删除并转插入模式, 其后接删除用法与 d 相同, 只是还会转插入模式而已

o - 打开

oopen, 从光标所在行后新建一行, 转插入模式


上述指令大写:

X   : 删除前一个字符
I   : 从段首开始插入
A   : 从段尾进行追加
S   : 删除整行开始编辑
C   : 从光标处删除至行末, 开始编辑
O   : 从光标所在行前新建一行, 开始编辑

y - 复制

yyank, 复合操作符, 进行复制, 其后接用法见复合操作演示 Y 为整行复制

p - 粘贴

ppaste, 进行粘贴操作, 将所粘贴内容插入光标之后, 若使用 Y 进行复制, 则插入光标所在行后
P 为粘贴于光标前, 若使用 Y 进行复制, 则插入光标所在行前
: 每进行一次删除操作, 都会将所删除内容置入剪贴板