# GTK - The GIMP Toolkit # Copyright (C) 2002 Owen Taylor # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Modified by the GTK+ Team and others 1997-2000. See the AUTHORS # file for a list of people on the GTK+ Team. See the ChangeLog # files for a list of changes. These files are distributed with # GTK+ at ftp://ftp.gtk.org/pub/gtk/. # # A keybinding set implementing emacs-like keybindings # # # Bindings for GtkTextView and GtkEntry # binding "gtk-emacs-text-entry" { bind "b" { "move-cursor" (logical-positions, -1, 0) } bind "b" { "move-cursor" (logical-positions, -1, 1) } bind "f" { "move-cursor" (logical-positions, 1, 0) } bind "f" { "move-cursor" (logical-positions, 1, 1) } bind "b" { "move-cursor" (words, -1, 0) } bind "b" { "move-cursor" (words, -1, 1) } bind "f" { "move-cursor" (words, 1, 0) } bind "f" { "move-cursor" (words, 1, 1) } bind "a" { "move-cursor" (paragraph-ends, -1, 0) } bind "a" { "move-cursor" (paragraph-ends, -1, 1) } bind "e" { "move-cursor" (paragraph-ends, 1, 0) } bind "e" { "move-cursor" (paragraph-ends, 1, 1) } bind "w" { "cut-clipboard" () } bind "y" { "paste-clipboard" () } bind "d" { "delete-from-cursor" (chars, 1) } bind "d" { "delete-from-cursor" (word-ends, 1) } bind "k" { "delete-from-cursor" (paragraph-ends, 1) } bind "backslash" { "delete-from-cursor" (whitespace, 1) } bind "space" { "delete-from-cursor" (whitespace, 1) "insert-at-cursor" (" ") } bind "KP_Space" { "delete-from-cursor" (whitespace, 1) "insert-at-cursor" (" ") } # # Some non-Emacs keybindings people are attached to # bind "u" { "delete-from-cursor" (paragraph-ends, -1) } bind "h" { "delete-from-cursor" (chars, -1) } bind "w" { "delete-from-cursor" (word-ends, -1) } } # # Bindings for GtkTextView # binding "gtk-emacs-text-view" { bind "p" { "move-cursor" (display-lines, -1, 0) } bind "p" { "move-cursor" (display-lines, -1, 1) } bind "n" { "move-cursor" (display-lines, 1, 0) } bind "n" { "move-cursor" (display-lines, 1, 1) } bind "space" { "set-anchor" () } bind "KP_Space" { "set-anchor" () } } # # Bindings for GtkTreeView # binding "gtk-emacs-tree-view" { bind "s" { "start-interactive-search" () } bind "f" { "move-cursor" (logical-positions, 1) } bind "b" { "move-cursor" (logical-positions, -1) } } # # Bindings for menus # binding "gtk-emacs-menu" { bind "n" { "move-current" (next) } bind "p" { "move-current" (prev) } bind "f" { "move-current" (child) } bind "b" { "move-current" (parent) } } class "GtkEntry" binding "gtk-emacs-text-entry" class "GtkTextView" binding "gtk-emacs-text-entry" class "GtkTextView" binding "gtk-emacs-text-view" class "GtkTreeView" binding "gtk-emacs-tree-view" class "GtkMenuShell" binding "gtk-emacs-menu"