键盘驱动的 VSCode
奖金
扔掉鼠标吧,是时候设置一些键盘快捷键了。
补充说明一下,这篇文章是从我的个人博客https://waylonwalker.com/blog/keyboard-driven-vscode/转载的。
这些快捷键是我从 tmux/vim 切换到 VS Code 的基础。我找到的大多数帖子都提供了替换 vim 的实用技巧,但很少有人关注 tmux 的可定制性。tmux 让我可以快速启动一个工作区,创建新窗口和分屏。然后,当我切换任务时,我可以保持该工作区打开,稍后可以立即回到之前的工作位置。这真是太棒了。这里列出的快捷键让过渡更加顺畅。我最初使用 VS Code 时遇到的最糟糕的问题是,不用鼠标就无法在终端和编辑器之间切换。这第一组快捷键解决了这个问题。
我刚开始使用 VS Code 时发现最糟糕的一点是,不用鼠标就无法在终端和编辑器之间切换。
Alt+[hjkl]
导航
⬅ 跳转到左侧分割线Alt+h
⬇从编辑器跳转到终端Alt+j
⬆从终端跳转到编辑器Alt+k
➡ 跳转到右侧分割线Alt+l
这是我个人在 VS Code 中最常用的一组快捷键,直接复制自我的 tmux 配置。它让我可以快速上下左右跳转。需要注意的是,如果你使用垂直分割模式,它的效果不如 tmux 😢。
[
{
"key": "alt+j",
"command": "workbench.action.terminal.focus",
"when": "editorFocus"
},
{
"key": "alt+k",
"command": "workbench.action.focusFirstEditorGroup",
"when": "terminalFocus"
},
{
"key": "alt+k",
"command": "workbench.action.focusAboveGroup",
"when": "editorFocus"
},
{
"key": "alt+l",
"command": "-toggleFindInSelection",
"when": "editorFocus"
},
{
"key": "alt+l",
"command": "workbench.action.focusNextGroup",
"when": "editorFocus"
},
{
"key": "alt+h",
"command": "workbench.action.focusPreviousGroup",
"when": "editorFocus"
},
{
"key": "alt+l",
"command": "workbench.action.terminal.focusNextPane",
"when": "terminalFocus"
},
{
"key": "alt+h",
"command": "workbench.action.terminal.focusPreviousPane",
"when": "terminalFocus"
},
]
Alt+b
切换膨胀
由于关闭侧边栏的功能已分配给某个控件,ctrl+b我认为用它模拟活动栏是最合理的<kbd>Alt</kbd>+<kbd>b</kbd>。很多时候,我只想尽可能地减少干扰,而这种方法确实很有帮助。
[
{
"key": "alt+b",
"command": "workbench.action.toggleActivityBarVisibility",
"when": "editorFocus"
},
]
Alt+[svx]
把它分成几份
🙌 水平分裂Alt+s
🍌 垂直Alt+v
💥 关闭Alt+x
这是从 tmux 复制的另一个用于快速创建水平 (s) 和垂直 (v) 分割线的函数。完成后,我可以用Alt+ 号关闭它们x。
[
{
"key": "alt+s",
"command": "workbench.action.terminal.split",
"when": "terminalFocus"
},
{
"key": "alt+s",
"command": "workbench.action.splitEditor",
"when": "editorFocus"
},
{
"key": "alt+v",
"command": "workbench.action.splitEditorOrthogonal",
"when": "editorFocus"
},
{
"key": "alt+x",
"command": "workbench.action.terminal.kill",
"when": "terminalFocus"
},
{
"key": "alt+x",
"command": "workbench.action.closeActiveEditor",
"when": "editorFocus"
}
]
Alt+[cnp]
🤲创建新工作区Alt+c
⏭ 跳转到下一个工作区Alt+n
⏮ 跳转到上一个工作区Alt+p
有时,分屏模式下终端窗口会显得有些拥挤,这时就需要使用不同的窗格。我在这里也复刻了 tmux 的 cnp 模式。我可以创建新窗格 (c),然后切换到下一个窗格 (n) 或上一个窗格 (p),而无需离开键盘。
我经常在运行像 Gatsby 这样的进程并对其进行监控时使用这个功能,我需要快速切换到一个新的窗格来运行 Git 命令,然后再切换回 Gatsby,最后跳转到我的编辑器。
[
{
"key": "alt+c",
"command": "workbench.action.terminal.new",
"when": "terminalFocus"
},
{
"key": "alt+n",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "alt+p",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
},
]
Alt+z
🗻 放大终端Alt+z
最后一个功能虽然不如我预期那么好用,但确实能完成任务。它可以从 VS Code 的任何位置放大(按 Z 键)终端。我可以在编辑器中缩小终端窗口来腾出更多空间,也可以放大终端窗口来查看上次编辑后的效果。
[
{
"key": "alt+z",
"command": "workbench.action.toggleMaximizedPanel",
},
]
奖金
Alt+r
🖱右键点击放置
我最近发现了这个工具,觉得它非常实用,可以快速执行诸如还原选定范围或提取变量之类的操作,而无需离开键盘。
[
{
"key": "alt+r",
"command": "editor.action.showContextMenu",
},
]
![Alt+[hjkl] 使用键盘快捷键在 VS Code 中导航](/upload/0-cwih.gif)



