;; ("\M-w" . save-buffer)
("e" . revert-buffer)
("s" . isearch-forward-regexp)
+ ("\M-s" . isearch-forward-regexp)
("r" . isearch-backward-regexp)
("." . isearch-forward-symbol-at-point)
("o" . occur)
(scheme . t)
(sh . t)
(sqlite . t)
- (js . t)))
+ (js . t)
+ (gnuplot . t)))
;; use current window for org source buffer editting
(setq org-src-window-setup 'current-window )
#+END_SRC
*** Perl
-
[[https://www.emacswiki.org/emacs/CPerlMode][CPerl mode]] has more features than =PerlMode= for perl programming. Alias this to =CPerlMode=
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(defalias 'perl-mode 'cperl-mode)
- ;(setq cperl-hairy t) ;; Turns on most of the CPerlMode options
+ (setq cperl-hairy t) ;; Turns on most of the CPerlMode options
(setq cperl-auto-newline t)
(setq cperl-highlight-variables-indiscriminately t)
;(setq cperl-indent-level 4)
'(lambda ()
(cperl-set-style "C++")))
- ;(require 'template)
- ;(template-initialize)
- ;(require 'perlnow)
-
+ (defalias 'perldoc 'cperl-perldoc)
#+END_SRC
- auto insert
(use-package compile
:commands compile
:config
- (setq compilation-environment (cons "LC_ALL=C" compilation-environment)))
+ (setq compilation-environment (cons "LC_ALL=C" compilation-environment))
+ (setq compilation-auto-jump-to-first-error t)
+ (setq compilation-auto-jump-to-next t)
+ (setq compilation-scroll-output 'first-error))
;; super-r to compile
(with-eval-after-load "compile"
#+END_SRC
*** C++ Auto Insert
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(eval-after-load 'autoinsert
'(define-auto-insert '("\\.cpp\\'" . "C++ skeleton")
'(
"return 1;\n"
"}" > \n
)))
-
#+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
";;; " (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))
((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 <http://www.gnu.org/licenses/>.
+
\;;; 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
company mode
;; (gnus-group-select-group "INBOX")))
#+END_SRC
+* Gnu Plot
+To fix some issue that =toolbar-make-button-list= is void, see the [[https://github.com/bruceravel/gnuplot-mode/issues/31][issue]], here I set some variable as =nil=
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package gnuplot
+ :ensure
+ :init
+ (setq gnuplot-help-xpm nil)
+ (setq gnuplot-line-xpm nil)
+ (setq gnuplot-region-xpm nil)
+ (setq gnuplot-buffer-xpm nil)
+ (setq gnuplot-doc-xpm nil))
+#+END_SRC
+
+Use =gnuplot= on =Org-mode= file, see [[http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-gnuplot.html][ob-doc-gnuplot]]
+#+BEGIN_SRC gnuplot :exports code :file ./temp/file.png
+ reset
+
+ set title "Putting it All Together"
+
+ set xlabel "X"
+ set xrange [-8:8]
+ set xtics -8,2,8
+
+
+ set ylabel "Y"
+ set yrange [-20:70]
+ set ytics -20,10,70
+
+ f(x) = x**2
+ g(x) = x**3
+ h(x) = 10*sqrt(abs(x))
+
+ plot f(x) w lp lw 1, g(x) w p lw 2, h(x) w l lw 3
+#+END_SRC
+
+#+RESULTS:
+[[file:./temp/file.png]]
+
* Blog
#+BEGIN_SRC emacs-lisp :tangle yes :results silent