Mit Autohotkey funktioniert das Folgende recht gut.
#IfWinActive ahk_class NotebookFrame
Enter::Send {blind}{shift down}{enter}{shift up}
Shift & Enter::Send {enter}
#IfWinActive
Falls die Interna jemals geändert werden, können Sie Folgendes verwenden, um die interne Klasse zu erhalten.
Return::
WinGetClass, class, A
MsgBox, The active window's class is "%class%".
return
Dieses Stück Code sollte den Zweck erfüllen. Sie tritt sofort in Kraft.
SetOptions[$FrontEnd,
FrontEndEventActions:>{{"MenuCommand", "HandleShiftReturn"} :>
FrontEndTokenExecute["Linebreak"], "ReturnKeyDown" :>
FrontEndTokenExecute["EvaluateCells"]}]
(Getestet auf ArchLinux/MacOS_Sierra/Win10Server2016 mit MMA 11. Hoffentlich funktioniert es auch auf Ubuntu)
Wenn Sie es jedes Mal automatisch ausführen möchten, wenn Sie MMA öffnen, können Sie den Code ändern und ihn in die Frontend-Konfigurationsdatei $UserBaseDirectory/FrontEnd/init.m
einfügen
Und vielen Dank an Kuba. Der Kommentar unter seiner Antwort hat mich sehr inspiriert. Ohne seine Idee wäre ich nicht in der Lage gewesen, diese Antwort hervorzubringen.
Bewegen Sie zuerst KeyEventTranslations.tr
Datei zu Ihrem $UserBaseDirectory
um Installationsdateien nicht zu beschädigen. (Neuzuordnen von Tasten zum Definieren neuer Tastaturkürzel)
Öffnen Sie die Datei und suchen Sie diese Zeilen:
...
(* Auswertung *)
...
Item[KeyEvent["Return", Modifikatoren -> {Shift}], "HandleShiftReturn"]
...
(* Eingabe *)
Item[KeyEvent["Return"], "Linebreak"]
...
und vertausche "HandleShiftReturn"
mit "Linebreak"
.
Funktioniert unter Windows.