# -*- text -*-

# file xemacs.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 Dekel Tsur
# author Jürgen Vigna
# author Andrew Zabolotny

# Full author contact details are available in file CREDITS.

# This is the XEMACS flavour bind file, based on the bindings found
# in the XEmacs editor. It has many bindings identical to the
# Emacs binding file although there are a few significant changes.
#
#
# 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
# ~/.lyx/bind/xemacs.bind
#
# Happy tuning!

\bind "C-~S-at"			"mark-on"
\bind "C-a"			"line-begin"
\bind "C-b"			"char-backward"
#bind "C-c"			"------" # see end of file
\bind "C-d"			"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-k"                    "line-delete-forward"
\bind "C-l"                    "screen-recenter"
\bind "C-m"                    "mark-toggle"
\bind "C-n"                    "down"
\bind "C-o"                    "next-inset-toggle"
\bind "C-p"                    "up"

# this is "quoted-insert" a total different meaning from "quote-insert"
\bind "C-q"                    "self-insert \""
#bind "C-r"                    "------"
\bind "C-s"                    "dialog-show findreplace"
\bind "M-~S-percent"		"dialog-show findreplace"

# should be "chars-transpose" (swaps two chars)
#bind "C-t"                    "------"

# universal argument in emacs
\bind "C-u"                    "font-underline"

# better name would be "scroll-up" as in emacs
\bind "C-v"                    "screen-down"
\bind "M-v"                    "screen-up"

\bind "C-w"                    "cut"
#bind "C-x"                    "------"
\bind "C-y"                    "paste"

#should be "lyx-iconify"
#bind "C-z"                    "------"   # see end of file

\bind "C-~S-slash"             "undo"
\bind "C-~S-underscore"        "undo"

\bind "~S-M-quotedbl"		"quote-insert single"
\bind "~S-C-quotedbl"		"self-insert \""

\bind "C-x a"                  "buffer-auto-save"
# not currently supported
#\bind "C-x b"                 "buffer-previous"
\bind "C-x d"                  "buffer-new"
\bind "C-x g"                  "buffer-view ps"
\bind "C-x k"                  "buffer-close"
\bind "C-x p"                  "buffer-view dvi"
\bind "C-x r"                  "buffer-update dvi"
# Should have been "buffer-write-some"
# \bind "C-x s"                  "buffer-write"
\bind "C-x t"                  "buffer-update dvi"
\bind "C-x u"                  "undo"
\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 v i"                "vc-register"
#\bind "C-x w"                  "buffer-write-as"
\bind "C-x bracketleft"        "screen-up"
\bind "C-x bracketright"       "screen-down"
\bind "C-x quoteleft"		"error-next"
\bind "C-x C-a"                "buffer-auto-save"
\bind "C-x C-b"                "menu-open view"	# list all buffers
\bind "C-x C-c"                "lyx-quit"
\bind "C-x C-d"                "buffer-new"
\bind "C-x C-f"                "file-open"
\bind "C-x C-g"                "buffer-view ps"
\bind "C-x C-l"			"word-lowcase"		# downcase-region!
\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-x C-u"			"word-upcase"		# upcase-region!
\bind "C-x C-w"                "buffer-write-as"
\bind "C-Next"		       "buffer-next"
\bind "C-Prior"		       "buffer-previous"

#bind "C-1"                    "------"
#bind "C-2"                    "------"
#bind "C-3"                    "------"
#bind "C-4"                    "------"
#bind "C-5"                    "------"
#bind "C-6"                    "------"
#bind "C-7"                    "------"
#bind "C-8"                    "------"
#bind "C-9"                    "------"
#bind "C-0"                    "------"

#bind "F1"                     "help"                          # Not yet implemented!
#bind "C-F1"                   "help-context"                  # Not yet implemented!
#\bind "F2"                     "buffer-write"
#\bind "F3"                     "file-open"
#bind "F4"                     "------"
#bind "F5"                     "------"
#bind "F6"                     "------"
#bind "F7"                     "------"
#bind "F8"                     "------"
#bind "F9"                     "------"
#bind "F10"                    "------"

\bind "M-x"			"command-execute"


#
# Motion group
#

\bind "C-Right"                "word-forward"
\bind "C-Left"                 "word-backward"
\bind "C-Up"                   "paragraph-up"
\bind "C-Down"                 "paragraph-down"
\bind "M-bracketleft"          "paragraph-up"
\bind "M-bracketright"         "paragraph-down"
\bind "Home"                   "line-begin"
\bind "End"                    "line-end"
\bind "C-Home"                 "buffer-begin"
\bind "C-End"                  "buffer-end"
\bind "M-~S-less"              "buffer-begin"
\bind "M-~S-greater"           "buffer-end"

\bind "Prior"                  "screen-up"
\bind "Next"                   "screen-down"

# A bit like autoindent in c-mode
\bind "Tab"                     "depth-increment"

\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-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"

