Emacs ハック。
あいあい。大風呂敷を広げちゃいましたね感たっぷりてんこ盛りの
whitypig です。
エアコンをつけないと空気が冷たくなり,空気が冷たいと,偏頭痛持ちのワタシの頭は,
調子がよくなるので,エアコンをつけないでいたら,風邪引いた。orz
と,やってることが小学生並な感じです。
M-f ではまかないきれない!!
public void somefunc() { // ... }
なんてのがあって,somefunc -> someFunc にしたい場合,
今までなら,somefunc の前まで行って,C-f をタタタタとしていたわけですが,
よくよく考えたら,C-uC-f すれば,4つ進むね。C-8C-f なら8つと。
M-f だと通過しちゃうので,C-f を手動で打っていたのですが,universal argument だっけ?
を使えば楽になるよー,という,オレ以外の Emacs 系ユーザーなら知ってそうな
話でした。
もちのろんで,C-uC-b, C-uM-f,
さらには,C-uM-b なんていう応用技(どこがやねん!!)もできる。
これを覚えてから,移動がさらに快適になり,おかげでたばこもやめられました。
(もとからたばこ吸いませんけど)
ついでなんで,c-mode の auto-complete-mode 設定。
これ,やってなかったので,やった。
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook-func) (defun my-c-indent-line (&optional syntax quiet ignore-point-pos) (interactive) (c-indent-line syntax quiet ignore-point-pos)) ;;; function to be called in cc-mode when auto-complete is enabled (defun my-c-mode-common-hook-func () (interactive) "Function to be called when entering into cc-mode." (c-set-style "stroustrup") (setq c-basic-offset 2) (setq tab-width 2) (setq indent-tabs-mode nil) (local-set-key "\t" 'my-c-indent-line) (setq compilation-window-height 10) ;; the height in lines of *compilation buffer* (local-set-key "\M-I" 'imenu) (local-set-key "\C-c\C-c" 'smart-compile) (make-variable-buffer-local 'skeleton-pair) (make-variable-buffer-local 'skeleton-pair-on-word) (setq skeleton-pair-on-word t) (setq skeleton-pair t) (make-variable-buffer-local 'skeleton-pair-alist) (local-set-key (kbd "(") 'skeleton-pair-insert-maybe) (local-set-key (kbd "[") 'skeleton-pair-insert-maybe) (local-set-key (kbd "{") 'skeleton-pair-insert-maybe) (local-set-key (kbd "`") 'skeleton-pair-insert-maybe) (local-set-key (kbd "\"") 'skeleton-pair-insert-maybe) (gtags-mode 1) ;; この下を追加しました。 (set (make-local-variable 'dabbrev-check-all-buffers) nil) (set (make-local-variable 'dabbrev-select-buffers-function) 'my-dabbrev-select-c-mode-buffers) (when (require 'auto-complete nil t) (auto-complete-mode t) (make-local-variable 'ac-sources) (setq ac-auto-start 3) (setq ac-sources '(ac-source-words-in-buffer ac-source-gtags ac-source-dabbrev ac-source-abbrev)))) ;; dynamic abbreviation の補完もとバッファを集める関数 (defun my-dabbrev-select-c-mode-buffers () "Return a list of buffers opened with cc-mode." (interactive) (let (b l (bl (buffer-list))) (dolist (elt bl) (save-excursion (set-buffer elt) (when (memq major-mode '(c-mode c++-mode)) (setq l (cons elt l))))) l))
C-j の挙動
newline-and-indent にしているけど,
void func()//ここで C-j すると・・・, void func() ■ここにくる。 void func() ■ここに来て欲しい
結論から言うと,C-m しろということですわ。
ま,newline-and-indent だから当然といえば当然ですね。
でも,これ,結構わすれて C-j しちゃうんですよ。
以上,どこが Emacs ハックやねん! のコーナーでした。