En utilisant Autohotkey, ce qui suit fonctionne plutôt bien.
#IfWinActive ahk_class NotebookFrame
Enter::Send {blind}{shift down}{enter}{shift up}
Shift & Enter::Send {enter}
#IfWinActive
Au cas où les composants internes seraient modifiés, vous pouvez utiliser ce qui suit pour obtenir la classe interne.
Return::
WinGetClass, class, A
MsgBox, The active window's class is "%class%".
return
Ce bout de code devrait faire l'affaire. Il prend effet immédiatement.
SetOptions[$FrontEnd,
FrontEndEventActions:>{{"MenuCommand", "HandleShiftReturn"} :>
FrontEndTokenExecute["Linebreak"], "ReturnKeyDown" :>
FrontEndTokenExecute["EvaluateCells"]}]
(Testé sur ArchLinux/MacOS_Sierra/Win10Server2016 avec MMA 11. Espérons que cela fonctionnera également sur Ubuntu)
Si vous souhaitez l'exécuter automatiquement à chaque fois que vous ouvrez MMA, vous pouvez modifier le code et l'insérer dans le fichier de configuration frontal $UserBaseDirectory/FrontEnd/init.m
Et un grand merci à Kuba. Le commentaire sous sa réponse m'a beaucoup inspiré. Sans son idée, je ne serais pas capable de produire cette réponse.
Premier coup KeyEventTranslations.tr
fichier dans votre $UserBaseDirectory
afin de ne pas endommager les fichiers d'installation. (Relier les touches pour définir de nouveaux raccourcis clavier)
Ouvrez le fichier et recherchez ces lignes :
...
(* Évaluation *)
...
Item[KeyEvent["Return", Modificateurs -> {Shift}], "HandleShiftReturn"]
...
(* Saisie *)
Item[KeyEvent["Return"], "Linebreak"]
...
et échangez "HandleShiftReturn"
avec "Linebreak"
.
Fonctionne sous Windows.