;; (setq c-default-style "stroustrup"
;; c-basic-offset 4)
- ;; "C-M-j" is my global binding for avy goto line below
- ;; disable it in c mode
- (mapcar #'(lambda (map)
- (define-key map (kbd "C-M-j") nil))
- (list c-mode-map
- c++-mode-map
- objc-mode-map))
+ ;; ;; "C-M-j" is my global binding for avy goto line below
+ ;; ;; disable it in c mode
+ ;; (mapcar #'(lambda (map)
+ ;; (define-key map (kbd "C-M-j") nil))
+ ;; (list c-mode-map
+ ;; c++-mode-map
+ ;; objc-mode-map))
;; objective c
(add-to-list 'auto-mode-alist '("\\.mm\\'" . objc-mode))
- (setq c-hungry-delete-key t)
+ (setq-default c-hungry-delete-key t)
;; Looks `c-hanging-braces-alist' doesn't work as expected when `electric-pair-mode' is enabled.
;; (advice-add 'c-electric-brace :after (lambda (arg) "Add new line after insert {}" (newline-and-indent)))
#+END_SRC
-
*** irony
**** install irony server
Install clang, on mac, it has =libclang.dylib=, but no develop headers. Install by =brew=
(define-key irony-mode-map [remap complete-symbol]
'irony-completion-at-point-async))
- (add-hook 'irony-mode-hook 'my-irony-mode-hook)
- (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
+ ;; (add-hook 'irony-mode-hook 'my-irony-mode-hook)
+ ;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
- (add-hook 'c++-mode-local-vars-hook #'sd/c++-mode-local-vars)
+ ;; (add-hook 'c++-mode-local-vars-hook #'sd/c++-mode-local-vars)
;; add C++ completions, because by default c++ file can not complete
;; c++ std functions, another method is create .dir-local.el file, for p
(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 "
+ (concat "g++ -Wall -std=c++11 "
current-file-name
" -o "
out-file-name
:ensure t)
#+END_SRC
+* Iedit
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package iedit
+ :ensure t
+ :init
+ (global-set-key (kbd "C-;") #'iedit-mode))
+#+END_SRC
* Gnus
** Gmail setting
Refer [[https://www.emacswiki.org/emacs/GnusGmail][GnusGmail]]
(setq evil-replace-state-cursor '("red" bar))
(setq evil-operator-state-cursor '("red" hollow))
;; others, don't move back cursor when exit insert mode
- (setq evil-move-cursor-back nil)
+ ;; (setq evil-move-cursor-back nil)
:config
(use-package evil-leader
:ensure t
(modify-syntax-entry ?_ "w")
;; (modify-syntax-entry ?- "w")
))
-
- (with-eval-after-load "evil"
- ;; remap x to X as `evil-move-cursor-back' is set nil
- ;; (define-key evil-normal-state-map [remap evil-delete-char] 'evil-delete-backward-char)
- (define-key evil-normal-state-map (kbd "x") (lambda () (interactive)
- (let ((org evil-move-cursor-back))
- (setq evil-move-cursor-back t)
- (call-interactively 'evil-delete-char)
- ;; (evil-delete-char)
- (setq evil-move-cursor-back org)))))
#+END_SRC
** Initial mode and state config
(define-key map (kbd ",") 'evil-repeat-find-char))
(list evil-normal-state-map evil-motion-state-map))
-
- ;; (define-key evil-normal-state-map "s" nil)
- ;; (define-key evil-normal-state-map "sj" 'ivy-switch-buffer)
- ;; normal state
- ;; (define-key evil-normal-state-map (kbd "C-SPC") 'mode-line-other-buffer)
- (define-key evil-normal-state-map (kbd "C-;") 'previous-multiframe-window)
;; insert state
- (define-key evil-insert-state-map (kbd "C-p") 'previous-line)
- (define-key evil-insert-state-map (kbd "C-n") 'next-line)
- (define-key evil-insert-state-map (kbd "C-h") 'delete-backward-char)
- (define-key evil-insert-state-map (kbd "C-a") 'move-beginning-of-line)
- (define-key evil-insert-state-map (kbd "C-e") 'move-end-of-line)
- (define-key evil-insert-state-map (kbd "C-k") 'kill-line)
+ (cl-loop for (key-sequence . fun) in '(("C-;" . iedit-mode)
+ ("C-n" . next-line)
+ ("C-p" . previous-line)
+ ("C-a" . move-beginning-of-line)
+ ("C-e" . move-end-of-line)
+ ("C-h" . delete-backward-char)
+ ("C-k" . kill-line))
+ do (define-key evil-insert-state-map (kbd key-sequence) fun))
+
+
+
;; motion mode
(define-key evil-motion-state-map (kbd "SPC") 'scroll-up-command)
(define-key evil-motion-state-map (kbd "S-SPC") 'scroll-down-command))
** Avy & Evil
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (setq avy-keys '(?a ?s ?d ?g
+ ?h ?k ?l
+ ?q ?w ?e ?r ?t
+ ?y ?u ?i ?o ?p
+ ?z ?x ?c ?v ?b
+ ?n ?m ?f ?j 59))
+ ;; (setq avy-background t)
(with-eval-after-load "evil"
(dolist (map (list evil-normal-state-map
evil-visual-state-map
evil-motion-state-map))
+ (define-key map (kbd "gw") 'avy-goto-word-0-below)
+ (define-key map (kbd "gb") 'avy-goto-word-0-above)
(define-key map (kbd "J") 'avy-goto-line-below)
(define-key map (kbd "K") 'avy-goto-line-above)
(define-key map (kbd "F") 'avy-goto-char)