“Hanging on in quiet desperation is the English way.”——《Time》
Vim 也好,Shell 也好,Markdown 也好,总会遇上一些常常会用但又常常忘记的命令和方法。翻找别人的博客总是不便,不如在这里积累归纳,随时查用。一个简单的原则是只记录自己最常用的操作,提升查找速度的同时,降低记忆的难度。
Vim
位移命令
命令 | 作用 |
---|---|
h, j, k, l | 方向移动 |
w, b | 以单词为单位,前进后退(至单词的开头) |
e, ge | 以单词为单位,前进后退(至单词的结尾) |
0, $ | 移动到行首和行尾 |
gg, G | 移动到文档开头和结尾 |
光标命令
命令 | 作用 |
---|---|
:number | 移动到指定行 |
% | 移动到匹配括号 |
C-d, C-e, C-f | 向下滚动半屏、一行、一屏 |
C-u, C-y, C-b | 向上滚动半屏、一行、一屏 |
zz, zt, zb | 当前行置于屏幕中央、顶端、底端 |
ma | 在当前位置添加标记,a 是其名称。大小写字母共 52 个标记可选 |
`a, ‘a | 移动到标记 |
:marks | 列出所有标记 |
:delmarks | 删除标记。跟名字则删除对应标记,跟 ! 则删除所有标记 |
查找替换
命令 | 作用 |
---|---|
/string | 向下搜索字符串 |
?string | 向上搜索字符串 |
n, N | 搜索下一个/上一个(与最初的搜索方向相同或相反) |
* | 向下搜索当前光标所在的单词 |
# | 向上搜索当前光标所在的单词 |
^, $, ., \ | 匹配一行开头、一行结尾、任意字符、特殊字符 |
:s/old/new | 将本行的 old 替换为 new |
:1,10 s/old/new | 将 1 到 10 行的 old 替换为 new |
:0,$ s/old/new | 将文档开头到结尾的 old 替换为 new |
编辑命令
编辑命令最强大之处在于可以和位移命令组合使用,例如 cw 可以改变一个单词。还可以和命令计数配合组合使用,例如 d3w 可以删除三个单词。
命令 | 作用 |
---|---|
i, I | 在光标之前/行首插入 |
a, A | 在光标之后/行尾插入 |
c | 改变文本,相当于删除要改变的部分并且进入 insert 模式 |
cc | 改变整行,保留原有缩进 |
x | 删除光标位置的字符 |
r | 替换当前光标所在字符,使用命令计数可以指定替换的字符数 |
R | 一直替换,直到按下 esc |
d | 删除选中的内容 |
dd | 删除一行 |
y | 复制 |
yy | 复制一行 |
p, P | 在光标前/后粘贴 |
u | 撤销 |
C-r | 重做 |
. | 重复命令,撤销重做除外 |
v | visual 模式 |
V | 行模式 |
MarkDown
转义字符
MarkDown 中一些特殊符号除了符号本身,还可以使用 html 中的转义字符来输入。以下是一些常见转义字符:
显示效果 | 描述 | 实体名称 | 实体编号 |
---|---|---|---|
空格 | |   | |
< | 小于 | < | < |
> | 大于 | > | > |
& | 与号 | & | & |
“ | 引号 | " | " |
‘ | 撇号 | ' | ' |
如果不希望字符被转义,可以在前面加上反斜杠。
另外,想要在反引号`中转义反引号,使用反斜杠是不能做到的。正确的方法是在最外层使用两次反引号。
Intellij
快捷键 | 作用 |
---|---|
Ctrl + / | 行注释当前行或者选中的行 |
Ctrl + Shift + / | 块注释选中的行 |