模式切换
| 命令 | 说明 |
|---|---|
Esc / Ctrl+[ |
回到普通模式 |
i |
光标前插入 |
a |
光标后插入 |
o |
下一行插入 |
O |
上一行插入 |
v |
可视模式(字符) |
V |
可视模式(行) |
Ctrl+v |
可视模式(块) |
: |
命令行模式 |
光标移动
| 命令 | 说明 |
|---|---|
h/j/k/l |
左/下/上/右 |
w/b |
下/上一个单词 |
0/$ |
行首/行尾 |
^ |
第一个非空字符 |
gg |
文件开头 |
G |
文件结尾 |
:n |
跳到第 n 行 |
Ctrl+f/b |
下/上翻页 |
Ctrl+d/u |
下/上翻半页 |
{/} |
上/下一段落 |
编辑操作
| 命令 | 说明 |
|---|---|
x |
删除字符 |
dd |
删除整行 |
dw |
删除一个单词 |
d$ / D |
删至行尾 |
yy |
复制整行 |
yw |
复制一个单词 |
p/P |
在光标后/前粘贴 |
u |
撤销 |
Ctrl+r |
重做 |
. |
重复上次操作 |
r |
替换单个字符 |
>> / << |
缩进/反缩进 |
搜索与替换
| 命令 | 说明 |
|---|---|
/pattern |
向下搜索 |
?pattern |
向上搜索 |
n/N |
下/上一个匹配 |
* |
搜索当前单词 |
:%s/old/new/g |
全文替换 |
:%s/old/new/gc |
全文替换(确认) |
:s/old/new/g |
当前行替换 |
文件与窗口
| 命令 | 说明 |
|---|---|
:w |
保存 |
:q |
退出 |
:wq / ZZ |
保存并退出 |
:q! |
强制退出 |
:e file |
打开文件 |
:sp file |
水平分屏 |
:vs file |
垂直分屏 |
Ctrl+w h/j/k/l |
切换窗口 |
Ctrl+w w |
循环切换窗口 |
其他实用命令
| 命令 | 说明 |
|---|---|
>> / << |
增加/减少缩进 |
~ |
切换大小写 |
ga |
显示字符编码 |
Ctrl+g |
显示文件信息 |
:!cmd |
执行外部命令 |
:r file |
读入文件内容到当前光标处 |
既然你熟悉 Linux 里的 Vim,我们在 VS Code 里配合机器学习开发时,其实只需要把最核心、出镜率最高的命令“肌肉记忆”唤醒即可。 Jupyer 笔记本里的 Vim 体验非常微妙,它分为“格子内代码编辑”和“格子间大跳”。
下面为你分门别类整理好这四张高频命令表,你可以随时截图保存或挂在旁边查阅:
一、 光标“微观位移”与脱身(解决出括号、出引号痛点)
在写特征列表(如 features = [...])时,这组命令配合 jj 退出输入模式,能让你手掌纹丝不动:
| 快捷键 | 动作含义 | 独家搬砖心法 |
|---|---|---|
h / j / k / l |
左 / 下 / 上 / 右 | 基础方向键,写代码时 l 用来出引号最顺手 |
w |
跳到下一个单词的开头 | 写一长串参数时,按 w 直接跳到下一个参数 |
e |
跳到下一个单词的末尾 | 想在某个变量名后面加个下划线,按 e 瞬间定位 |
b |
跳回上一个单词的开头 | 发现前面的变量名拼错了,按 b 杀回去 |
0 (数字) |
闪现到当前行的绝对行首 | 快速回到行头加注释 |
$ |
闪现到当前行的绝对行尾 | 写完一行,闪现到末尾敲逗号 , 或分号 ; |
f + 字符 |
精准单行行内搜索闪现 | 神技:光标在引号内,敲 f' 直接闪现到右引号上 |
二、 绝杀流:编辑、删除与替换(机器学习特征清洗利器)
Vim 的真谛在于“动词 + 名词”的组合公式。在改写矩阵名、特征名时是毁灭级的效率:
| 快捷键组合 | 动作含义 | 实际应用场景示例 |
|---|---|---|
ci' |
Change Inside '(修改单引号内) | 把 'sepal_length' 瞬间清空并直接进入输入模式 |
ci( |
Change Inside ((修改括号内) | 把 plt.subplots(2, 2) 括号里的参数瞬间清空重写 |
di' |
Delete Inside '(删除单引号内) | 只删除引号里的字,但保留引号本身 |
da' |
Delete Around '(连引号一起删) | 连带着单引号和里面的文本一并抹除 |
x |
删除光标所在的当前字符 | 相当于手边的不退格 Delete 键 |
dd |
剪切 / 删除当前一整行 | 废弃某一行没用的画图配置时连敲两下 |
yy |
复制当前一整行 | 复制上一行的特征配置 |
p |
在光标下方粘贴 | 配合 yy 或 dd 使用 |
u |
撤销上一步操作 (Undo) | 代码写崩了无脑按 u 倒流时间 |
三、 宏观穿梭:在超长 Notebook 格子里疯狂翻页
当你的 Jupyter 笔记本里堆满了高维矩阵计算、各种 EDA 散点图,一屏根本装不下时,右手去搓滚轮非常慢。在普通模式(Normal Mode)下直接键盘起飞:
| 快捷键 | 动作含义 | 独家搬砖心法 |
|---|---|---|
Ctrl + d |
Down,向下翻半屏 | 刷机器学习训练日志、看测试集数据最快的方式 |
Ctrl + u |
Up,向上翻半屏 | 看完结果,快速杀回顶部的 import 区 |
gg |
瞬间闪现到当前代码格子的最顶部 | 快速回到该格子的第一行 |
G (Shift+g) |
瞬间闪现到当前代码格子的最底部 | 快速到该格子最后一行追加 plt.show() |
四、 梦幻联动:VS Code Jupyter 专属的“格子控制”
当你在 VS Code 里装了 Vim,按下 Esc 退出格子的输入模式后,Vim 会和 Jupyter 的原生快捷键完美融合,让你用左手直接操控整个笔记本的生命周期:
| 快捷键 | 动作含义 | 独家搬砖心法 |
|---|---|---|
j / k |
在不同的代码格子(Cells)之间上下跳跃 | 退出编辑后,用 j k 像挑衣服一样在格子间穿梭 |
A (Shift+a) |
在当前格子上方新建一个空单元格 | Above |
B |
在当前格子下方新建一个空单元格 | Below |
dd (连敲两下) |
彻底删除当前选中的代码格子 | 删掉没用的测试输出格子 |
m |
把当前格子切换为 Markdown 文本模式 | 用来写实验报告、高数公式推导 |
y |
把当前格子切换回 Python 代码模式 | 从写报告无缝切回写算法 |
💡 强力推荐:把 jj 刻入 VS Code 骨髓
为了让你写完 ['sepal_length', 'sepal_width'] 时不需要痛苦地去够左上角的 Esc,请立刻点击 VS Code 左下角齿轮 \rightarrow 打开 settings.json(或者按 Ctrl+Shift+P 输入 Open User Settings (JSON)),把这段大厂通用的无缝退模映射粘贴进去:
JSON
"vim.insertModeKeyBindings": [
{
"before": ["j", "j"],
"after": ["<Esc>"]
}
]
终极丝滑体验:你在写完 sepal_width 的一瞬间,右手食指连敲两下 jj(此时瞬间退出输入模式),接着顺手敲个 l(光标向右一格迈出单引号),接着敲个 A 进入当前行末尾插入状态,直接补个逗号 ,。
这套连招下来不到半秒钟,手掌完全悬停在键盘中央,体验极其丝滑。你可以当场在你的 features 列表格子里找找感觉,看看是不是那种熟悉的 Linux 黑客感觉又回来了?