启用vim模式后,Ctrl+w不能用,只能用:q 一时间不适应 dd行后,通过u取消更改,恢复原状了,可是文件的dirty位竟然还在,这有点误导人啊
Ctrl+O无法使用,用什么替代方法呢?
槽点,优点,欢迎大家都来评论:)
按键冲突问题
a1. vscodevim u是undo,redo是什么按键。 Ctrl+r按键冲突,不能redo a2. ctrl+d 字符匹配,vim模式下无法使用
其他问题
b1. v 选中 yy复制内容,无法在其他编辑器,通过Ctrl+v粘贴
找到解法的朋友,可以针对每个问题id,说出你的解决办法
emmmm我也是在VSCode里用Vim插件的,不过感觉Mac下没有这么多按键冲突,所以非常的愉快
vscode 配置
"vim.useCtrlKeys": true,
"vim.hlsearch": true,
"vim.insertModeKeyBindings": [
{
"before": [
"j",
"j"
],
"after": [
"<Esc>"
]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [
"<leader>",
"c",
"c"
],
"after": [
"g",
"c"
]
},
{
"before": [
"<C-n>"
],
"after": [],
"commands": [
{
"command": ":nohl"
}
]
},
{
"before": [
"Z",
"Z"
],
"after": [],
"commands": [
{
"command": "workbench.action.files.save",
"args": []
},
{
"command": "workbench.action.closeActiveEditor",
"args": []
}
]
},
{
"before": [
"Z",
"Q"
],
"after": [],
"commands": [
{
"command": "workbench.action.files.revert",
"args": []
},
{
"command": "workbench.action.closeActiveEditor",
"args": []
}
]
},
{
"before": [
"leader",
"w"
],
"after": [],
"commands": [
{
"command": "workbench.action.files.save",
"args": []
}
]
}
],
"vim.leader": ",",
"vim.handleKeys": {
"<C-a>": false,
"<C-f>": true,
"<C-b>": true
},
ZZ
保存退出, ZW
不保存退出 , <,>W
保存 , jj
退出编辑模式
@waitingsong 你是直接修改worksapce文件么?
@chapgaga 嗯,全局修改。也可以根据项目添加到 .vscode/settings.json
文件
@waitingsong vim设置,每个。vscode配一次,是不是太麻烦?
@chapgaga 所以我修改全局设置
@waitingsong 也是在windows上用vscode?
@waitingsong 用vim模式后,Ctrl+C,Ctrl+V,没法用,真难受啊:( 你怎么解决这个问题?
@chapgaga 是的,windows。 我映射了 ctrl+c ,粘贴用默认的 shift+insert。也挺好的
@waitingsong 按shift+insert,替代ctrl+v,用起来是不是太别扭了:(
Ctrl+c好像不映射,也可以直接用啊
也可以配置vim插件使用全局剪切板,这样 p 就可以直接粘贴内容。 不过我强依赖 TC, 其F4 功能打开文件时会用打开的文件路径覆盖剪切板导致vim中复制的内容也被覆盖了,故我关闭了vim全局剪切板功能。
shift+insert 是 linux 控制台 通用粘贴快捷键。如果你还开着 xshell 之类远程就知道 通用的好处了
@waitingsong Ctrl+C,p和Shift+insert,为何粘贴的内容不同? 你说的TC是什么插件?
Ctrl+c 我是映射在 normal 模式的: vww 然后 Ctrl+c
TC : total commander 。最强大的资源管理器。 用vim,emacs 的不用tc 实在可惜了
TC 只有 win 版本。所以除了 win 其它系统都用不顺手。
既然是在 VSC 里面使用 vim, 其实已经没什么需要配置的了.
毕竟 vim 有跨平台优势在, 保持操作的统一性至关重要, 否则还不如使用代码编辑器.
在使用 vscode vim 和 ideavim 的时候, 我会首选使用 vim shortcuts 来完成编辑器操作.
最重要的配置还是 yank 时使用系统剪贴板. 在首选项中勾选 Vim: Use System Clipboard 即可.
vscode用vim要下插件吗
@waitingsong 按键没有ctrl v方便和顺手啊
@waitingsong 多个workspace如何共享vim配置?每个workspace配置一遍太麻烦了
@chapgaga vsc 全局配置啊
@waitingsong Ctrl+,就是你说的全局peizhii么?
@chapgaga 是的。 用户设置 打开 settings.json 按钮
@waitingsong 这个就是work space配置,不是全局的,换个work space,又要重新配置的:(
@chapgaga 我不知道你用的啥版本的vsc
@waitingsong 每个work space的配置是独立的,但是不同work space可以共享user setting里面的配置,你说的全局配置应该是user settings
@waitingsong vscodevim u是undo,redo是哪个? Ctrl+r没用:(
不理解为啥要在vscode中用vim,直接vim不行?
不理解为啥要在vscode中用vim,直接vim不行?
@zhulinwei 你直接用VIM么?
我也贴个
// Remapped keys in insert mode. Allows mapping to vim commands or vscode actions. See README for more.
"vim.insertModeKeyBindings": [
{
"before": ["j", "k"],
"after": ["<Esc>"]
}
],
// Non-recursive remapped keys in normal mode. Allows mapping to vim commands or vscode actions. See README for more.
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["leader", "p"],
"after": ["\"", "+", "p"]
},
{
"before": ["Z", "Z"],
"commands": [
{
"command": "workbench.action.files.save",
"args": []
},
{
"command": "workbench.action.closeActiveEditor",
"args": []
}
]
},
{
"before": ["<C-n>"],
"after": ["g", "b"]
},
{
"before": ["leader", "v", "p"],
"commands": [
{
"command": "workbench.action.splitEditorDown"
}
]
},
{
"before": ["leader", "s", "p"],
"commands": [
{
"command": "workbench.action.splitEditorRight"
}
]
}
],
"vim.visualModeKeyBindingsNonRecursive": [
{
"before": ["leader", "y"],
"after": ["\"", "+", "y"]
},
{
"before": ["leader", "p"],
"after": ["\"", "+", "p"]
},
{
"before": ["<C-n>"],
"after": ["g", "b"]
}
]
```
,y 赋值选中
,p 粘贴
ctrl+n 多光标
,sp 水平分屏
,vp 垂直分屏
jk Esc
ZZ 保存退出
还有一些写在vscode的keybind里面, 挑几个
```
{
"key": "ctrl+p",
"command": "selectPrevSuggestion",
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
},
{
"key": "ctrl+n",
"command": "selectNextSuggestion",
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
},
{
"key": "alt+l",
"command": "workbench.action.focusNextGroup"
},
{
"key": "alt+h",
"command": "workbench.action.focusPreviousGroup"
},
```
ctrl+n/ctrl+p 和vim一样在补全列表中上下移动
alt+l/alt+h 在分屏之间切换