🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.mule
Article #257

Re: tab-width

#257
From: Katsumi Yamaoka
Date: Tue, 03 Oct 2000 00:00
67 lines
3520 bytes
こんにちは山岡と申します。

>>>>> In <LvmC5.47$UR5.17552@news1.rdc1.kt.home.ne.jp> 
>>>>>	"Hiroyuki Hasegawa" <hhase@urawa.cabletv.ne.jp> wrote:

> タブの表示サイズを変更しようと思い、.emacsに以下の一行

> (setq tab-width 4)

> を挿入しましたが、反映されません。
> 具体的には、別のエディタで編集したソースファイルを読みこむと
> タブが8で表示されます。(当然、tab-widthも8のままです)

そのときの tab-width の値を M-x describe-variable を使って調べると
8 になっていると思います。

> しかし、

> M-x load-library ~/.emacs

> とすると、タブが4に変換(変更)されます。

そうすると 4 になりますよね。
tab-width はバッファローカル変数なので、起動時に .emacs に書かれた
(setq tab-width 4) が反映されるバッファ (ってどこ? ^^;;) 以外では
tab-width の値はデフォルトの 8 のままなのです。
したがって、すべてのバッファにおける tab-width の値を 4 にするため
には、tab-width のデフォルト値を変更しなければなりません。それは、
こうすればできます。

(setq-default tab-width 4)

ところが、これだけでは TAB 幅が 4 の世界を実現するには不足で、
tab-stop-list というリスト変数も変更する必要があるでしょう。例えば
このようにします。

(setq tab-stop-list
      '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68
	  72 76 80 84 88 92 96 100 104 108 112 116 120))

さて、世の中には TAB 幅が 8 であることを想定して書かれた文書がたく
さんあるのですが、困ることは無いのでしょうか?
実は、ぼくの近所でも TAB 幅を 4 にしたいという要望が少なからずあっ
たのですが、ぼくは上記のように 4 に固定してしまうやり方は頑として
勧めませんでした。代わりに、以下のようなものを .emacs に書いてもらっ
ています。

(defun tab4 (arg)
  "Toggle `tab-width' between 4 and 8.
With arg, set `tab-width' to 4 if and only if arg is positive."
  (interactive "P")
  (let ((width (if (integerp arg)
		   (if (> arg 0) 4 8)
		 (if (eq 8 tab-width) 4 8))))
    (set (make-local-variable 'tab-width) width)
    (set (make-local-variable 'tab-stop-list) nil)
    (let ((n width)
	  (max 1024))
      (while (<= n max)
	(setq tab-stop-list (nconc tab-stop-list (list n))
	      n (+ n width))))
    (message "TAB=%d" width)))

これは、M-x tab4 とタイプすると、そのバッファでだけ TAB 幅を 4 と
8 にトグルで切り替えることができるコマンドです。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
Technical Details
Message-ID: <yosuk8bpft6r.fsf@jpl.org>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <LvmC5.47$UR5.17552@news1.rdc1.kt.home.ne.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 10eba4,fbf88f3053a843e1
X-Google-Attributes: gid10eba4,public
From: Katsumi Yamaoka <yamaoka@jpl.org>
Subject: Re: tab-width
Date: 2000/10/03
Message-ID: <yosuk8bpft6r.fsf@jpl.org>
X-Deja-AN: 677226594
References: <LvmC5.47$UR5.17552@news1.rdc1.kt.home.ne.jp>
Content-Type: text/plain; charset=ISO-2022-JP
X-Trace: fu-berlin.de 970612628 18537022 207.228.244.9 (16 [27265])
X-Face: #kKnN,xUnmKia.'[pp`;Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu;B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw= L&i*6&(
Organization: Emacsen advocacy group
Mime-Version: 1.0
User-Agent: T-gnus/6.14.5 (based on Gnus v5.8.8) (revision 05) XEmacs/21.2 (beta35) (Nike) (sparc-sun-solaris2.6) WEMIKO/1.14.0 (Zoomastigophora) SLIM/1.14.3 (篠原ともえ) APEL/10.2
Newsgroups: fj.editor.mule