Vim Note
本文使用 Obsidian 的 Vim 模式写作。
什么是 Vim
Vim是一个类似于Vi的高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线。
最近在学 Linux,不可避免地需要使用 Vim 进行一些代码编辑(Linux 系统自带的文本编辑器)。
感叹一下创造 Vim 的人的智慧。
鼠标是什么东西,我不知道。
码字效率++
界面/移动
Key | Function |
---|---|
h | Left |
j | Down |
k | UP |
l | Right |
ctrl + y | 上一行 |
ctrl + e | 下一行 |
ctrl + u | 上半页(up) |
ctrl + d | 下半页(down) |
ctrl + b | 上一页(back) |
ctrl + f | 下一页(forward) |
H | 视口开头(Head) |
M | 视口中央(Middle) |
L | 视口结尾(Last) |
G(]]) | 文件结尾 |
gg([[) | 文件开头 |
x + G | 第 x 行 |
跳转
Key | Function |
---|---|
$ | 行尾 |
^ | 行首 |
0 | 行最开头 |
w | 下一个单词的头部(word) |
e | 下一个单词的尾部(end) |
b | 上一个单词头部 |
ge | 上一个单词尾部 |
f + x | 当前行向后查找字符 x(选择 x) |
3 + f + x | 当前行向后查找第三个字符 x |
F + x | 当前行向前查找字符 x |
t + x | 当前行向后查找字符 x(选择 x 前一个字符) |
T + x | 当前行向前查找字符 x(选择 x 后一个字符) |
(/) | 当前句子的首/尾 |
{/} | 上/下一个空行 |
% | 配对的括号 |
* | 跳转到与当前光标下单词匹配的下一个单词 |
# | 跳转到与当前光标下单词匹配的上一个单词 |
g + t | 下一个标签页 |
g + T | 上一个标签页 |
x + g + t | 第 x 个标签页 |
文本操作
一般而言数字加对应操作即将该操作重复多少次。
Key | Function |
---|---|
v | 选择 |
ctrl + v | 块状选择 |
shift + v | 行块选择 |
y | 复制 |
yy(Y) | 复制当前行 |
p | 粘贴(paste)到前面 |
P | 粘贴到后面 |
x | 删除(Backspace) |
X | 删除(Delete) |
"_x | 删除,切不放入缓冲区 |
d + w | 删除当前词 |
d + 3 + w | 删除当前三个词 |
d + f + x | 删到当前行的 x 处(包括 x) |
dd | 删除当前行 |
d + t + x | 删到当前行的 x 前一个字符处(不包括 x) |
u | 撤销(undo) |
ctrl + r | 重做 |
J | 合并当前行及下一行 |
输入
按下后进入输入模式。
Key | Function |
---|---|
i | 选择字符的前一位(insert) |
I | 行首 |
a | 选择字符的后一位(append) |
A | 行尾 |
o | 向下新建一行 |
O | 向上新建一行 |
s | 删除所选 |
S | 删除当前行 |
c + 2 + l | 删除右边的两个字符 |
c + w | 删除当前词的光标及其右部分 |
命令
Key | Function |
---|---|
:q | 退出 |
:w | 保存 |
:wq | 保存并退出 |
/ + str | 从当前位置向后搜索字符串 str |
? + str | 从当前位置向前搜索字符串 str |
n | 下一个 |
N | 上一个 |
:s/str1/str2/g (/ 分割或者 # 分割) | 当前行的所有 str1 替换为 str2 |
:%s/str1/str2/g | 文件中所有的 str1 替换为 str2 |
:10,20s/str1/str2/g | 10 到 20 行所有的 str1 替换为 str2 |
:.,+10s/str1/str2/g | 当前行与接下来 10 行 所有的 str1 替换为 str2 |
. | 重复上一个操作 |
~ | 切换所选字母的大小写 |
替换的 /g
为替换标志,代表所有(global),可以为空,那么就是从光标开始的第一次出现。/i
表示不区分大小写,/I
表示区分大小写。/c
表示需要确认。这些可以自由组合,比如 /gci
。
一图总结
写在最后
用 Vim 写 Markdown 并且还是中文其实真的很鸡肋。
中英输入法不断切换才能正常使用命令。
总结了一些我初学 Vim 常用的命令。
纸上得来终觉浅,绝知此事要躬行。
看不懂的地方就试试,很好理解。
希望对你有帮助。
🔚
- Title: Vim Note
- Author: Falling_Sakura
- Created at : 2024-05-18 16:52:55
- Updated at : 2024-11-21 10:44:39
- Link: https://vercel.fallingsakura.top/d32595a8.html
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments