A ligação de atalho do teclado de texto sublime não está funcionando


11

Seguindo as instruções aqui , configurei uma nova instalação do SublimeText para uso com R. Não tenho outros plug-ins do SublimeText instalados. Os atalhos de teclado configurados usando as instruções no link acima não funcionam. Configurei meu arquivo de ligação de chave do usuário, conforme especificado no tutorial.

Não há associações de teclas conflitantes no arquivo de associações de teclas 'Padrão'.

No entanto, eu posso executar meu código R no REPL clicando nos menus:

Ferramentas> SublimeREPL> Eval no REPL> Seleção ( Ctrl+ Shift+ R)

Se eu realmente pressionar o atalho Ctrl+ Shift+ R, nada acontece.

Aqui está uma cópia do meu arquivo de ligação de chave do usuário:

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

]

O que estou fazendo errado?


2
Abra o console (ctrl + ~) e digite sublime.log_commands(True). Em seguida, diga-nos o que o console diz após inserir a ligação de chave.
d_rail

Muito obrigado @d_rail. Curiosamente, nem consigo ligar para o console usando ctrl + ~ (o menu da janela diz que o atalho é ctrl + `; isso também não funciona). De qualquer forma, o console não informa nada quando pressiono ctrl + shift + R com o sublime.log_commands(True)ativado. Outros atalhos comuns, como ctrl + a, ctrl + c etc, funcionam e são relatados no console.
CaptainProg 29/07

Ok, aqui está a coisa estranha; se eu pressione Ctrl + shift + CapsLock + R, ele funciona ...
CaptainProg

Desculpe por fornecer informações incorretas, mas o backtick está correto. Parece que a combinação de teclas não está definida. Mas não vejo nada de errado com as configurações listadas. Eu começaria com as combinações de teclas padrão aqui: github.com/wuub/SublimeREPL/blob/master/… (ou a correta para o seu sistema operacional). E certifique-se de que funcione. Em seguida, altere uma tecla de cada vez para ver o que está atrapalhando.
2141313

Já foi encontrada uma solução para esse problema?
Music2myear 15/03/19

Respostas:


0

Isso tem uma solução simples. Há um erro no arquivo de configuração, basta remover a linha 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

Graças ao seguinte comentário do OP:

Ok, aqui está a coisa estranha; se eu pressionar ctrl + shift + CapsLock + R, funciona ...

Suponho que ["ctrl+shift+r"]aguarde uma letra minúscular ; no entanto, quando você pressiona shift (que faz parte da combinação de teclas de atalho), ele lê uma letra maiúscula R.

Quando o OP liga o CapsLock, pressionar rnormalmente seria emitido R, mas enquanto a SHIFTtecla é pressionada, ele lê em minúsculas r.

Isso provavelmente acontece porque o Sublime tenta ler exatamente o mesmo caractere, em vez do código da tecla pressionada.

E, portanto, a solução deve estar usando a letra maiúscula oposta quando estiver em uma combinação de teclas incluindo SHIFT(usando em Rvez de rneste caso):

// 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"}},
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.