forked from pool/emacs
543 lines
18 KiB
Plaintext
543 lines
18 KiB
Plaintext
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
;;; File name: ` ~/.gnu-emacs '
|
||
|
;;; ---------------------
|
||
|
;;;
|
||
|
;;; Note: This file is for GNU-Emacs only ...
|
||
|
;;; GNU-Emacs is incompatible to X-Emacs. Therefore your
|
||
|
;;; personal ~/.emacs should load this file if your runnning
|
||
|
;;; the good old GNU-emacs.
|
||
|
;;;
|
||
|
;;; If you need your own personal ~/.gnu-emacs
|
||
|
;;; please make a copy of this file
|
||
|
;;; an placein your changes and/or extension.
|
||
|
;;;
|
||
|
;;; For emacs commands have a look onto the
|
||
|
;;; `emacs-revcard' in the directory /usr/doc/packages/emacs/
|
||
|
;;;
|
||
|
;;; Copyright 1993-2001 Werner Fink
|
||
|
;;; Copyright (c) 1996-2001 SuSE Gmbh Nuernberg, Germany.
|
||
|
;;; All rights reserved.
|
||
|
;;;
|
||
|
;;; Author: Werner Fink, <werner@suse.de> 1993-2001
|
||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
;;
|
||
|
;; No splash screen at all
|
||
|
;; -----------------------
|
||
|
(if (and (file-exists-p "~/.inhibit-splash-screen")
|
||
|
(boundp 'inhibit-splash-screen))
|
||
|
(setq-default inhibit-splash-screen t))
|
||
|
;; MELPA
|
||
|
(require 'package)
|
||
|
(add-to-list 'package-archives
|
||
|
'("melpa" . "https://melpa.org/packages/"))
|
||
|
;;(package-initialize)
|
||
|
;;
|
||
|
;; Debuging only
|
||
|
;; -------------
|
||
|
; (open-dribble-file "~/.dribble")
|
||
|
; (open-termscript "~/.termscript")
|
||
|
;;
|
||
|
;; Emacs makes backup by moving original files, to
|
||
|
;; avoid trouble with hardlinked files we may use:
|
||
|
;; -----------------------------------------------
|
||
|
; (defconst backup-by-copying-when-linked t)
|
||
|
;;
|
||
|
;; Rmail: We will place all Mail's an Mail-folders into ~/Mail
|
||
|
;; -----------------------------------------------------------
|
||
|
(if (file-accessible-directory-p "~/Mail/")
|
||
|
(setq rmail-secondary-file-directory "~/Mail/"))
|
||
|
;;
|
||
|
;; Prefix for mail-mode
|
||
|
;; ---------------------
|
||
|
(setq mail-yank-prefix "> ")
|
||
|
; (setq mail-archive-file-name "~/Mail/.CarbonCopy")
|
||
|
(setq mail-self-blind nil)
|
||
|
(setq mail-default-headers nil)
|
||
|
(setq mail-signature nil)
|
||
|
;;
|
||
|
;; Settings for message-mode
|
||
|
;; -------------------------
|
||
|
(setq message-from-style "angles")
|
||
|
(if (null mail-host-address)
|
||
|
(let ((tmph (getenv "HOSTNAME"))
|
||
|
(tmpf (getenv "FROM_HEADER")))
|
||
|
(if (or (null tmph) (not (string-match "\\." tmph)))
|
||
|
(setq tmph (system-name)))
|
||
|
(if (not (string-match "\\." tmph))
|
||
|
(setq mail-host-address "our.domain.is.not.set")
|
||
|
(string-match "\\." tmph)
|
||
|
(setq mail-host-address (substring tmph (match-end 0))))
|
||
|
(if (stringp tmpf)
|
||
|
(setq mail-host-address tmpf)))
|
||
|
(setq tmpf nil tmph nil))
|
||
|
;;
|
||
|
;; RMAILGEN: Folder im Rmail-Mode :-)
|
||
|
;; ----------------------------------
|
||
|
;;
|
||
|
;; 1. I want to define a mail directory that isn't `~/'
|
||
|
(if (file-accessible-directory-p "~/Mail/")
|
||
|
(setq rmailgen-default-directory "~/Mail/")) ; must end in slash
|
||
|
;;;
|
||
|
;; 2. I want 78 column
|
||
|
(add-hook 'mail-mode-hook (function (lambda () (setq fill-column 78))))
|
||
|
(if (file-exists-p "~/.abbrev_defs")
|
||
|
(progn (read-abbrev-file "~/.abbrev_defs")
|
||
|
(add-hook 'mail-setup-hook 'mail-abbrevs-setup)))
|
||
|
;;;
|
||
|
;; 3. By default, if mail-archive-file-name is non-nil then
|
||
|
;; archive file names will be generated automatically based on
|
||
|
;; the message to which a reply is being constructed. If I
|
||
|
;; wanted to turn this off I would put in a statement like
|
||
|
(setq rmailgen-archive-file-name nil)
|
||
|
;;;
|
||
|
;; 4. By default, rmailgen.el downcases generated filenames
|
||
|
;; If I wanted uppercase I would put in a statement like here.
|
||
|
(setq rmailgen-downcase "dummy")
|
||
|
;;;
|
||
|
;; 5. By default, rmailgen.el does not append `.gz' to generated
|
||
|
;; filenames. If I wanted such an extension I would put in a statement
|
||
|
;; like
|
||
|
;;(setq rmailgen-gzip-file-name t)
|
||
|
;;;
|
||
|
;; 6. By default, rmailgen.el will use generated FCC filenames even
|
||
|
;; if the file does not exist. If I wanted to FCC only if the file
|
||
|
;; already exists I would put in a statement like
|
||
|
;; (setq rmailgen-archive-only-if-exists t)
|
||
|
;;;
|
||
|
;; 7. Add my own personal output list for specific friends
|
||
|
;; and special subjects.
|
||
|
;;;
|
||
|
;; First define rmail-output-file-alist, just in case this
|
||
|
;; is not already defined. That is, may be
|
||
|
;; ../lisp/rmailout.el has not been loaded yet.
|
||
|
(if (not (boundp 'rmail-output-file-alist))
|
||
|
(defvar rmail-output-file-alist nil))
|
||
|
;;;
|
||
|
(setq rmail-output-file-alist
|
||
|
(append
|
||
|
(list
|
||
|
|
||
|
; ;; For my friends (some have strange account names).
|
||
|
; '("^From:[ \t]*.*jones.*" . "jmjones")
|
||
|
; '("^From:[ \t]*.*Joe[ \t]*Smith.*" . "joe")
|
||
|
;
|
||
|
; ;; Special subject lines.
|
||
|
; '("^Subject:[ \t]*.*crypt.*" . "crypt++")
|
||
|
; '("^Subject:[ \t]*.*rmailgen.*" . "genrmail")
|
||
|
; '("^Subject:[ \t]*.*dired-x.*" . "dired-x")
|
||
|
; '("^Subject:[ \t]*.*GNU Emacs 19 RMAIL Poll.*" . "rmail")
|
||
|
;
|
||
|
; ;; Add more entries here...
|
||
|
)
|
||
|
;;;
|
||
|
;; In case rmail-output-file-alist has been defined
|
||
|
;; already elsewhere.
|
||
|
rmail-output-file-alist))
|
||
|
;;;
|
||
|
;; 8. Load package [REQUIRED].
|
||
|
(if (file-exists-p "/usr/share/emacs/site-lisp/rmailgen.el")
|
||
|
(require 'rmailgen))
|
||
|
;;
|
||
|
;; Base text mode
|
||
|
;; ----------------------
|
||
|
(setq default-major-mode 'text-mode)
|
||
|
(line-number-mode 1)
|
||
|
(global-set-key "\e\?" 'goto-line)
|
||
|
(column-number-mode 1)
|
||
|
;;
|
||
|
;; User can cutomize that: Just show e.g. DOS files with CR/NL
|
||
|
;; ----------------------
|
||
|
; (setq-default inhibit-eol-conversion t)
|
||
|
(setq-default require-final-newline "ask")
|
||
|
;;
|
||
|
;; Specials for X Window System
|
||
|
;; -------------------------
|
||
|
(if (not window-system)
|
||
|
;; ispell
|
||
|
;; ----------------------
|
||
|
;; (A few changes on ispell)
|
||
|
(setq ispell-highlight-face 'underline);)
|
||
|
;;
|
||
|
;; Geometry and layout
|
||
|
;;
|
||
|
; (setq initial-frame-alist
|
||
|
; '((vertical-scroll-bars . right) (height . 34) (width . 80)))
|
||
|
; (setq default-frame-alist
|
||
|
; '((vertical-scroll-bars . right) (height . 34) (width . 80)))
|
||
|
|
||
|
;;
|
||
|
;; Some fonts
|
||
|
;; -----------------------
|
||
|
(if (> emacs-major-version 20) (require 'xfonts))
|
||
|
;;
|
||
|
;; New in Emacs 21: tool bar menu, you may switch it of
|
||
|
;; ----------------------------------------------------
|
||
|
; (if (fboundp 'tool-bar-mode) (tool-bar-mode 0))
|
||
|
;;
|
||
|
;; mouse as arrow
|
||
|
;; --------------
|
||
|
(setq x-pointer-shape x-pointer-left-ptr)
|
||
|
(if (x-display-color-p)
|
||
|
(set-mouse-color "RoyalBlue")
|
||
|
(set-mouse-color (cdr (assq 'mouse-color (frame-parameters)))))
|
||
|
;;
|
||
|
;; Automatically replacing of fore- and background.
|
||
|
(if (not (x-display-color-p))
|
||
|
(progn
|
||
|
(set-face-background 'region
|
||
|
(cdr (assq 'foreground-color (frame-parameters ))))
|
||
|
(set-face-foreground 'region
|
||
|
(cdr (assq 'background-color (frame-parameters ))))
|
||
|
;; ispell
|
||
|
;; ----------------------
|
||
|
;; (A few changes on ispell)
|
||
|
(setq ispell-highlight-face 'underline)))
|
||
|
;;
|
||
|
;; Highlighting of special emacs modes
|
||
|
;; -----------------------------------
|
||
|
;; We use font lock mode
|
||
|
|
||
|
;; Darken greyed strings in font lock mode
|
||
|
(custom-declare-face 'font-lock-string-face
|
||
|
'((((class grayscale) (background light)) (:foreground "gray37" :italic t))
|
||
|
(((class grayscale) (background dark)) (:foreground "LightGray" :italic t))
|
||
|
(((class color) (background light)) (:foreground "gray37"))
|
||
|
(((class color) (background dark)) (:foreground "LightGray"))
|
||
|
(t (:italic t)))
|
||
|
"Font Lock mode face used to highlight strings."
|
||
|
:group 'font-lock-highlighting-faces)
|
||
|
|
||
|
;; Enable font lock support
|
||
|
(require 'font-lock)
|
||
|
(cond ((and (boundp 'jit-lock-mode) (symbol-value 'jit-lock-mode))
|
||
|
(setq font-lock-support-mode '((latex-mode . fast-lock-mode) (t . jit-lock-mode))))
|
||
|
((and (boundp 'lazy-lock-mode) (symbol-value 'lazy-lock-mode))
|
||
|
(setq font-lock-support-mode '((latex-mode . fast-lock-mode) (t . lazy-lock-mode)))))
|
||
|
(add-hook 'after-init-hook #'(lambda () (global-font-lock-mode 1)))
|
||
|
|
||
|
;;
|
||
|
;; Some dialog
|
||
|
;; ------------------
|
||
|
(setq use-dialog-box t)
|
||
|
;;
|
||
|
;; less dialog
|
||
|
;; -----------
|
||
|
;(menu-prompting nil)
|
||
|
;;
|
||
|
;; Set X synchrone
|
||
|
;; ---------------
|
||
|
;; Speed up
|
||
|
(setq mouse-scroll-delay 0)
|
||
|
(setq x-selection-timeout 0)
|
||
|
;;
|
||
|
;; We use a wrapper script for netscape
|
||
|
;;
|
||
|
(if (file-executable-p "/usr/X11R6/bin/Netscape")
|
||
|
(setq browse-url-netscape-program "/usr/X11R6/bin/Netscape"))
|
||
|
)
|
||
|
;;
|
||
|
;; emacsclient: automatical popup under X11
|
||
|
;; ------------------------------------------
|
||
|
;(defun server-make-window-visible ()
|
||
|
; "Try to make this window even more visible."
|
||
|
;(if window-system
|
||
|
; (progn
|
||
|
; (let ((foo (selected-frame)))
|
||
|
; (sit-for 0)
|
||
|
; (make-frame-visible foo))
|
||
|
; (accept-process-output))))
|
||
|
;(add-hook 'server-switch-hook #'(lambda () (server-make-window-visible)))
|
||
|
;(add-hook 'server-visit-hook #'(lambda () (server-make-window-visible)))
|
||
|
;; Start it for popup
|
||
|
;(server-start)
|
||
|
;;
|
||
|
;; Emacs experts like this
|
||
|
;; -----------------------
|
||
|
(put 'eval-expression 'disabled nil)
|
||
|
;;
|
||
|
;; Working on parts of text
|
||
|
;; ------------------------
|
||
|
;; NB: `C-x n n' is narrow-to-region
|
||
|
;; `C-x n p' is narrow-to-page
|
||
|
;; `C-x n w' is widen
|
||
|
;(put 'narrow-to-region 'disabled nil)
|
||
|
;(put 'narrow-to-page 'disabled nil)
|
||
|
;;
|
||
|
;; GNUS
|
||
|
;; ----
|
||
|
;; Sorting
|
||
|
(if (or (and (= emacs-major-version 19) (> emacs-minor-version 29))
|
||
|
(> emacs-major-version 19))
|
||
|
(add-hook 'gnus-select-group-hook
|
||
|
#'(lambda ()
|
||
|
(setq-default gnus-auto-select-first nil)
|
||
|
(setq-default gnus-auto-center-summary nil)
|
||
|
(setq gnus-thread-sort-functions
|
||
|
'(gnus-thread-sort-by-number
|
||
|
gnus-thread-sort-by-subject
|
||
|
gnus-thread-sort-by-date
|
||
|
gnus-thread-sort-by-score))))
|
||
|
(add-hook 'gnus-select-group-hook
|
||
|
#'(lambda ()
|
||
|
(setq-default gnus-auto-select-first nil)
|
||
|
(setq-default gnus-auto-center-summary nil)
|
||
|
;; First of all, sort by date.
|
||
|
(gnus-keysort-headers
|
||
|
(function string-lessp)
|
||
|
(function
|
||
|
(lambda (a)
|
||
|
(gnus-sortable-date (gnus-header-date a)))))
|
||
|
;; Then sort by subject string ignoring `Re:'.
|
||
|
;; If case-fold-search is non-nil, case of letters is ignored.
|
||
|
(gnus-keysort-headers
|
||
|
(function string-lessp)
|
||
|
(function
|
||
|
(lambda (a)
|
||
|
(if case-fold-search
|
||
|
(downcase (gnus-simplify-subject (gnus-header-subject a) t))
|
||
|
(gnus-simplify-subject (gnus-header-subject a) t)))))
|
||
|
))
|
||
|
)
|
||
|
;; highlighting, menus, and subscribing in GNUS
|
||
|
(add-hook 'gnus-startup-hook
|
||
|
#'(lambda ()
|
||
|
(setq gnus-subscribe-newsgroup-method
|
||
|
#'(lambda (newsgroup)
|
||
|
(gnus-subscribe-newsgroup newsgroup)
|
||
|
(gnus-kill-newsgroup newsgroup)))
|
||
|
(setq gnus-use-generic-from t)
|
||
|
;; highlighting and menu in GNUS
|
||
|
(if (or (and (= emacs-major-version 19) (> emacs-minor-version 29))
|
||
|
(> emacs-major-version 19))
|
||
|
(progn
|
||
|
(setq gnus-visual '(highlight menu))
|
||
|
(setq gnus-group-highlight
|
||
|
'(;; News.
|
||
|
((and (> unread 100) (not mailp)) . gnus-summary-high-ticked-face)
|
||
|
((and (> unread 0) (not mailp)) . gnus-summary-high-read-face)
|
||
|
((and (= unread 0) (not mailp)) . gnus-summary-high-ancient-face)
|
||
|
((not mailp) . gnus-summary-normal-ancient-face)
|
||
|
;; Mail.
|
||
|
((and (= unread 0) (eq level 1)) . gnus-group-mail-1-empty-face)
|
||
|
((eq level 1) . gnus-group-mail-1-face)
|
||
|
((and (= unread 0) (eq level 2)) . gnus-group-mail-2-empty-face)
|
||
|
((eq level 2) . gnus-group-mail-2-face)
|
||
|
((and (= unread 0) (eq level 3)) . gnus-group-mail-3-empty-face)
|
||
|
((eq level 3) . gnus-group-mail-3-face)
|
||
|
((= unread 0) . gnus-group-mail-low-empty-face)
|
||
|
(t . gnus-group-mail-low-face)))
|
||
|
)))
|
||
|
)
|
||
|
;;
|
||
|
;; Common to all C modes
|
||
|
;; ---------------------
|
||
|
;(autoload 'hideshowvis-enable "hideshowvis" "Highlight foldable regions")
|
||
|
;(add-hook 'c-mode-common-hook
|
||
|
; #'(lambda () (c-set-style "linux")
|
||
|
; (c-set-offset 'case-label 4)
|
||
|
; (setq c-basic-offset 4)))
|
||
|
|
||
|
;;
|
||
|
;; Auto fill mode
|
||
|
;; --------------
|
||
|
(add-hook 'text-mode-hook 'turn-on-auto-fill)
|
||
|
;;
|
||
|
;; Fill-column
|
||
|
;; -----------
|
||
|
;; Fill-column ist hier auf 78 Charakter gesetzt, nach Wunsch "andern!
|
||
|
(setq-default fill-column 78)
|
||
|
(add-hook 'TeX-mode-hook #'(lambda () (setq fill-column 78)))
|
||
|
;;
|
||
|
;; AUC-TeX
|
||
|
;; ----------------------------
|
||
|
(if (boundp 'AUCTeX-version)
|
||
|
(progn
|
||
|
(let* ((version (split-string AUCTeX-version "\\."))
|
||
|
(major (string-to-number (car version)))
|
||
|
(minor (string-to-number (car (cdr version)))))
|
||
|
(if (or (> major 11) (and (eq major 11) (>= minor 86)))
|
||
|
(custom-set-default 'TeX-master nil)
|
||
|
(setq-default TeX-master nil)))
|
||
|
(if (and window-system (featurep 'font-lock))
|
||
|
(progn
|
||
|
(add-hook 'latex-mode-hook 'turn-on-font-lock)
|
||
|
(if (boundp 'AUCTeX-version)
|
||
|
(progn
|
||
|
(add-hook 'LaTeX-mode-hook 'turn-on-font-lock)
|
||
|
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
|
||
|
(add-hook 'after-init-hook #'(lambda () (load "font-latex" nil t)))))))
|
||
|
))
|
||
|
|
||
|
;;
|
||
|
;; Brace macros
|
||
|
;; ------------
|
||
|
(defun TeX-Inserting (sta stb stc)
|
||
|
(if (= (preceding-char) sta )
|
||
|
(insert stb)
|
||
|
(progn (insert stc) (backward-char 1))))
|
||
|
(defun TeX-schweif () (interactive "*") (TeX-Inserting ?\\ "{" "{}"))
|
||
|
(defun TeX-rundekl () (interactive "*") (TeX-Inserting ?\\ "(" "()"))
|
||
|
(defun TeX-eckigek () (interactive "*") (TeX-Inserting ?\\ "[" "[]"))
|
||
|
(defun TeX-exponen () (interactive "*") (TeX-Inserting ?\\ "^" "^{}"))
|
||
|
(defun TeX-subscri () (interactive "*") (TeX-Inserting ?\\ "_" "_{}"))
|
||
|
(defun TeX-dollarm () (interactive "*") (TeX-Inserting ?\\ "$" "$$"))
|
||
|
(defun TeX-REVbbox () (interactive "*") (TeX-Inserting ?\\ "bbox{" "\\bbox{}"))
|
||
|
(add-hook 'LaTeX-mode-hook
|
||
|
#'(lambda ()
|
||
|
;; Uncomment this for automatic bracket closing
|
||
|
;; Begin bracket closing
|
||
|
; (local-set-key "{" 'TeX-schweif)
|
||
|
; (local-set-key "(" 'TeX-rundekl)
|
||
|
; (local-set-key "[" 'TeX-eckigek)
|
||
|
; (local-set-key "^" 'TeX-exponen)
|
||
|
; (local-set-key "_" 'TeX-subscri)
|
||
|
; (local-set-key "$" 'TeX-dollarm)
|
||
|
; (local-set-key "\C-b" 'TeX-REVbbox)
|
||
|
;;
|
||
|
;; It's german:
|
||
|
;; Deutsche Tastatur im LaTeX-German-Style/Babel-Class
|
||
|
;; ---------------------------------------------------
|
||
|
;; Aktivierung mit `M-x german-mode' -> man dr"ucke
|
||
|
;; *nacheinander* <ComposeCharacter>, <">, <a> und staune!
|
||
|
;; ACHTUNG: Bei grossen Files sehr LANGSAM beim Abspeichern
|
||
|
;; das ist vom Prinzip her bedingt! Hier gibt's keinen Support!
|
||
|
; (require 'ger-keys)
|
||
|
;; End bracket closing
|
||
|
;; For ISO Latin standard: Macro out of `ger-keys'
|
||
|
;; ger-keys should be loaded
|
||
|
; (german-mode)
|
||
|
;; For german style usage:
|
||
|
; (modify-syntax-entry ?" "w")
|
||
|
; (local-set-key "\"" 'self-insert-command)
|
||
|
;; Deutsche Belegung amerikanischer Tastaturen: aus `ger-keys'
|
||
|
; (german-keyboard)
|
||
|
))
|
||
|
;;
|
||
|
;; Provide some usefull function keys
|
||
|
;; ----------------------------------
|
||
|
;; Have a look on /usr/share/emacs/site-lisp/function-keys.el
|
||
|
;; Extensions or changes of the keymap
|
||
|
;; original definitions will found in loaddefs.el.
|
||
|
;;(global-set-key [escape] [?\e]) ; Escape
|
||
|
;;
|
||
|
(global-set-key [M-left] 'backward-word)
|
||
|
(global-set-key [M-right] 'forward-word)
|
||
|
(global-set-key [M-up] 'beginning-of-line)
|
||
|
(global-set-key [M-down] 'end-of-line)
|
||
|
;;
|
||
|
; (global-set-key [C-left] 'backward-char)
|
||
|
; (global-set-key [C-right] 'forward-char)
|
||
|
; (global-set-key [C-up] 'previous-line)
|
||
|
; (global-set-key [C-down] 'next-line)
|
||
|
;;
|
||
|
; (global-set-key [S-left] 'backward-char)
|
||
|
; (global-set-key [S-right] 'forward-char)
|
||
|
; (global-set-key [S-up] 'previous-line)
|
||
|
; (global-set-key [S-down] 'next-line)
|
||
|
;;
|
||
|
(global-set-key [find] 'isearch-forward) ; Search
|
||
|
(global-set-key [select] 'set-mark-command) ; Mark
|
||
|
;;
|
||
|
(global-set-key [S-next] 'end-of-buffer)
|
||
|
(global-set-key [S-prior] 'beginning-of-buffer)
|
||
|
(global-set-key [S-find] 'find-file)
|
||
|
(global-set-key [S-select] 'switch-to-buffer)
|
||
|
(global-set-key [S-insert] 'insert-file)
|
||
|
;;
|
||
|
(if (and (= emacs-major-version 19) (= emacs-minor-version 29))
|
||
|
(define-key key-translation-map [f1] nil)) ; 19.29+
|
||
|
(global-set-key [S-f1] 'find-file)
|
||
|
(global-set-key [M-f1] 'find-file)
|
||
|
(global-set-key [f1] 'help-for-help) ; `Help'
|
||
|
(global-set-key [pause] 'toggle-read-only) ; `HoldScreen'
|
||
|
;;
|
||
|
(if (global-key-binding [f2])
|
||
|
(progn
|
||
|
(global-set-key [S-f2] 'split-window)
|
||
|
(global-set-key [M-f2] 'split-window))
|
||
|
(global-set-key [f2] 'split-window))
|
||
|
(if (global-key-binding [f2])
|
||
|
(progn
|
||
|
(global-set-key [S-f2] 'split-window)
|
||
|
(global-set-key [M-f2] 'split-window))
|
||
|
(global-set-key [f2] 'split-window))
|
||
|
(if (global-key-binding [f3])
|
||
|
(progn
|
||
|
(global-set-key [S-f3] 'isearch-forward)
|
||
|
(global-set-key [M-f3] 'isearch-forward))
|
||
|
(global-set-key [f3] 'isearch-forward))
|
||
|
(if (global-key-binding [f4])
|
||
|
(progn
|
||
|
(global-set-key [S-f4] 'query-replace-regexp)
|
||
|
(global-set-key [M-f4] 'query-replace-regexp))
|
||
|
(global-set-key [f4] 'query-replace-regexp))
|
||
|
(if (global-key-binding [f5])
|
||
|
(progn
|
||
|
(global-set-key [S-f5] 'save-buffer)
|
||
|
(global-set-key [M-f5] 'save-buffer))
|
||
|
(global-set-key [f5] 'save-buffer))
|
||
|
(if (global-key-binding [f6])
|
||
|
(progn
|
||
|
(global-set-key [S-f6] 'find-file)
|
||
|
(global-set-key [M-f6] 'find-file))
|
||
|
(global-set-key [f6] 'find-file))
|
||
|
(if (global-key-binding [f7])
|
||
|
(progn
|
||
|
(global-set-key [S-f7] 'buffer-menu)
|
||
|
(global-set-key [M-f7] 'buffer-menu))
|
||
|
(global-set-key [f7] 'buffer-menu))
|
||
|
(if (global-key-binding [f8])
|
||
|
(progn
|
||
|
(global-set-key [S-f8] 'repeat-complex-command)
|
||
|
(global-set-key [M-f8] 'repeat-complex-command))
|
||
|
(global-set-key [f8] 'repeat-complex-command))
|
||
|
(if (global-key-binding [f9])
|
||
|
(progn
|
||
|
(global-set-key [S-f9] 'execute-extended-command)
|
||
|
(global-set-key [M-f9] 'execute-extended-command))
|
||
|
(global-set-key [f9] 'execute-extended-command))
|
||
|
(if (global-key-binding [f10])
|
||
|
(progn
|
||
|
(global-set-key [S-f10] 'eval-expression)
|
||
|
(global-set-key [M-f10] 'eval-expression))
|
||
|
(global-set-key [f10] 'eval-expression))
|
||
|
;;
|
||
|
;;(global-set-key [f11] [?\e]) ; Escape
|
||
|
(global-set-key [f11] esc-map) ; Escape
|
||
|
;;
|
||
|
(global-set-key [f12] 'backward-delete-char-untabify) ; Backspace
|
||
|
;;
|
||
|
;; DEC keyboard: f13 up to f20
|
||
|
(global-set-key [f13] 'newline) ; Linefeed
|
||
|
(global-set-key [linefeed] 'newline) ; Linefeed
|
||
|
;;
|
||
|
(global-set-key [f14] 'switch-to-buffer)
|
||
|
;;
|
||
|
;; Emacs original key binding
|
||
|
;;
|
||
|
; (global-set-key [home] 'beginning-of-buffer) ;
|
||
|
; (global-set-key [end] 'end-of-buffer) ;
|
||
|
;;
|
||
|
(global-set-key [help] 'info) ; Help
|
||
|
(global-set-key [M-help] 'repeat-complex-command) ; Redo
|
||
|
(global-set-key [menu] 'execute-extended-command) ; Do
|
||
|
(global-set-key [M-menu] 'eval-expression) ; eval
|
||
|
;;
|
||
|
(global-set-key [f17] 'beginning-of-buffer)
|
||
|
(global-set-key [f18] 'end-of-buffer)
|
||
|
(global-set-key [f19] 'save-buffer)
|
||
|
(global-set-key [f20] 'find-file)
|
||
|
;;
|
||
|
;; Translate `C-h' to DEL.
|
||
|
; (keyboard-translate ?\C-h ?\C-?)
|
||
|
;;
|
||
|
;; Translate DEL to `C-h'.
|
||
|
; (keyboard-translate ?\C-? ?\C-h)
|
||
|
;;
|
||
|
;; Use minibuffer for aking GPG passphrase
|
||
|
;;(setq epa-pinentry-mode 'loopback)
|
||
|
;;(pinentry-start)
|
||
|
;;
|
||
|
;;;;;;;;;;
|
||
|
;; the end
|