lyx_mirror/lib/bind/xemacs.bind
Jean-Marc Lasgouttes 6c20e5db7d Add ScrollType BOTTOM and TOGGLE for BufferView::scrollToCursor()
BOTTOM shows the paragraph containing the cursor at the bottom of the
work area.

TOGGLE does CENTER, then TOP, BOTTOM and finally cycles to CENTER.
This is a feature copied from emacs's C-l binding.

Add new argument "caret" to lfun "scroll" that can be used like
  scroll caret center

Change the keys (either C-l, M-l or F5) bound to screen-recenter to
"scroll caret toggle".

As an experiment, change paragraph-goto to use this scrolling method.
This can be tested when going to a heading in the outline pane.
2024-09-06 12:21:42 +02:00

367 lines
13 KiB
Plaintext

# -*- 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!
Format 5
\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" "char-delete-forward confirm"
\bind "C-e" "line-end"
\bind "C-f" "char-forward"
\bind "C-g" "cancel"
# help in emacs
\bind "C-h" "specialchar-insert hyphenation"
\bind "C-M-minus" "specialchar-insert nobreakdash"
\bind "C-i" "space-insert hfill"
#bind "C-j" "------"
\bind "C-k" "line-delete-forward"
\bind "C-l" "scroll caret toggle"
\bind "C-m" "mark-toggle"
\bind "C-n" "down"
\bind "C-o" "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 "C-S-s" "dialog-show findreplaceadv"
\bind "M-~S-percent" "dialog-show findreplaceadv"
# 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 inner"
\bind "~S-C-quotedbl" "quote-insert outer auto plain"
\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 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 force"
#\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 "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 "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-~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"
#
# Motion + select group
#
\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-right-select"
\bind "S-C-Left" "word-left-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 confirm"
\bind "C-Delete" "word-delete-forward confirm"
\bind "M-d" "word-delete-forward confirm"
\bind "C-BackSpace" "word-delete-backward confirm"
\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-~S-period" "specialchar-insert end-of-sentence"
\bind "M-~S-period" "specialchar-insert dots"
\bind "M-w" "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" "buffer-move-previous"
\bind "S-KP_Next" "buffer-move-next"
\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.
##
\bind "C-c C-l" "dialog-show latexlog" # show warning log
\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-typewriter" #typewriter
\bind "C-c ~S-asciitilde" "math-mode"
\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 Labeling"
\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" "paragraph-break inverse"
#
## End AucTeX
#
## Start TeX mode, some overlap with AucTeX mode
#
\bind "C-c C-b" "buffer-update dvi"
\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
# 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"