Прив'язка клавіш до клавіатури піднесеного тексту не працює


12

Дотримуючись тут інструкцій , я встановив нову установку 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"}}

]

Що я роблю неправильно?


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"}},


]

0

Завдяки наступному коментарю від ОП:

Гаразд, ось дивна річ; якщо я натискаю ctrl + shift + CapsLock + R, це працює ...

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

Коли ОП увімкнула функцію 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"}},
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.