; Stolfi's global key bindings. ; Last edited on 2023-09-15 21:29:14 by stolfi (defun dir-shell () "Creates a shell buffer named as the current dir. [stolfi]" (interactive) (shell) (rename-buffer (concat ">>" (file-name-nondirectory (substring default-directory 1 -1)) "<<")) ) (defun revert-buffer-and-stay-put () "Re-reads buffer from file and tries to remain at same position. [stolfi]" (interactive) (revert-buffer nil t t) ) (defun revert-buffer-and-goto-end () "Re-reads buffer from file and goes to end-of-buffer. [stolfi]" (interactive) (revert-buffer nil t t) (end-of-buffer) ) (defun insert-signature-engl () "Inserts the signature for mail messages in English. [stolfi]" (interactive) (insert-string "Jorge Stolfi\nFull Professor\nInstitute of Computing\nState University of Campinas (UNICAMP)\n") ) (defun insert-signature-port () "Inserts the signature for mail messages in English. [stolfi]" (interactive) (insert-string "Jorge Stolfi\nProfessor Titular\nInstituto de Computação, UNICAMP\n") ) (load "stolfi-alt-source") (load "stolfi-module-and-proc") (load "stolfi-c-mode-hacks") (defun stolfi-bindings-Keytouch () "Stolfi's special key bindings for Emacs-20 on Keytouch keyboards." (interactive) (define-key global-map [f1] 'advertised-undo) ;; F1 (define-key global-map [f2] 'set-fill-column) ;; F2 (define-key global-map [f3] 'next-error) ;; F3 (define-key global-map [f4] 'revert-buffer-and-stay-put) ;; F4 (define-key global-map [f5] 'stolfi-python-test-module) ;; F5 (define-key global-map [f6] 'stolfi-get-alt-file) ;; F6 (define-key global-map [f7] 'stolfi-visit-module-and-proc) ;; F7 (define-key global-map [f8] 'insert-signature-engl) ;; F8 (define-key global-map [f9] 'stolfi-recompile-buffer) ;; F9 (define-key global-map [f10] 'tmm-menubar) ;; F10 (define-key global-map [f12] 'stolfi-time-stamp-insert-new) ;; F12 (define-key global-map [prior] 'scroll-down) ;; PgUp (define-key global-map [next] 'scroll-up) ;; PgDn (define-key global-map [home] 'stolfi-scroll-to-top) ;; Home (define-key global-map [end] 'stolfi-scroll-to-bottom) ;; End (define-key global-map [begin] 'recenter) ;; K-5 nil ) ;; Other key bindings (define-key global-map "\C-c\C-a" 'stolfi-recompile-buffer) ;; Redefined by some modes (define-key global-map "\C-c\C-t" 'stolfi-get-alt-file) ;; Redefined by some modes (define-key global-map "\C-xg" 'goto-line) (define-key global-map "\C-xf" nil) ; (define-key global-map "\M-p" 'portug) (define-key global-map "\015" 'stolfi-newline-and-indent) (define-key global-map "\C-o" 'stolfi-open-line) (define-key global-map "\012" 'newline) (define-key global-map "\C-a" 'stolfi-beginning-of-line) (define-key global-map "\M-," 'stolfi-exdent-region) (define-key global-map "\M-." 'stolfi-indent-region) (define-key global-map "\C-d" 'stolfi-delete-next-char) (define-key global-map [delete] 'stolfi-delete-next-char) (define-key global-map [backspace] 'stolfi-delete-prev-char) (define-key global-map "\M-r" 'query-replace-regexp) (define-key global-map "\C-c\C-v" 'stolfi-c-verticalize-arg-list) ; (define-key global-map "\C-c\C-z" 'comment-region) ;; The following lines are always needed. Choose your own keys. ;; Bindings for "org": ;; (global-set-key "\C-cl" 'org-store-link) ;; (global-set-key "\C-ca" 'org-agenda) ;; (global-set-key "\C-cc" 'org-capture) ;; (global-set-key "\C-cb" 'org-switchb) ; Hack to get the mouse wheel codes from the cratera mouse: (defun stolfi-wheel-scroll-up() (interactive) (scroll-up 2)) (defun stolfi-wheel-scroll-down() (interactive) (scroll-down 2)) (global-set-key [?\M-\C-)] 'stolfi-wheel-scroll-up) (global-set-key [?\M-\C-(] 'stolfi-wheel-scroll-down) ; Make i-search [backspace] apply to pattern, not text: (define-key isearch-mode-map [delete] 'isearch-other-control-char) (define-key isearch-mode-map [backspace] 'isearch-delete-char) ; Make C-c C-c in shell buffers be KILL not INTERRUPT (require 'comint) (define-key comint-mode-map "\C-c\C-i" 'comint-interrupt-subjob) (define-key comint-mode-map "\C-c\C-c" 'comint-kill-subjob) ; Additional rectangle commands: (require 'stolfi-rect) (define-key global-map "\C-xrc" 'cut-rectangle) ; replaces clear-rectangle (define-key global-map "\C-xrp" 'paste-rectangle) ; insert with overwrite