Превосходная текстовая клавиатурная привязка не работает

11

Следуя приведенным здесь инструкциям , я настроил новую установку SublimeText для использования с R. У меня не установлено никаких других плагинов SublimeText. Сочетания клавиш, которые настроены с использованием инструкций по ссылке выше, не работают. Я настроил свой файл привязки ключей пользователя, как указано в руководстве.

В файле привязок клавиш по умолчанию нет конфликтующих привязок клавиш.

Тем не менее, я могу выполнить свой R-код в REPL, щелкая по меню:

Инструменты> SublimeREPL> Eval в REPL> Выбор ( Ctrl+ Shift+ R)

Если я на самом деле нажимаю Ctrl+ Shift+ R, ничего не происходит.

Вот копия моего файла привязки ключей пользователя:

[
// Modified Sublime-REPL keybindings for an "R-friendly" set of shortcuts.
// For more information, see http://tomschenkjr.net/2012/05/17/using-sublime-text-2-for-r/

// Executes a selection of text in REPL, latter only displays code and does not execute
{ "keys": ["ctrl+shift+r"], "command": "repl_transfer_current", "args": {"scope": "selection"}},
{ "keys": ["ctrl+shift+r", "r"], "command": "repl_transfer_current", "args": {"scope": "selection", "action":"view_write"}},

// Executes the entire file (build) in REPL, latter only displays code and does not execute
{ "keys": ["ctrl + f7"], "command": "repl_transfer_current", "args": {"scope": "file"}},
{ "keys": ["ctrl + f7", "r"], "command": "repl_transfer_current", "args": {"scope": "file", "action":"view_write"}},

// Executes line(s) of text in REPL terminal, latter only displays code and does not execute
{ "keys": ["ctrl+alt+r"], "command": "repl_transfer_current", "args": {"scope": "lines"}},
{ "keys": ["ctrl+alt+r", "r"], "command": "repl_transfer_current", "args": {"scope": "lines", "action":"view_write"}},

// Executes a block (e.g., a custom function) of text in REPL terminal, latter only displays code and does not execute
{ "keys": ["ctrl+shift+alt+r"], "command": "repl_transfer_current", "args": {"scope": "block"}},
{ "keys": ["ctrl+shift+alt+r", "r"], "command": "repl_transfer_current", "args": {"scope": "block", "action":"view_write"}}

]

Что я делаю не так?

CaptainProg
источник
2
Откройте консоль (Ctrl + ~) и введите sublime.log_commands(True). Затем скажите нам, что говорит консоль после ввода привязки ключа.
d_rail
Большое спасибо @d_rail. Интересно, что я даже не могу вызвать консоль, используя ctrl + ~ (меню окна говорит, что это сочетание клавиш ctrl + `; это тоже не работает). В любом случае, консоль ничего не сообщает, когда я нажимаю Ctrl + Shift + R с sublime.log_commands(True)активированным. Другие общие ярлыки, такие как ctrl + a, ctrl + c и т. Д., Работают и отображаются в консоли.
CaptainProg
Хорошо, вот странная вещь; если я нажимаю Ctrl + Shift + CapsLock + R, это работает ...
CaptainProg
Извините, что дал вам неправильную информацию, обратная связь верна. Похоже, что связывание клавиш не установлено. Но я не вижу ничего плохого в перечисленных настройках. Я бы начал с привязки клавиш по умолчанию отсюда: github.com/wuub/SublimeREPL/blob/master/… (или подходящей для вашей ОС). И убедитесь, что это работает. Затем поменяйте одну клавишу за раз, чтобы увидеть, что в ней не так.
d_rail
Было ли найдено решение этой проблемы?
music2myear

Ответы:

0

Это простое решение. В файле конфигурации есть ошибка, просто нужно удалить строку shift + ctrl + r, r:

[
// Modified Sublime-REPL keybindings for an "R-friendly" set of shortcuts.
// For more information, see http://tomschenkjr.net/2012/05/17/using-sublime-text-2-for-r/

// Executes a selection of text in REPL, latter only displays code and does not execute
{ "keys": ["ctrl+shift+r"], "command": "repl_transfer_current", "args": {"scope": "selection"}},

// Executes the entire file (build) in REPL, latter only displays code and does not execute
{ "keys": ["ctrl + f7"], "command": "repl_transfer_current", "args": {"scope": "file"}},


// Executes line(s) of text in REPL terminal, latter only displays code and does not execute
{ "keys": ["ctrl+alt+r"], "command": "repl_transfer_current", "args": {"scope": "lines"}},


// Executes a block (e.g., a custom function) of text in REPL terminal, latter only displays code and does not execute
{ "keys": ["ctrl+shift+alt+r"], "command": "repl_transfer_current", "args": {"scope": "block"}},


]
lf_araujo
источник
0

Благодаря следующему комментарию от OP:

Хорошо, вот странная вещь; если я нажимаю Ctrl + Shift + CapsLock + R, это работает ...

Я могу догадаться, что ["ctrl+shift+r"]ждет нижний регистрr , однако, когда вы нажали Shift (который является частью комбинации клавиш быстрого доступа), он читает верхний регистр R.

Когда OP включил свой CapsLock, нажатие r, как правило, выводилось бы R, но, пока SHIFTнажата клавиша, показывается строчная буква r.

Вероятно, это происходит потому, что Sublime пытается прочитать тот же символ, а не код клавиши нажатой кнопки.

И, таким образом, решение должно использовать букву противоположного регистра, когда в комбинации клавиш в том числе SHIFT(используется Rвместо rв этом случае):

// Executes a selection of text in REPL, latter only displays code and does not execute
{ "keys": ["ctrl+shift+R"], "command": "repl_transfer_current", "args": {"scope": "selection"}},
{ "keys": ["ctrl+shift+R", "r"], "command": "repl_transfer_current", "args": {"scope": "selection", "action":"view_write"}},
Fanatique
источник