記事一覧

c-mode のインデント幅(style)を変更する

2010年03月23日(火)21時53分

c-mode のインデント幅は デフォルトではスペース2個分で、
タブの替わりにスペースが入力されます。

C言語ではこの記法は好きではないので、
スペース4個分タブが入力されるようにします。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; c-mode のインデントをスペース4個分のタブにする
(add-hook 'c-mode-common-hook
          '(lambda ()
             (c-set-style "k&r")
     (setq c-basic-offset 4)
     (setq indent-tabs-mode t)
     (setq tab-width 4)))

日本語の locale が設定されている時の dired 対策

2010年03月23日(火)21時04分

日本語の locale が設定されていると、時間が日本語表示となってdired が正常に使えなくなる時があります。

その場合、insert-directory 関数を使います。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 日本語の locale が設定されている時の dired 対策
(require 'ls-lisp)
(defadvice insert-directory
  (around reset-locale activate compile)
    (let ((system-time-locale "C"))
        ad-do-it))

kill-whole-line

2010年03月23日(火)19時41分

kill-whole-line は、カーソル位置に拘わらず、行全体を削除しますが、
Emacs22 以降でないと kill-whole-line はありません。

Emacs21で同様の動きをするには、

(defun kill-all-line (&optional numlines)
  (interactive)
  (setq pos(current-column))
  (beginning-of-line)
  (kill-line numlines)
  (move-to-column pos))

といった感じで、関数定義(ここでは kill-all-line)をする必要があります。

Emacs21な環境での苦肉の策です(^^;