(add-hook 'text-mode-hook 'table-recognize)
#+END_SRC
+** url-download
+To download file in =elisp=, best is =url-copy-file=, here refer [[http://stackoverflow.com/questions/4448055/download-a-file-with-emacs-lisp][download-a-file-with-emacs-lisp]] using =url-retrieve-synchronously= wrapping
+as a http download client tool
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (defun sd/download-file (&optional url download-dir download-name)
+ (interactive)
+ (let ((url (or url
+ (read-string "Enter download URL: ")))
+ (download-dir (read-directory-name "Save to (~/Downloads): " "~/Downloads" "~/Downloads" 'confirm' nil)))
+ (let ((download-buffer (url-retrieve-synchronously url)))
+ (save-excursion
+ (set-buffer download-buffer)
+ ;; we may have to trim the http response
+ (goto-char (point-min))
+ (re-search-forward "^$" nil 'move)
+ (forward-char)
+ (delete-region (point-min) (point))
+ (write-file (concat (or download-dir
+ "~/Downloads/")
+ (or download-name
+ (car (last (split-string url "/" t))))))))))
+#+END_SRC
+
* Dired
** Dired bindings
=C-o= is defined as a global key for window operation, here unset it in dired mode
;; call the function which you want to disable ido
(mk-disable-ido 'dired-create-directory)
(mk-disable-ido 'sd/dired-new-file)
+ (mk-disable-ido 'dired-goto-file)
#+END_SRC
** Dired open with
:ensure t)
#+END_SRC
+** Scheme
+Install =guile=, =guile= is an implementation of =Scheme= programming language.
+#+BEGIN_SRC sh
+ brew install guile
+#+END_SRC
+
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (setq geiser-scheme-implementation 'guile)
+#+END_SRC
+
+#+BEGIN_SRC scheme
+ (define a "3")
+ a
+#+END_SRC
+
+#+RESULTS:
+: 3
+
** Racket
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package racket-mode
(file-name-nondirectory (buffer-file-name)))
".hpp\"" \n \n
"using namespace std;" \n \n
- "int main ()"
+ "int main (int argc, char *argv[])"
"\n{" \n
> _ \n
"return 0;"
(file-name-sans-extension
(file-name-nondirectory (buffer-file-name)))
".h\"" \n \n
- "int main ()\n"
+ "int main (int argc, char *argv[])\n"
"{" \n
> _ \n
"return 0;\n"
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(global-set-key (kbd "M-i") #'counsel-imenu)
;; (global-set-key (kbd "M-i") #'imenu)
+
+ ;; define M-[ as C-M-a
+ ;; http://ergoemacs.org/emacs/emacs_key-translation-map.html
+ (define-key key-translation-map (kbd "M-[") (kbd "C-M-a"))
+ (define-key key-translation-map (kbd "M-]") (kbd "C-M-e"))
#+END_SRC
*** Go-to line