Emacs でのタブ幅の設定

Visual Studio ってなんでデフォルトのタブ幅が 4 になってしまったのでしょう。 自分だけ Emacs を使ってたりすると困ってしまいます。
しかし、不満を言ってもかわらないので、今回は Emacs でのタブ幅の設定に関する話です。

Emacs 全体に対して設定

Emacs のデフォルトのタブ幅は一般的な 8 です。
Emacs 全体でタブ幅を変えたい場合には、 Customize の機能を使います。
M-x customize-option <RET> tab-width などで カスタマイズバッファを開いて、設定、保存して下さい。
Customize tab width


また、 ~/.emacs.d/init.el (~/.emacs.el) で設定することも可能です。 その場合には以下のように記述します。
(setq default-tab-width 4)
因みに、単に tab-width では全体に対して有効になりません。 これは tab-width がバッファーローカルな変数 (バッファーごとに独立した値を保持する変数)であるためです。

C, C++ ファイルに対してのみ設定

C, C++ のソースファイルの時のみタブ幅を指定したい場合には、 以下の記述を ~/.emacs.d/init.el に追加します。
(add-hook 'c-mode-hook '(lambda () (setq tab-width 4)))
(add-hook 'c++-mode-hook '(lambda () (setq tab-width 4)))
C, C++ 各モード起動時のホックを使って設定しています。
C, C++ を一緒に設定したい場合は c-mode-common-hook といったホックもあリます。 ただし、 Java や Objective-C などのモードでも呼ばれるので、 個別に指定した方がいいでしょう。

また、次のように C, C++ モード用の独自の設定関数を作って、呼び出すこともできます。 タブ幅だけでなく、色々追加していけるので、こちらの方が応用が効くかもしれません。
(defun my-c-mode-common-init ()
  "C, C++ mode set up function"
  (setq tab-width 4)
  ;; <- 追加
  )

(add-hook 'c-mode-hook 'my-c-mode-common-init)
(add-hook 'c++-mode-hook 'my-c-mode-common-init)

ファイル別の設定

次のような記述を使えば、ファイルの先頭行でそのファイルに対する設定を書くことができます。
-*- 変数名: 値 -*-
// -*- tab-width : 4 -*-
複数の値を指定したい場合には ; で区切って記述します。
// -*- tab-width : 4 ; mode : C++ -*-

関連記事
スポンサーサイト



Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
20位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
5位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

02月 | 2023年03月 | 04月
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。