X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=df7137afd6c47e1740621fabfff6fd5d6fd86250;hb=5bcb759b2420ab6720c9e6e04e5d5de20b3b2bfa;hp=9bba0512e6b5d780be7b4ea9d54eabcb113dbbd3;hpb=61b2714d399e0ae3274dc5b86f85225a5767b530;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index 9bba051..df7137a 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -96,7 +96,7 @@ Stop auto save (setq auto-save-default nil) ;; restore last session - (desktop-save-mode t) + ;; (desktop-save-mode t) #+END_SRC * Package Management Tools @@ -1929,27 +1929,26 @@ to call =compilation= interactively. #+END_SRC ** Compile - Set the environments vairables in compilation mode - #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (use-package compile :commands compile :config (setq compilation-environment (cons "LC_ALL=C" compilation-environment))) + ;; super-r to compile + (with-eval-after-load "compile" + (define-key compilation-mode-map (kbd "C-o") nil) + (define-key compilation-mode-map (kbd "n") 'compilation-next-error) + (define-key compilation-mode-map (kbd "p") 'compilation-previous-error) + (define-key compilation-mode-map (kbd "r") #'recompile)) #+END_SRC ** Auto-Insert - -Enable auto-insert mode - +*** Enable auto-insert mode #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (auto-insert-mode t) (setq auto-insert-query nil) - #+END_SRC *** C++ Auto Insert @@ -1998,20 +1997,99 @@ Enable auto-insert mode #+END_SRC *** Perl Auto Insert - Refer [[https://www.emacswiki.org/emacs/AutoInsertMode][AutoInsertMode]] Wiki - #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (eval-after-load 'autoinsert '(define-auto-insert '("\\.pl\\'" . "Perl skeleton") '( - "Description: " + "Empty" "#!/usr/bin/perl -w" \n \n - "use strict;" \n \n + "use strict;" > \n \n + > _ ))) +#+END_SRC +*** Python template +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (eval-after-load 'autoinsert + '(define-auto-insert '("\\.\\(py\\)\\'" . "Python skeleton") + '( + "Empty" + "#import os,sys" \n + \n \n + ))) +#+END_SRC + +*** Elisp +Emacs lisp auto-insert, based on the default module in =autoinsert.el=, but replace =completing-read= as +=completing-read-ido-ubiquitous= to fix the edge case of that =ido= cannot handle. +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (eval-after-load 'autoinsert + '(define-auto-insert '("\\.el\\'" . "my Emacs Lisp header") + '( + "Short description: " + ";;; " (file-name-nondirectory (buffer-file-name)) " --- " str + (make-string (max 2 (- 80 (current-column) 27)) ?\s) + "-*- lexical-binding: t; -*-" '(setq lexical-binding t) + "\n + ;; Copyright (C) " (format-time-string "%Y") " " + (getenv "ORGANIZATION") | (progn user-full-name) " + + ;; Author: " (user-full-name) + '(if (search-backward "&" (line-beginning-position) t) + (replace-match (capitalize (user-login-name)) t t)) + '(end-of-line 1) " <" (progn user-mail-address) "> + ;; Keywords: " + '(require 'finder) + ;;'(setq v1 (apply 'vector (mapcar 'car finder-known-keywords))) + '(setq v1 (mapcar (lambda (x) (list (symbol-name (car x)))) + finder-known-keywords) + v2 (mapconcat (lambda (x) (format "%12s: %s" (car x) (cdr x))) + finder-known-keywords + "\n")) + ((let ((minibuffer-help-form v2)) + (completing-read-ido-ubiquitous "Keyword, C-h: " v1 nil t)) + str ", ") & -2 " + + \;; This program is free software; you can redistribute it and/or modify + \;; it under the terms of the GNU General Public License as published by + \;; the Free Software Foundation, either version 3 of the License, or + \;; (at your option) any later version. + + \;; This program 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 General Public License for more details. + + \;; You should have received a copy of the GNU General Public License + \;; along with this program. If not, see . + + \;;; Commentary: + + \;; " _ " + + \;;; Code: + + + \(provide '" + (file-name-base) + ") + \;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n"))) +#+END_SRC + +*** Org file template +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (eval-after-load 'autoinsert + '(define-auto-insert '("\\.\\(org\\)\\'" . "Org-mode skeleton") + '( + "title: " + "#+TITLE: " str (make-string 30 ?\s) > \n + "#+AUTHOR: Peng Li\n" + "#+EMAIL: seudut@gmail.com\n" + "#+DATE: " (shell-command-to-string "echo -n $(date +%Y-%m-%d)") > \n + > \n + > _))) #+END_SRC ** Completion @@ -2192,3 +2270,6 @@ See [[https://www.emacswiki.org/emacs/GnusWindowLayout][GnusWindowLayout]] - passion - vision - mission +* TODO Convert ASCII to key +map =function-key-map= [[http://academic.evergreen.edu/projects/biophysics/technotes/program/ascii_ctrl.htm][ascii_ctrl]] +new file =C-x C-f C-f=