X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=elisp.git;a=blobdiff_plain;f=emacs.el;h=a3e138646460eb8c1647c40fc4fac5aef551fff5;hp=64500c7c36a419a0ccacdbe9698882cc2dc99884;hb=a4beb5269fa0161160fb23997d9d7c9153184c1a;hpb=db114167e8e2c85fe63ab00fb9472df35666b10b diff --git a/emacs.el b/emacs.el index 64500c7..a3e1386 100644 --- a/emacs.el +++ b/emacs.el @@ -48,7 +48,8 @@ (menu-bar-mode -1) ;; Nor fringes -(when (functionp 'fringe-mode) (fringe-mode '(0 . 0))) +;; (when (functionp 'fringe-mode) (fringe-mode '(0 . 0))) +;; (when (functionp 'fringe-mode) (fringe-mode '(0 . 1))) ;; And I do not like scrollbar neither (when (functionp 'scroll-bar-mode) (scroll-bar-mode -1)) @@ -64,7 +65,7 @@ ;; use colorization for all modes (global-font-lock-mode t) -(setq font-lock-maximum-decoration 2 +(setq font-lock-maximum-decoration 3 ;;'((latex-mode . 2) (t . 2)) ) @@ -75,6 +76,10 @@ (setq savehist-file "~/private/emacs/savehist") (when (functionp 'savehist-mode) (savehist-mode 1)) +;; And allow minibuffer recursion +(setq enable-recursive-minibuffers t) +(minibuffer-depth-indicate-mode 1) + ;; I do not like tooltips (when (functionp 'tooltip-mode) (tooltip-mode nil)) @@ -125,8 +130,12 @@ load-warning buffer in case of failure." ;; make emacs use the clipboard so that copy/paste works for other ;; x-programs. I have no clue how all that clipboard thing works. + ;; (setq x-select-enable-clipboard t) ;; (setq interprogram-paste-function 'x-cut-buffer-or-selection-value) +;; (setq x-select-enable-primary t) +;; (setq x-select-enable-clipboard t) +;; (global-set-key "\C-y" 'clipboard-yank) (setq @@ -210,6 +219,12 @@ load-warning buffer in case of failure." mc-use-default-recipients t ;; browse-url-new-window-flag t + + ;; I do not like compilation to automatically split the active window + ;; vertically, even when the said window is very wide + split-height-threshold 0 + split-width-threshold nil + ) ;; The backups @@ -225,8 +240,9 @@ load-warning buffer in case of failure." backup-by-copying-when-linked t ) -(setq - user-emacs-directory "~/misc/emacs.d/") +(setq tramp-backup-directory-alist backup-directory-alist) + +(setq user-emacs-directory "~/misc/emacs.d/") (setq abbrev-file-name (concat user-emacs-directory "abbrev_defs") @@ -285,10 +301,12 @@ load-warning buffer in case of failure." ;; What modes for what file extentions (add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode)) +(require 'org-table) + (add-to-list 'auto-mode-alist '("\\.txt\\'" . (lambda() (text-mode) (orgtbl-mode) - (auto-fill-mode) + ;; (auto-fill-mode) (flyspell-mode)))) (add-hook 'c++-mode-hook 'flyspell-prog-mode) @@ -336,7 +354,7 @@ load-warning buffer in case of failure." )) ;; "tool" bar? Are you kidding? -(when (boundp 'tool-bar-mode) (tool-bar-mode -1)) +(when (fboundp 'tool-bar-mode) (tool-bar-mode -1)) ;; ;; If my own letter icon is here, use it and change its color ;; (when (file-exists-p "~/local/share/emacs/letter.xbm") @@ -367,9 +385,9 @@ load-warning buffer in case of failure." (info-title-2 :foreground "green") (cperl-array-face :background "gray90" :foreground "blue" :weight 'bold) (cperl-hash-face :background "gray90" :foreground "purple" :weight 'bold) - (diff-added-face :foreground "blue" :weight 'bold) - (diff-changed-face :foreground "green" :weight 'bold) - (diff-removed-face :foreground "red" :weight 'bold) + (diff-added :background "gray90" :foreground "green4" :weight 'bold) + (diff-removed :background "gray90" :foreground "red2" :weight 'bold) + (diff-changed :background "gray90" :foreground "blue" :weight 'bold) (diff-file-header-face :background "white" :foreground "black" :weight 'bold) (diff-header-face :background "white" :foreground "black") @@ -387,8 +405,8 @@ load-warning buffer in case of failure." (flyspell-incorrect-face :foreground "red2") (flyspell-duplicate-face :foreground "OrangeRed2") (hl-line :background "white") - (sh-heredoc :foreground "blue") - (sh-heredoc-face :foreground "blue") + (sh-heredoc :foreground "black" :background "#fff0f0") + (sh-heredoc-face :foreground "black" :background "#fff0f0") (font-lock-keyword-face :foreground "blue") (highlight :background "darkseagreen3") (isearch :background "orange" :foreground "black") @@ -422,14 +440,17 @@ load-warning buffer in case of failure." (ff/configure-faces '( - (escape-glyph :foreground "#c0c0c0" :weight 'bold) + ;; (escape-glyph :foreground "#c0c0c0" :weight 'bold) + + (escape-glyph :foreground "green3" :weight 'bold) (default :background "gray90" :foreground "black") (cperl-array-face :background "gray90" :foreground "blue" :weight 'bold) (cperl-hash-face :background "gray90" :foreground "purple" :weight 'bold) (message-cited-text :foreground "red4") + (diff-mode :background "gray90" :weight 'bold) (diff-added :background "gray90" :foreground "green4" :weight 'bold) (diff-removed :background "gray90" :foreground "red2" :weight 'bold) - (diff-changed :background "gray90" :foreground "blue") + (diff-changed :background "gray90" :foreground "blue" :weight 'bold) (diff-file-header :background "white" :foreground "black" :weight 'bold) (diff-header :background "white" :foreground "black") @@ -443,9 +464,9 @@ load-warning buffer in case of failure." (flyspell-incorrect-face :foreground "red2") (flyspell-duplicate-face :foreground "OrangeRed2") (hl-line :background "white") + (sh-heredoc :foreground "black" :background "#fff0f0") + (sh-heredoc-face :foreground "black" :background "#fff0f0") (header-line :background "gray65") - (sh-heredoc :foreground "darkorange3") - (sh-heredoc-face :foreground "darkorange3") (highlight :background "turquoise") (message-cited-text-face :foreground "firebrick") (isearch :background "yellow" :foreground "black") @@ -457,19 +478,18 @@ load-warning buffer in case of failure." (trailing-whitespace :background "gray65") (cursor :inverse-video t) (enotes/list-title-face :foreground "blue" :weight 'bold) - (mode-line :background "#9090f0" :foreground "black" :box nil + (mode-line :background "#b0b0ff" :foreground "black" :box nil :inverse-video nil) (header-line :background "cornflowerblue" :foreground "black" :box nil :inverse-video nil) - (mode-line-inactive :background "#606080" :foreground "black" :box nil + (mode-line-inactive :background "gray80" :foreground "black" :box nil :inverse-video nil) ;; (fringe :background "black" :foreground "gray90") - (fringe :background "gray65") - (tex-verbatim :family "courrier") + (fringe :background "gray80") (ff/date-info-face :foreground "white" :weight 'bold) (ff/mail-alarm-face :foreground "white" :background "red2") ;; (alarm-vc-face :foreground "black" :background "yellow" :weight 'normal) - )) + )) ) ;; When we are root, put the modeline in red @@ -480,6 +500,19 @@ load-warning buffer in case of failure." :inverse-video nil)) )) +;; Why should I have to do this? +(add-hook 'sh-mode-hook + (lambda () + (set-face-attribute 'sh-heredoc nil + :foreground "#604000" + :background "white" + :italic t) + (set-face-attribute 'sh-heredoc-face nil + :foreground "#604000" + :background "white" + :italic t) + )) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Move the window on the buffer without moving the cursor ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -578,31 +611,6 @@ load-warning buffer in case of failure." ;; Counting various entities in text ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun ff/count-char () - "Prints the number of characters between the first previous \"--\" -and the firt next \"--\"." - (interactive) - (let ((from (save-excursion (re-search-backward "^--$\\|BEGIN_COUNT" nil t))) - (to (save-excursion (re-search-forward "^--$\\|END_COUNT" nil t)))) - (if (and to from) (message "%d character(s)" (- to from 6)) - (error "Can not find the -- delimiters")))) - -(defun ff/count-words () - "Print number of words between the first previous \"--\" and the -firt next \"--\"." - (interactive) - (let ((from (save-excursion (re-search-backward "^--$" nil t))) - (to (save-excursion (re-search-forward "^--$" nil t)))) - (if (and to from) - (save-excursion - (goto-char from) - (let ((count 0)) - (while (< (point) to) - (re-search-forward "\\w+\\W+") - (setq count (1+ count))) - (message "%d word(s)" count))) - (error "Can not find the -- delimiters")))) - (defun ff/word-occurences () "Display in a new buffer the list of words sorted by number of occurrences " @@ -663,8 +671,8 @@ occurrences " (load "ps-print") (setq ps-print-color-p nil - ;; ps-paper-type 'letter - ps-paper-type 'a4 + ps-paper-type 'letter + ;; ps-paper-type 'a4 ;; ps-top-margin (* 1.75 56.692) ;; ps-left-margin 56.692 ;; ps-bottom-margin 56.692 @@ -778,7 +786,7 @@ printer." (/ (* 100 (string-to-number (ff/file-first-line (format "%s/%s_now" ff/battery-dir prefix)))) (string-to-number (ff/file-first-line (format "%s/%s_full" ff/battery-dir prefix)))) (error -1)) - ) + ) (defun ff/laptop-info-string () (interactive) (condition-case nil @@ -809,8 +817,10 @@ printer." (ff/battery-percent "energy")))) ((string= battery-status "Discharging") - (format "B%d%%" (max (ff/battery-percent "charge") - (ff/battery-percent "energy")))) + (let* ((c (max (ff/battery-percent "charge") + (ff/battery-percent "energy"))) + (s (format "B%d%%" c))) + (if (>= c 20) s (propertize s 'face 'font-lock-warning-face)))) (t battery-status) @@ -910,7 +920,7 @@ printer." load ,(if (ff/laptop-info-string) - '(concat " /" (ff/laptop-info-string) "/")) + '(concat " " (ff/laptop-info-string))) ) @@ -1111,6 +1121,8 @@ goback argument, go back where we were." ;; Failsafe version if we can't load bbdb (defun ff/explicit-name (email) email) +(load "vc-git") + (when (ff/load-or-alert "bbdb") (setq @@ -1136,7 +1148,7 @@ goback argument, go back where we were." "The face to display known mail identities.") (defface ff/unknown-address-face - '((t (:foreground "red4"))) + '((t (:foreground "gray50"))) "The face to display unknown mail identities.") (defun ff/explicit-name (email) @@ -1174,6 +1186,8 @@ ff/known-address-face is used." ) (ff/configure-faces '((ff/robot-address-face :foreground "green4") + (ff/personal-address-face :foreground "dark magenta" + :weight 'bold) (ff/important-address-face :foreground "blue2" ;; :underline t ;; :background "white" @@ -1182,7 +1196,6 @@ ff/known-address-face is used." ;; :slant 'italic ))) - ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1197,18 +1210,18 @@ ff/known-address-face is used." ) (defface ff/secure-date - '((t (:background "gold" :weight bold))) + '((t (:background "white" :weight bold))) "The face to display the dates in the modeline.") (defun ff/secure-note-add () (interactive) - (find-file "~/private/secure-notes.gpg") + (find-file ff/secure-note-file) ;; Adds a new entry (i.e. date and a bunch of empty lines) (goto-char (point-min)) (insert "-- " (format-time-string "%Y %b %d %H:%M:%S" (current-time)) - " ------------------------------------------------\n\n") + " --\n\n") (previous-line 1) ;; Colorizes the dates @@ -1216,10 +1229,11 @@ ff/known-address-face is used." (save-excursion (goto-char (point-min)) (while (re-search-forward - "^-+ [0-9]+ [a-z]+ [0-9]+ [0-9]+:[0-9]+:[0-9]+.+$" + "^-- [0-9]+ [a-z]+ [0-9]+ [0-9]+:[0-9]+:[0-9]+ -+$" nil t) (add-text-properties - (match-beginning 0) (match-end 0) '(face ff/secure-date)))) + (match-beginning 0) (1+ (match-end 0)) + '(face ff/secure-date rear-nonsticky t)))) (set-buffer-modified-p nil) (setq buffer-undo-list nil) @@ -1402,21 +1416,20 @@ universal argument starts xfig even if the .fig does not exist" (insert "%% -*- mode: latex; mode: reftex; mode: flyspell; coding: utf-8; tex-command: \"pdflatex.sh\" -*- \\documentclass[12pt]{article} -\\usepackage[a4paper,top=2.5cm,bottom=2cm,left=1.5cm,right=1.5cm]{geometry} +\\usepackage[a4paper,top=2.5cm,bottom=2cm,left=2.5cm,right=2.5cm]{geometry} \\usepackage[utf8]{inputenc} \\usepackage{amsmath} \\usepackage{amssymb} -\\usepackage{hyperref} +\\usepackage[pdftex]{graphicx} +\\usepackage{microtype} +\\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref} -%% \\usepackage[pdftex]{graphicx} -%% \\usepackage{eurosym} +\\setlength{\\parindent}{0cm} +\\setlength{\\parskip}{12pt} +\\renewcommand{\\baselinestretch}{1.3} -\\hypersetup{ - colorlinks=true, - linkcolor=blue, - urlcolor=blue, - citecolor=blue -} +\\def\\argmax{\\operatornamewithlimits{argmax}} +\\def\\argmin{\\operatornamewithlimits{argmin}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Sans serif fonts @@ -1426,12 +1439,16 @@ universal argument starts xfig even if the .fig does not exist" %% \\renewcommand{\\ttdefault}{pcr} %% \\renewcommand*\\familydefault{\\sfdefault} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% \\def\\argmax{\\operatornamewithlimits{argmax}} -%% \\def\\argmin{\\operatornamewithlimits{argmin}} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% \\setlength{\\parindent}{0cm} -%% \\setlength{\\parskip}{12pt} -%% \\renewcommand{\\baselinestretch}{1.3} +%% The \\todo command +\\newcounter{nbdrafts} +\\setcounter{nbdrafts}{0} +\\makeatletter +\\newcommand{\\checknbdrafts}{ +\\ifnum \\thenbdrafts > 0 +\\@latex@warning@no@line{*WARNING* The document contains \\thenbdrafts \\space draft note(s)} +\\fi} +\\newcommand{\\todo}[1]{\\addtocounter{nbdrafts}{1}{\\color{red} #1}} +\\makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \\begin{document} @@ -1691,21 +1708,8 @@ and refilling all the paragraphs." (define-key latex-mode-map [(control c) (control a)] 'align-current) (define-key latex-mode-map [(control end)] 'tex-close-latex-block) (define-key latex-mode-map [(control tab)] 'ispell-complete-word) - ;; Strange that I have to specify that - ;; (setq paragraph-separate "[% \f]*$") - ;; (setq paragraph-separate - ;; (concat "[%]*\\|[\f%]\\|[ \t]*\\($\\|" - ;; "\\\\[][]\\|" - ;; "\\\\" (regexp-opt (append - ;; (mapcar 'car latex-section-alist) - ;; '("begin" "label" "end" )) t) - ;; "\\>\\|\\\\\\(" (regexp-opt '("item" "bibitem" "newline" - ;; "noindent" "newpage" "footnote" - ;; "marginpar" "parbox" "caption")) - ;; "\\|\\$\\$\\|[a-z]*\\(space\\|skip\\|page[a-z]*\\)" - ;; "\\>\\)[ \t]*\\($\\|%\\)\\)")) - ;; (flyspell-mode 1) - ;; (reftex-mode 1) + (copy-face 'default 'tex-verbatim) + ;; (ff/configure-faces '((tex-verbatim :background "gray95"))) )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1804,7 +1808,7 @@ a file in /tmp" (when (string-match "\\.sh$" filename) (sh-mode) - (insert "#!/bin/bash\n\nset -e\n\n") + (insert "#!/bin/bash\n\nset -e\nset -o pipefail\n\n") (save-excursion (ff/add-copyrights)) ) @@ -1853,6 +1857,17 @@ a file in /tmp" (add-to-list 'find-file-not-found-functions 'ff/start-file) (add-to-list 'find-file-not-found-hooks 'ff/start-file)) +(when (>= emacs-major-version 24) + (define-obsolete-function-alias 'make-local-hook 'ignore "21.1") + (setq send-mail-function 'sendmail-send-it) ;; emacs 24.x stuff + + (custom-set-faces + '(diff-added ((default (:background "gray90" :foreground "green4" :weight bold)))) + '(diff-removed ((default (:background "gray90" :foreground "red2" :weight bold)))) + '(diff-changed ((default (:background "gray90" :foreground "blue" :weight bold)))) + ) + ) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-key global-map [f8] 'ff-find-other-file) @@ -2076,6 +2091,9 @@ This may be a useful alternative binding for \\[delete-other-windows] (setq longlines-show-hard-newlines t longlines-auto-wrap t ;; longlines-show-effect #("|\n" 0 2 (face escape-glyph)) + ;; longlines-show-effect #("∴\n" 0 2 (face escape-glyph)) + longlines-show-effect #("•\n" 0 2 (face escape-glyph)) + ;; longlines-show-effect #("↵\n" 0 2 (face escape-glyph)) ) ;; (defun ff/auto-longlines () @@ -2218,30 +2236,26 @@ next one. With universal argument, kill all killable buffers." (load "recentf") -(setq recentf-exclude - (append recentf-exclude - '("enotes$" "secure-notes$" "media-playlists$" - "bbdb$" - "svn-commit.tmp$" ".git/COMMIT_EDITMSG$" - "\.bbl$" "\.aux$" "\.toc$")) +;; If we just check for file-symlink-p, everytime we start emacs it +;; will check all the remote files listed in recentf-list, so we check +;; that they are not remote first +(defun ff/file-not-remote-but-symlink (filename) + (and (not (file-remote-p filename)) (file-symlink-p filename))) + +(setq recentf-exclude (append recentf-exclude + '( + ff/file-not-remote-but-symlink + "enotes$" "secure-notes$" "media-playlists$" + "bbdb$" + "svn-commit.tmp$" ".git/COMMIT_EDITMSG$" + "\.bbl$" "\.aux$" "\.toc$" + )) recentf-max-saved-items 1000 recentf-save-file "~/private/emacs/recentf" ) (when (boundp 'recentf-keep) (add-to-list 'recentf-keep 'file-remote-p)) -;; Removes the link if we add the file itself (I am fed up with -;; duplicates because of vc-follow-symlinks) - -(defadvice recentf-add-file (before ff/remove-links (filename) activate) - ;; If we are adding a filename corresponding to the last link we - ;; have added, remove the latter - (when (and recentf-list - (file-symlink-p (car recentf-list)) - (string= filename (file-chase-links filename))) - (setq recentf-list (cdr recentf-list)) - )) - (recentf-mode 1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2277,6 +2291,7 @@ next one. With universal argument, kill all killable buffers." media/mplayer/args '( "-framedrop" "-zoom" + "-cache" "512" "-subfont-osd-scale" "3" ;; "-stop-xscreensaver" ;; "-osdlevel" "3" @@ -2344,6 +2359,16 @@ proposes to visit them." ) ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; My script to automatically count the number of words and characters +;; between two markers + +(ff/load-or-alert "text-counters.el") + +;; Display them in the modeline when in text-mode + +(add-hook 'text-mode-hook 'tc/add-text-counters-in-modeline) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; A function to remove temporary alarm windows ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2390,8 +2415,10 @@ proposes to visit them." ) (defun ff/flyspell-mode (arg) (interactive "p") - (flyspell-mode) - (when flyspell-mode (flyspell-buffer))) + (if flyspell-mode (flyspell-mode -1) + (flyspell-mode 1) + (flyspell-buffer)) +) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; The fridge! @@ -2419,12 +2446,38 @@ with a time tag, and save this file" ) ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Let's be zen. Remove the modeline and fringes. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(setq ff/zen-original-setting nil) + +(defun ff/zen () (interactive) + (if ff/zen-original-setting + (setq mode-line-format (car ff/zen-original-setting) + fringe-mode (cdr ff/zen-original-setting) + ff/zen-original-setting nil) + (setq ff/zen-original-setting (cons mode-line-format fringe-mode) + mode-line-format nil + fringe-mode '(0 . 0)) + (delete-other-windows) + ) + (fringe-mode fringe-mode) + (if ff/zen-original-setting + (message "Zen mode") + (message "Cluttered mode")) + ) + +;; (define-key global-map [(control x) (x)] 'ff/zen) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; My own keymap ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq ff/map (make-sparse-keymap)) (define-key global-map [(control \`)] ff/map) +;;(define-key global-map [(control @)] ff/map) + (define-key esc-map "`" ff/map) (defun ff/git-status (&optional dir) (interactive) @@ -2456,6 +2509,7 @@ with a time tag, and save this file" (define-key ff/map [(control o)] 'selector/quick-pick-recent) (define-key ff/map "s" 'selector/quick-move-in-buffer) (define-key ff/map "S" 'selector/search-sentence) +(define-key ff/map "t" (lambda () (interactive) (find-file "~/private/TODO.txt"))) (define-key ff/map "h" 'ff/tidy-html) (define-key ff/map "c" 'ff/count-char) (define-key ff/map [(control p)] 'ff/print-to-file) @@ -2481,6 +2535,7 @@ with a time tag, and save this file" (define-key ff/map [?\C-3] 'ff/twin-horizontal-current-buffer) (define-key ff/map " " 'delete-trailing-whitespace) +(define-key ff/map [(control x)] 'ff/zen) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Hacks so that all keys are functionnal in xterm and through ssh. @@ -2493,27 +2548,27 @@ with a time tag, and save this file" ;; ugly. ;; (defun ff/yank-with-xclip (&optional arg) - ;; "Paste the content of the X clipboard with the xclip -;; command. Without ARG converts some of the '\\uxxxx' characters." - ;; (interactive "P") - ;; (with-temp-buffer - ;; (shell-command "xclip -o" t) - ;; (unless arg - ;; (mapc (lambda (x) (replace-string (concat "\\u" (car x)) (cdr x) nil (point-min) (point-max))) - ;; '(("fffd" . "??") - ;; ("2013" . "-") - ;; ("2014" . "--") - ;; ("2018" . "`") - ;; ("2019" . "'") - ;; ("201c" . "``") - ;; ("201d" . "''") - ;; ("2022" . "*") - ;; ("2026" . "...") - ;; ("20ac" . "EUR") - ;; ))) - ;; (kill-ring-save (point-min) (point-max))) - - ;; (yank)) + ;; "Paste the content of the X clipboard with the xclip + ;; command. Without ARG converts some of the '\\uxxxx' characters." + ;; (interactive "P") + ;; (with-temp-buffer + ;; (shell-command "xclip -o" t) + ;; (unless arg + ;; (mapc (lambda (x) (replace-string (concat "\\u" (car x)) (cdr x) nil (point-min) (point-max))) + ;; '(("fffd" . "??") + ;; ("2013" . "-") + ;; ("2014" . "--") + ;; ("2018" . "`") + ;; ("2019" . "'") + ;; ("201c" . "``") + ;; ("201d" . "''") + ;; ("2022" . "*") + ;; ("2026" . "...") + ;; ("20ac" . "EUR") + ;; ))) + ;; (kill-ring-save (point-min) (point-max))) + + ;; (yank)) ;; (define-key global-map [(meta y)] 'ff/yank-with-xclip)