#
# 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-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-Up"                 "paragraph-up-select"
\bind "S-C-Down"               "paragraph-down-select"
\bind "S-Home"                 "line-begin-select"
\bind "S-End"                  "line-end-select"
\bind "S-C-A"                  "line-begin-select"
\bind "S-C-E"                  "line-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 "M-Delete"		"word-delete-backward"
\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-S-L"			"ligature-break-insert"
\bind "C-space"			"space-insert protected"
\bind "C-M-space"		"space-insert normal"
\bind "S-C-space"		"space-insert thin"
\bind "C-period"		"end-of-sentence-period-insert"
\bind "M-period"		"dots-insert"
\bind "M-w"			"copy"
\bind "Escape"			"meta-prefix"

# Numeric keypad (if Shift+KP_XXX does not switch the NumLock state)
\bind "S-KP_Right"              "forward-select"
\bind "S-KP_Left"               "backward-select"
\bind "S-KP_Up"                 "up-select"
\bind "S-KP_Down"               "down-select"
\bind "S-C-KP_Right"            "word-forward-select"
\bind "S-C-KP_Left"             "word-backward-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-begin-select"
\bind "S-C-KP_Next"             "buffer-end-select"
\bind "C-KP_Insert"             "copy"
\bind "S-KP_Insert"             "paste"
\bind "S-KP_Delete"             "cut"


## Trying to incorporate the best of AucTeX and HM--HTML modes
##
# "C-z" is used in HM--HTML-mode for paragraph styles so try to support
#  similar here especially for LinuxDoc (although LinuxDoc isn't only for
#  making HTML).
##
\bind "C-c C-l"                 "dialog-show latexlog"        # show warning log
\bind "C-c C-o"                 "error-next"
\bind "C-c C-v"                 "buffer-chktex"         # validate

\bind "C-z space"		"drop-layouts-choice"
\bind "C-z 1"			"layout Title"
\bind "C-z 2"			"layout Section"
\bind "C-z 3"			"layout Subsection"
\bind "C-z 4"			"layout Subsubsection"
\bind "C-z 5"			"layout Paragraph"
\bind "C-z 6"			"layout Subparagraph"
\bind "C-z a"			"layout Author"		# address!!
\bind "C-z S-A"			"layout Abstract"
\bind "C-z c"			"layout LyX-Code"
\bind "C-z b"			"font-bold"
\bind "C-z d"			"layout Description"
\bind "C-z S-D"			"layout Date"
\bind "C-z e"			"font-emph"
\bind "C-z i"			"layout Itemize"	# smart-insert-item!!
\bind "C-z o"			"font-emph"		# italic!
\bind "C-z q"			"layout Quote"
\bind "C-z s"			"font-bold"		# strong!
\bind "C-c t"			"font-sans"		# typewriter!
\bind "C-c v"			"font-roman"		# variable!
\bind "C-z S-V"			"layout Verbatim"

\bind "C-z l d"			"layout Description"
\bind "C-z l t"			"layout Description"
\bind "C-z l o"			"layout Enumerate"	# numbered list
\bind "C-z l l"			"layout Itemize"	# bulleted list
\bind "C-z l u"			"layout Itemize"	# bulleted list
#
## End HM--HTML Mode
##
## Start AucTeX
#
#\bind "C-u C-c C-f"		"layout-character"
\bind "C-c C-f C-b"		"font-bold"
\bind "C-c C-f C-c"		"font-noun"
\bind "C-c C-f C-e"		"font-emph"
\bind "C-c C-f C-i"		"font-emph" #italic
\bind "C-c C-f C-s"		"font-emph" #slanted

\bind "C-c C-f C-f"		"font-sans"
\bind "C-c C-f C-r"		"font-roman"
\bind "C-c C-f C-t"		"font-code"  #typewriter

\bind "C-c ~S-asciitilde"		"math-mode"

\bind "C-c quoteleft"		"error-next"

\bind "C-c C-s 0"		"layout Standard"
\bind "C-c C-s 1"		"layout Chapter"
\bind "C-c C-s 2"		"layout Section"
\bind "C-c C-s 3"		"layout Subsection"
\bind "C-c C-s 4"		"layout Subsubsection"
\bind "C-c C-s 5"		"layout Paragraph"
\bind "C-c C-s 6"		"layout Subparagraph"
\bind "C-c C-e a"		"layout Abstract"
\bind "C-c C-e d"		"layout Description"
\bind "C-c C-e e"		"layout Enumerate"
\bind "C-c C-e i"		"layout Itemize"
\bind "C-c C-e l"		"layout List"
\bind "C-c C-e m"		"math-display"	# should this be math-mode?
\bind "C-c C-e q"		"layout Quote"
\bind "C-c C-e S-q"		"layout Quotation"
\bind "C-c C-e v"		"layout Quote"

\bind "C-c C-e f"		"dialog-show-new-inset graphics"  ## should be figure-float
\bind "C-c C-e t"		"tabular-insert" ## should be table-float

\bind "C-c percent"		"layout Comment"

\bind "C-c Return"		"break-paragraph-keep-layout"
#
## End AucTeX
#
## Start TeX mode, some overlap with AucTeX mode
#
\bind "C-c C-b"			"buffer-update dvi"
\bind "C-c C-p"			"dialog-show print"
\bind "C-c C-r"			"buffer-update dvi"	# tex region
#
## End TeX mode
#

################################
# Include menu and math bindings

\bind_file menus.bind
\bind_file math.bind
\bind_file latinkeys.bind
\bind_file cyrkeys.bind
\bind_file greekkeys.bind
