-# This file is part of
-# ==================================================================
-#
-# LyX, the High Level Word Processor
-#
-# Copyright 1995-2000 The LyX Team
-#
-# THIS FILE DEFINES THE EMACS LYX BINDINGS
-#
-# ==================================================================
+# -*- text -*-
-#
-# This is the EMACS flavour bind file, based on the bindings found
+# file emacs.bind
+# This file is part of LyX, the document processor.
+# Licence details can be found in the file COPYING.
+
+# author Lars Gullik Bjønnes
+# author Jean-Marc Lasgouttes
+# author Angus Leeming
+# author John Levon
+# author Allan Rae
+# author Jürgen Spitzmüller
+# author Andrew Zabolotny
+
+# Full author contact details are available in file CREDITS.
+
+# This is the EMACS flavour bind file, based on the bindings found
# in the Emacs editor.
#
#
# DO NOT CHANGE THIS DEFAULT BINDING FILE! It will be replaced
-# with every new install of LyX and your changes will be lost.
-# Instead, customize a copy of this file placed in
+# with every new install of LyX and your changes will be lost.
+# Instead, customize a copy of this file placed in
# ~/.lyx/bind/emacs.bind
#
# Happy tuning!
+Format 4
+
\bind "C-~S-at" "mark-on"
\bind "C-a" "line-begin"
\bind "C-b" "char-backward"
#bind "C-c" "------" // used as users prefix
-\bind "C-d" "delete-forward"
+\bind "C-d" "char-delete-forward"
\bind "C-e" "line-end"
\bind "C-f" "char-forward"
\bind "C-g" "cancel"
# help in emacs
-\bind "C-h" "hyphenation-point-insert"
-\bind "C-i" "hfill-insert"
-#bind "C-j" "------"
+\bind "C-h" "specialchar-insert hyphenation"
+\bind "C-M-minus" "specialchar-insert nobreakdash"
+\bind "C-i" "space-insert hfill"
+\bind "C-j" "paragraph-break"
\bind "C-k" "line-delete-forward"
\bind "C-l" "screen-recenter"
\bind "C-m" "mark-toggle"
\bind "C-n" "down"
-\bind "C-o" "open-stuff"
+\bind "C-o" "inset-toggle"
\bind "C-p" "up"
# this is "quoted-insert" a total different meaning from "quote-insert"
-\bind "C-q" "quote-insert"
+\bind "C-q" "self-insert \""
#bind "C-r" "------"
-\bind "C-s" "find-replace"
-\bind "M-~S-percent" "find-replace"
+\bind "C-s" "dialog-show findreplace"
+\bind "C-S-s" "dialog-show findreplaceadv"
+\bind "M-~S-percent" "dialog-show findreplaceadv"
-# should be "chars-transpose" (swaps two chars)
-#bind "C-t" "------"
+\bind "C-t" "chars-transpose"
# universal argument in emacs
\bind "C-u" "font-underline"
\bind "C-w" "cut"
#bind "C-x" "------"
\bind "C-y" "paste"
-\bind "C-S-Y" "layout-paste"
#should be "lyx-iconify"
#bind "C-z" "------"
\bind "C-~S-slash" "undo"
\bind "C-~S-underscore" "undo"
-\bind "S-C-quotedbl" "quote-insert"
+\bind "~S-M-quotedbl" "quote-insert single"
+\bind "~S-C-quotedbl" "self-insert \""
\bind "C-x a" "buffer-auto-save"
#\bind "C-x b" "buffer-previous"
# \bind "C-x s" "buffer-write"
\bind "C-x t" "buffer-update dvi"
\bind "C-x u" "undo"
-\bind "C-x v h" "vc-history"
+\bind "C-x v h" "dialog-show vclog"
\bind "C-x v v" "vc-check-in"
\bind "C-x v u" "vc-revert"
\bind "C-x v c" "vc-undo-last"
\bind "C-x bracketleft" "screen-up"
\bind "C-x bracketright" "screen-down"
\bind "C-x C-a" "buffer-auto-save"
-\bind "C-x C-b" "menu-open Documents"
+\bind "C-x C-b" "menu-open view"
\bind "C-x C-c" "lyx-quit"
\bind "C-x C-d" "buffer-new"
-\bind "C-x C-f" "buffer-open"
+\bind "C-x C-f" "file-open"
\bind "C-x C-g" "buffer-view ps"
\bind "C-x C-p" "buffer-view dvi"
\bind "C-x C-q" "buffer-toggle-read-only"
#\bind "C-x C-r" "buffer-update dvi"
\bind "C-x C-s" "buffer-write"
\bind "C-x C-t" "buffer-update dvi"
+\bind "C-Next" "buffer-next"
+\bind "C-Prior" "buffer-previous"
+\bind "S-F7" "thesaurus-entry"
+\bind "S-F8" "dialog-show spellchecker"
+\bind "C-x 0" "view-close"
+
+# Window commands
+\bind "C-x 5 2" "window-new"
+\bind "C-x 5 0" "window-close"
# this is "upcase-region" in emacs
#bind "F1" "help" # Not yet implemented!
#bind "C-F1" "help-context" # Not yet implemented!
#\bind "F2" "buffer-write"
-#\bind "F3" "buffer-open"
+#\bind "F3" "file-open"
#bind "F4" "------"
#bind "F5" "------"
#bind "F6" "------"
#bind "F10" "------"
\bind "M-x" "command-execute"
+\bind "C-M-o" "dialog-show toc"
+\bind "M-equal" "buffer-zoom-in"
+\bind "M-plus" "buffer-zoom-in"
+\bind "M-minus" "buffer-zoom-out"
#
# Motion group
#
-\bind "C-Right" "word-forward"
-\bind "C-Left" "word-backward"
-\bind "C-Up" "paragraph-up"
-\bind "C-Down" "paragraph-down"
-\bind "Home" "buffer-begin"
-\bind "End" "buffer-end"
-
-\bind "C-~S-greater" "reference-goto"
-\bind "C-~S-less" "reference-back"
-
+\bind "M-Up" "command-alternatives outline-up; paragraph-move-up; tabular-feature move-row-up"
+\bind "M-Down" "command-alternatives outline-down; paragraph-move-down; tabular-feature move-row-down"
+\bind "M-Right" "tabular-feature move-column-right"
+\bind "M-Left" "tabular-feature move-column-left"
+\bind "C-Right" "word-right"
+\bind "C-Left" "word-left"
+\bind "C-Up" "paragraph-up"
+\bind "C-Down" "paragraph-down"
+\bind "Home" "buffer-begin"
+\bind "End" "buffer-end"
+\bind "M-~S-less" "buffer-begin"
+\bind "M-~S-greater" "buffer-end"
+
+\bind "C-~S-greater" "label-goto"
+\bind "C-~S-less" "bookmark-goto 0"
+\bind "C-~S-1" "bookmark-goto 1"
+\bind "C-~S-2" "bookmark-goto 2"
+\bind "C-~S-3" "bookmark-goto 3"
+\bind "C-~S-4" "bookmark-goto 4"
+\bind "C-~S-5" "bookmark-goto 5"
+\bind "C-~S-6" "bookmark-goto 6"
+\bind "C-~S-7" "bookmark-goto 7"
+\bind "C-~S-8" "bookmark-goto 8"
+\bind "C-~S-9" "bookmark-goto 9"
+\bind "C-M-~S-1" "bookmark-save 1"
+\bind "C-M-~S-2" "bookmark-save 2"
+\bind "C-M-~S-3" "bookmark-save 3"
+\bind "C-M-~S-4" "bookmark-save 4"
+\bind "C-M-~S-5" "bookmark-save 5"
+\bind "C-M-~S-6" "bookmark-save 6"
+\bind "C-M-~S-7" "bookmark-save 7"
+\bind "C-M-~S-8" "bookmark-save 8"
+\bind "C-M-~S-9" "bookmark-save 9"
# The below are xemacs bindings
#\bind "Home" "line-begin"
# Motion + select group
#
-\bind "S-Right" "forward-select"
-\bind "S-Left" "backward-select"
-\bind "S-C-F" "forward-select"
-\bind "S-C-B" "backward-select"
+\bind "S-Right" "char-right-select"
+\bind "S-Left" "char-left-select"
+\bind "S-C-F" "char-forward-select"
+\bind "S-C-B" "char-backward-select"
\bind "S-Up" "up-select"
\bind "S-Down" "down-select"
-\bind "S-C-Right" "word-forward-select"
-\bind "S-C-Left" "word-backward-select"
+\bind "S-C-Right" "word-right-select"
+\bind "S-C-Left" "word-left-select"
\bind "S-C-A" "line-begin-select"
\bind "S-C-E" "line-end-select"
\bind "S-C-Up" "paragraph-up-select"
\bind "S-C-Down" "paragraph-down-select"
\bind "S-Home" "buffer-begin-select"
-\bind "S-End" "buffer-end-select"
+\bind "S-End" "buffer-end-select"
\bind "S-Prior" "screen-up-select"
\bind "S-Next" "screen-down-select"
\bind "S-C-Home" "buffer-begin-select"
\bind "S-C-End" "buffer-end-select"
-
#
# Edit group
#
\bind "C-Delete" "word-delete-forward"
\bind "M-d" "word-delete-forward"
\bind "C-BackSpace" "word-delete-backward"
-\bind "M-Return" "break-paragraph-keep-layout"
-\bind "C-Return" "break-line"
-\bind "C-space" "protected-space-insert"
-\bind "C-period" "end-of-sentence-period-insert"
-\bind "M-period" "dots-insert"
+\bind "M-Return" "paragraph-break inverse"
+\bind "C-Return" "newline-insert newline"
+\bind "C-S-Return" "newline-insert linebreak"
+\bind "C-S-L" "specialchar-insert ligature-break"
+\bind "C-space" "command-alternatives math-space ; space-insert protected"
+\bind "nobreakspace" "space-insert protected"
+\bind "C-M-space" "space-insert normal"
+\bind "S-C-space" "space-insert thin"
+\bind "M-~S-slash" "specialchar-insert slash"
+\bind "C-period" "specialchar-insert end-of-sentence"
+\bind "M-period" "specialchar-insert dots"
\bind "M-w" "copy"
-\bind "M-S-W" "layout-copy"
\bind "Escape" "meta-prefix"
-
+\bind "M-u" "word-upcase partial"
+\bind "M-l" "word-lowcase partial"
+# This conflicts with the character menu.
+#bind "M-c" "word-capitalize partial"
+
+# Numeric keypad (if Shift+KP_XXX does not switch the NumLock state)
+\bind "S-KP_Right" "char-right-select"
+\bind "S-KP_Left" "char-left-select"
+\bind "S-KP_Up" "up-select"
+\bind "S-KP_Down" "down-select"
+\bind "S-C-KP_Right" "word-right-select"
+\bind "S-C-KP_Left" "word-left-select"
+\bind "S-C-KP_Up" "paragraph-up-select"
+\bind "S-C-KP_Down" "paragraph-down-select"
+\bind "S-KP_Home" "line-begin-select"
+\bind "S-KP_End" "line-end-select"
+\bind "S-KP_Prior" "screen-up-select"
+\bind "S-KP_Next" "screen-down-select"
+\bind "S-C-KP_Home" "buffer-begin-select"
+\bind "S-C-KP_End" "buffer-end-select"
+\bind "S-C-KP_Prior" "buffer-move-previous"
+\bind "S-C-KP_Next" "buffer-move-next"
+\bind "M-h" "inset-select-all"
+\bind "C-KP_Insert" "copy"
+\bind "S-KP_Insert" "paste"
+\bind "S-KP_Delete" "cut"
# Include menu and math bindings
-#\bind_file menus.bind
+\bind_file menus.bind
\bind_file math.bind
+\bind_file latinkeys.bind
+\bind_file cyrkeys.bind
+\bind_file greekkeys.bind
+
+# the following bindings have to be adapted w.r.t. menus.bind
+\bind "M-c Down" "word-lowcase partial"
+\bind "M-c Up" "word-upcase partial"
+\bind "M-c Right" "word-capitalize partial"
+