Podniesione klawisze tekstowe nie działają

11

Postępując zgodnie z instrukcjami tutaj , skonfigurowałem nową instalację SublimeText do użytku z R. Nie mam innych zainstalowanych wtyczek SublimeText. Skróty klawiaturowe konfigurowane za pomocą instrukcji w powyższym linku nie działają. Skonfigurowałem plik powiązania klucza użytkownika zgodnie z instrukcją.

W pliku powiązań domyślnych nie ma żadnych sprzecznych powiązań klawiszy.

Niemniej jednak mogę wykonać mój kod R w REPL, klikając menu:

Narzędzia> SublimeREPL> Eval in REPL> Selekcja ( Ctrl+ Shift+ R)

Jeśli faktycznie naciskam skrót Ctrl+ Shift+ R, nic się nie dzieje.

Oto kopia mojego pliku powiązania klucza użytkownika:

[
// 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"}}

]

Co ja robię źle?

CaptainProg
źródło
2
Otwórz konsolę (ctrl + ~) i naciśnij klawisz Enter sublime.log_commands(True). Następnie powiedz nam, co mówi konsola po wprowadzeniu powiązania klawiszy.
d_rail
Wielkie dzięki @d_rail. Co ciekawe, nie mogę nawet wywołać konsoli za pomocą ctrl + ~ (menu okna mówi, że skrót to ctrl + `; to też nie działa). W każdym razie konsola nic nie zgłasza, gdy naciskam ctrl + shift + R z sublime.log_commands(True)aktywowanym. Inne popularne skróty, takie jak ctrl + a, ctrl + c itp. Działają i są zgłaszane w konsoli.
CaptainProg,
Okej, oto dziwna rzecz; gdybym naciśnij Ctrl + Shift + CapsLock + R, to działa ...
CaptainProg
Przepraszam, że podaję złe informacje, backtick ma rację. Wygląda na to, że klawisze nie są ustawione. Ale nie widzę nic złego w wymienionych ustawieniach. Zacznę od domyślnych skrótów klawiszowych tutaj: github.com/wuub/SublimeREPL/blob/master/… (lub odpowiedni dla twojego systemu operacyjnego). I upewnij się, że to działa. Następnie zmieniaj jeden klucz na raz, aby zobaczyć, co go psuje.
d_rail
Czy znaleziono już rozwiązanie tego problemu?
music2myear

Odpowiedzi:

0

To proste rozwiązanie. W pliku konfiguracyjnym jest błąd, wystarczy usunąć linię 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
źródło
0

Dzięki poniższemu komentarzowi OP:

Okej, oto dziwna rzecz; jeśli nacisnę ctrl + shift + CapsLock + R, to zadziała ...

Domyślam się, że ["ctrl+shift+r"]czeka na małe literyr , ale po naciśnięciu klawisza Shift (który jest częścią kombinacji klawiszy skrótu), odczytuje wielkie litery R.

Gdy OP włączy CapsLock, naciśnięcie rbyłoby normalnie wyprowadzane R, ale gdy SHIFTklawisz jest wciśnięty, odczytuje małe litery r.

Dzieje się tak prawdopodobnie dlatego, że Sublime próbuje odczytać dokładnie ten sam znak, a nie kod klucza wciśniętego przycisku.

W związku z tym rozwiązaniem powinno być użycie przeciwnej litery w kombinacji klawiszy obejmującej SHIFT(używając Rzamiast rw tym przypadku):

// 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"}},
Fanatyczna
źródło