(setq scroll-step 1)
(setq scroll-margin 5)
+
+ (fringe-mode '(0 . 0))
#+END_SRC
*** Custom file
:config
(ido-mode 1)
(ido-everywhere 1)
- (add-to-list 'completion-ignored-extensions ".pyc"))
+ (add-to-list 'completion-ignored-extensions ".pyc")
+
+
+ (define-key ido-buffer-completion-map (kbd "C-w") #'ido-delete-backward-word-updir)
+ (define-key ido-file-completion-map (kbd "C-w") #'ido-delete-backward-word-updir)
+ (define-key ido-file-dir-completion-map (kbd "C-w") #'ido-delete-backward-updir)
+ ;; (define-key ido-file-dir-completion-map (kbd "C-i") #'ido-copy-current-word)
+
+ ;; (dolist (map (list
+ ;; ido-buffer-completion-map
+ ;; ido-file-completion-map
+ ;; ido-file-dir-completion-map
+ ;; ido-common-completion-map))
+ ;; (define-key map (kbd "C-w") #'ido-delete-backward-word-updir)
+ ;; ;; (define-key map (kbd "C-i") #'ido-copy-current-file-name)
+ ;; )
+ )
(icomplete-mode t)
#+END_SRC
#+END_SRC
-*** Run Perl
-Change the compile-command to set the default command run when call =compile=
-Mapping =s-r= (on Mac, it's =Command + R= to run the script. Here =current-prefix-arg= is set
-to call =compilation= interactively.
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (defun my-perl-hook ()
- (progn
- (setq-local compilation-read-command nil)
- (set (make-local-variable 'compile-command)
- (concat "/usr/bin/perl "
- (if buffer-file-name
- (shell-quote-argument buffer-file-name))))
- (local-set-key (kbd "s-r")
- (lambda ()
- (interactive)
- ; (setq current-prefix-arg '(4)) ; C-u
- (call-interactively 'compile)))))
-
- (add-hook 'cperl-mode-hook 'my-perl-hook)
-#+END_SRC
-
** C & C++
C/C++ ide tools
1. completion (file name, function name, variable name)
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(defun my-cpp-hook ()
(let* ((current-file-name)
- (a-dot-out-file))
+ (out-file-name))
(when buffer-file-name
(setq current-file-name (shell-quote-argument buffer-file-name))
- (setq a-dot-out-file (concat (file-name-directory buffer-file-name) "a.out")))
+ (setq out-file-name (shell-quote-argument (concat (file-name-sans-extension buffer-file-name) ".out"))))
(setq-local compilation-read-command t)
(set (make-local-variable 'compile-command)
(concat "g++ -Wall "
current-file-name
+ " -o "
+ out-file-name
" && "
- a-dot-out-file))
+ out-file-name
+ ))
(local-set-key (kbd "s-r") 'compile)))
(add-hook 'c-mode-hook 'my-cpp-hook)
(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))
+ (setq compilation-scroll-output 'first-error)
+ ;; this will save all the modified buffers before compile
+ (setq compilation-ask-about-save nil))
;; super-r to compile
(with-eval-after-load "compile"
(define-key compilation-mode-map (kbd "p") 'compilation-previous-error)
(define-key compilation-mode-map (kbd "r") #'recompile))
+
+ ;; (loop for (mode . program) in '(
+ ;; (lua-mode-hook . "lua")
+ ;; (perl-mode-hook . "perl")
+ ;; (python-mode-hook . "python")
+ ;; (shell-mode-hook . "sh"))
+ ;; do (add-hook mode `(lambda ()
+ ;; (unless (or (file-exists-p "makefile")
+ ;; (file-exists-p "Makefile"))
+ ;; (set (make-local-variable 'compile-command)
+ ;; (concat ,program
+ ;; " "
+ ;; (if buffer-file-name
+ ;; (shell-quote-argument buffer-file-name))))))))
+
+ ;; here note dynamic binding the value of vv, otherwise it will resport error when run the hook.
+ ;; https://emacs.stackexchange.com/questions/10394/scope-in-lambda
+ (dolist (vv '(
+ (cperl-mode-hook . "perl")
+ (lua-mode-hook . "lua")
+ (python-mode-hook . "python")
+ (shell-mode-hook . "sh")))
+ (add-hook (car vv) `(lambda ()
+ (unless (or (file-exists-p "makefile")
+ (file-exists-p "Makefile"))
+ (set (make-local-variable 'compile-command)
+ (concat (cdr ',vv)
+ " "
+ (if buffer-file-name
+ (shell-quote-argument buffer-file-name))))))))
+
(global-set-key (kbd "s-r") 'compile)
#+END_SRC