lyx_mirror/lib/bind/emacs.bind
Scott Kostyshak 3c84267d8d Implement move row/column in tabular inset
This patch implements 'move row' and 'move column' features for tabular.
The purpose is to provide a useful behavior in tabular that is
consistent with PARAGRAPH_MOVE_UP and PARAGRAPH_MOVE_DOWN so that the
user can, for example, do alt-<up> to move a row up. Alternatively,
icons for these features are also added to the table toolbar and
context menu.

If there is any selection, the feature is disabled. This is consistent
with how PARAGRAPH_MOVE_UP works in other contexts. Additionally, 'move
row' is disabled if there is a multi-row in the current or target row;
and 'move column' is disabled if there is a multi-column in the current
or target column.

'move row' moves only the left and right borders of a cell along with
the row. Similarly, 'move column' moves only the the top and bottom
borders.

Implementing similar functionality for other insets, such as arrays and
array environments, is on my TODO list.
2013-01-20 21:54:30 -05:00

265 lines
9.2 KiB
Plaintext

# -*- text -*-
# 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
# ~/.lyx/bind/emacs.bind
#
# Happy tuning!
Format 1
\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" "char-delete-forward"
\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" "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" "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"
\bind "C-t" "chars-transpose"
# universal argument in emacs
\bind "C-u" "font-underline"
# better name would be "scroll-up" as in emacs
\bind "C-v" "screen-down"
\bind "C-w" "cut"
#bind "C-x" "------"
\bind "C-y" "paste"
#should be "lyx-iconify"
#bind "C-z" "------"
\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"
#\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 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"
\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-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 "C-x 0" "view-close"
# this is "upcase-region" in emacs
#\bind "C-x C-u" "undo"
\bind "C-x C-w" "buffer-write-as"
#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"
\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 "M-Up" "command-alternatives paragraph-move-up; inset-modify tabular move-row-up"
\bind "M-Down" "command-alternatives paragraph-move-down; inset-modify tabular move-row-down"
\bind "M-Right" "inset-modify tabular move-column-right"
\bind "M-Left" "inset-modify tabular 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"
#\bind "End" "line-end"
#\bind "C-Home" "buffer-begin"
#\bind "C-End" "buffer-end"
#
# 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-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-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" "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 space-insert protected ; math-space"
\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 "Escape" "meta-prefix"
# 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-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"
# 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