изменение стандартных сочетаний клавиш редактора Ace - PullRequest
0 голосов
/ 10 ноября 2019

Я использую режим 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»?

1 Ответ

1 голос
/ 11 ноября 2019

привязки клавиш vim имеют формат, отличный от привязки клавиш по умолчанию, и поэтому они используют свои собственные API Vim.map, аналогичные команде :map в vim

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

Обратите внимание, что привязка клавиш vim невключается в ace.js и загружается асинхронно, поэтому вам нужно запустить этот код после загрузки этого файла, что можно сделать либо загрузкой скрипта keybinding-vim.js, используя config.loadModule

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
})
...