Appearance
vim 支持
从 vim 切换回来的朋友,可以通过安装 vim 插件来使用 vim 操作。
vim-sneak
在配置中开启vim-sneak
可以在页面中快速跳转
运动指令 | 描述 |
---|---|
s<char><char> | 输入 s 并按两个字母,向前查找,按;继续查找下一个 |
S<char><char> | 向后移到第一次出现 |
<operator>z<char><char> | 向前执行第一次出现 |
<operator>Z<char><char> | 向后执行到第一次出现 |
im-select
im-select 用于从 insert
模式切换为 normal
模式时自动切换为英文,请通过im-select 文档查看安装方式
插件配置
安装后需要在 vscode 的配置项中设置
选项 | 说明 |
---|---|
vim.autoSwitchInputMethod.enable | 是否开启使用默认输入法 |
vim.autoSwitchInputMethod.defaultIM | 默认输入法,请查看下表 |
vim.autoSwitchInputMethod.obtainIMCmd | Im-select 路径 (使用默认值) |
vim.autoSwitchInputMethod.switchIMCmd | 有 {im} 占位符的命令(使用默认值) |
下面是苹果系统输入法表,系统开启输入法下在于下面表里其中之一
Key | Description |
---|---|
com.apple.keylayout.US | U.S. |
com.apple.keylayout.ABC | ABC |
com.apple.keylayout.British | British |
com.apple.keylayout.Irish | Irish |
com.apple.keylayout.Australian | Australian |
com.apple.keylayout.Dvorak | Dvorak |
com.apple.keylayout.Colemak | Colemak |
window 系统如果您的键盘布局为 en_US,则输入法键为 1033,也可以在此页面上找到您的语言环境 ID
使用示例
大部分系统使用以下配置都可以正常使用
mac
json
"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.US",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/local/bin/im-select",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/local/bin/im-select {im}"
windows
json
"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "1033",
"vim.autoSwitchInputMethod.obtainIMCmd": "D:\\bin\\im-select.exe",
"vim.autoSwitchInputMethod.switchIMCmd": "D:\\bin\\im-select.exe {im}"
热键配置
设置 leader 键为空格
下面是对 VIM 定制的热键配置,首先需要打开配置文件
MAC
下面是 MAC 系统的热键配置,你可以根据需要自行设置
javascript
[
{
"key": "cmd+e",
"command": "-workbench.action.openRecent"
},
{
"key": "cmd+e",
"command": "extension.intellijRecentFiles",
"when": "!inQuickOpen"
},
{
"key": "cmd+e",
"command": "workbench.action.quickOpenNavigateNext",
"when": "inQuickOpen"
},
{
"key": "cmd+e",
"command": "workbench.action.quickOpenNavigateNext",
"when": "inQuickOpen"
},
{
"key": "shift+cmd+e",
"command": "workbench.action.quickOpenNavigatePrevious",
"when": "inQuickOpen"
},
{
"key": "alt+escape",
"command": "-editor.action.triggerSuggest",
"when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
},
{
"key": "alt+x",
"command": "editor.action.toggleWordWrap"
},
{
"key": "alt+z",
"command": "-editor.action.toggleWordWrap"
},
{
"key": "shift+cmd+o",
"command": "-ftp.open"
},
{
"key": "alt+1",
"command": "workbench.action.terminal.focusPrevious"
},
{
"key": "ctrl+shift+down",
"command": "workbench.action.terminal.focusNext"
},
{
"key": "shift+cmd+d",
"command": "editor.action.revealDefinition",
"when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
},
{
"key": "f12",
"command": "-editor.action.revealDefinition",
"when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
},
{
"key": "cmd+;",
"command": "editor.action.openLink"
},
{
"key": "cmd+j",
"command": "workbench.action.toggleSidebarVisibility"
},
{
"key": "cmd+b",
"command": "-workbench.action.toggleSidebarVisibility"
},
{
"key": "shift+cmd+r",
"command": "workbench.files.action.collapseExplorerFolders"
},
{
"key": "cmd+h",
"command": "extension.dash.all",
"when": "editorTextFocus"
},
{
"key": "ctrl+alt+h",
"command": "-extension.dash.all",
"when": "editorTextFocus"
},
{
"key": "cmd+k cmd+z",
"command": "workbench.action.toggleZenMode"
},
{
"key": "cmd+k z",
"command": "-workbench.action.toggleZenMode"
},
{
"key": "cmd+k cmd+h",
"command": "workbench.action.toggleActivityBarVisibility"
},
{
"key": "shift+cmd+k",
"command": "editor.action.formatDocument",
"when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"
},
{
"key": "shift+alt+f",
"command": "-editor.action.formatDocument",
"when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"
}
]
WINDOWS
下面是 WINDOWS 系统的热键配置,你可以根据需要自行设置
javascript
...
"vim.sneak": true,
"vim.commandLineModeKeyBindings": [],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["s", "s"],
"commands": ["workbench.action.files.save"]
},
{
"before": ["z", "z"],
"commands": [":wq"]
},
{
"before": ["<leader>", "d"],
"commands": ["editor.action.revealDefinition"]
}
],
"vim.insertModeKeyBindings": [
{
"before": ["j", "j"],
"after": ["<Esc>"]
}
],
"vim.leader": "<space>",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
"explorer.confirmDelete": false,
"vim.useSystemClipboard": true,
"vim.camelCaseMotion.enable": true,
"vim.easymotion": true,
"vim.highlightedyank.enable": true,
"vim.easymotionMarkerForegroundColorTwoChar": "#ffffff",
"vim.easymotionMarkerForegroundColorOneChar": "#ffffff",
"vim.handleKeys": {
"<C-a>": false,
"<C-f>": false,
"<C-c>": false,
"<C-x>": false,
"<C-v>": false
}
...