Vim Note

Vim Note

Falling_Sakura Fixed

本文使用 Obsidian 的 Vim 模式写作。

什么是 Vim

Vim是一个类似于Vi 的高度可定制的文本编辑器 ,在Vi的基础上改进和增加了很多特性。Vim是自由软件 。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs 被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot  Beanie的最佳开放源代码 文本编辑器大奖,又将Emacs推至二线。

最近在学 Linux,不可避免地需要使用 Vim 进行一些代码编辑(Linux 系统自带的文本编辑器)。

感叹一下创造 Vim 的人的智慧。

鼠标是什么东西,我不知道。

码字效率++

一个比较不错的教程文档

界面/移动

KeyFunction
hLeft
jDown
kUP
lRight
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 行

跳转

KeyFunction
$行尾
^行首
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 个标签页

文本操作

一般而言数字加对应操作即将该操作重复多少次。

KeyFunction
v选择
ctrl + 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合并当前行及下一行

输入

按下后进入输入模式。

KeyFunction
i选择字符的前一位(insert)
I行首
a选择字符的后一位(append)
A行尾
o向下新建一行
O向上新建一行
s删除所选
S删除当前行
c + 2 + l删除右边的两个字符
c + w删除当前词的光标及其右部分

命令

KeyFunction
: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/g10 到 20 行所有的 str1 替换为 str2
:.,+10s/str1/str2/g当前行与接下来 10 行 所有的 str1 替换为 str2
.重复上一个操作
~切换所选字母的大小写

替换的 /g替换标志,代表所有(global),可以为空,那么就是从光标开始的第一次出现。/i 表示不区分大小写,/I 表示区分大小写。/c 表示需要确认。这些可以自由组合,比如 /gci

一图总结

|600

写在最后

用 Vim 写 Markdown 并且还是中文其实真的很鸡肋。

中英输入法不断切换才能正常使用命令。

总结了一些我初学 Vim 常用的命令。

纸上得来终觉浅,绝知此事要躬行。

看不懂的地方就试试,很好理解。

希望对你有帮助。

🔚

  • Title: Vim Note
  • Author: Falling_Sakura
  • Created at : 2024-05-18 16:52:55
  • Updated at : 2024-06-05 21:00:17
  • Link: https://vercel.fallingsakura.top/d32595a8.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments