更改 Ace 编辑器的默认键绑定

changing the default keybindings of the Ace editor

我正在使用 vim 模式,我想将 'j' 的行为更改为 'gj',将 'k' 的行为更改为 'gk'。我尝试使用以下内容:

editor.commands.bindKey("j", null); editor.commands.bindKey("j", "golinedown");

但是 'j' 仍然具有转到文件中的下一行(而不是屏幕上的下一行)的默认行为。作为解决方法,我目前正在使用:

editor.commands.bindKey("cmd-j", "golinedown");

这是有效的,因为 cmd-j 没有用于任何其他用途。如何更改 'j'、'k' 的默认键绑定?

vim 键绑定的格式与默认的 ace 键绑定不同,因此它们使用自己的 api Vim.map 类似于 :map 命令26=]

Vim = require("ace/keyboard/vim").Vim
Vim.map("j", "gj", "normal")
Vim.map("k", "gk", "normal")

请注意 vim 键绑定不包含在 ace.js 中并且是异步加载的,因此您需要在加载该文件后 运行 此代码,这可以通过以下方式完成使用 config.loadModule

加载 keybinding-vim.js 脚本
ace.config.loadModule("ace/keybinding/vim", function() {
    // use Vim here
}) 

或为 "load.module" 事件添加侦听器

ace.config.on("load.module", function(e) { 
   if (e.name == "ace/keyboard/vim" && e.module.Vim) 
       // use Vim here
})