怎样将 VSCode 上的命令/动作绑定到 Vim 扩展?

2021-01-29 15:05:15 +08:00
 AndyAO

看了 VSCodeVim 扩展的官方文档,并且去谷歌上搜索都没有找到答案.

总觉得这个功能很基本,应该是可以实现的,也许是我没找到,所以来这里问一问.

697 次点击
所在节点    问与答
6 条回复
masquerader
2021-01-29 15:42:11 +08:00
这个是挺基本的。你用的哪个扩展?如果是用的 vscodevim.vim ,给你个参考:
```
vscodevim.vim "vim.visualModeKeyBindings": [
{
"before": [">"],
"commands": ["editor.action.indentLines"]
},
{
"before": ["<"],
"commands": [
"editor.action.outdentLines"
]
}
]
```
具体请参见 https://github.com/VSCodeVim/Vim
AndyAO
2021-01-29 16:00:01 +08:00
@masquerader
能用了.
现在才发现好像只有在可视模式下,才能够对选中的内容执行操作.
默认的话只能对当前的行进行操作.
AndyAO
2021-01-29 16:11:12 +08:00
@AndyAO #2 上面说的那个好像是错的
还不太会用
有各种错误和问题
anonydmer
2021-01-29 16:15:06 +08:00
缩进是需要 visual 模式下的
不过 vscode 的这个 vim 插件的缩进貌似不是在>之后即时缩进,需要随便再按个键,也没深究
anonydmer
2021-01-29 16:18:10 +08:00
原来要重新按楼上的配置一下,我的问题就解决了。
masquerader
2021-01-29 17:38:19 +08:00
插件还是很好用的,绑定键位的时候需要根据模式来绑定,例如
vim.normalModeKeyBindings": [
{
"before":["<space>"],
"commands": [
":nohl"
]
},
{
"before": ["<leader>", "d"],
"commands": [
"editor.action.peekDefinition"
]
}
]
在命令模式下,空格的作用是清除高亮显示,[leader, d] 则是显示定义(不跳转)。
vscodevim.vim "vim.visualModeKeyBindings": [
{
"before": [">"],
"commands": ["editor.action.indentLines"]
}
]
这段话是在选择模式下,输入大于号对选择的行进行缩进。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX