[Elips: 0005578] Re: Emacs 28.0.50 での全角空白下線を非表示にしたい

Hideyuki SHIRAI (=?iso-2022-jp?B?GyRCR3IwZj0oOVQbKEI=?=) shirai @ meadowy.org
2021年 3月 25日 (木) 19:17:09 JST


白井です。

生き抜き^h^h^h^h息抜き。。。

From: 野宮 賢 / NOMIYA Masaru <nomiya @ galaxy.dti.ne.jp> さん曰く
Subject: [Elips: 0005577] Emacs 28.0.50 での全角空白下線を非表示にしたい
Message-ID: <87v99fwsse.wl-nomiya @ galaxy.dti.ne.jp>
Date: Thu, 25 Mar 2021 17:18:09 +0900

> Emacs 28.0.50 では、素の状態のみならず、Wanderlusr の Sunnary Buffa で
> でも、全角空白部に下線が現れますが、これを非表示にする手立てがあればお
> 教え戴きたく、宜しくお願いします.

ぼくの Emacs28.x は真っ当に立ち上がらない (*1) ので普段使わない
のですが、確かにそうなりますね。

(*1) 一生 Emacs27 でいいやとも思っていたり ^^;;;

" " の上で、"C-u M-x what-cursor-position" すると、ぼくの場合は
こんな感じで出てきます。

             position: 9 of 18 (44%), column: 4
            character:   (displayed as  ) (codepoint 12288, #o30000, #x3000)
              charset: japanese-jisx0208 (JISX0208.1983/1990 Japanese Kanji: ISO-IR-87)
code point in charset: 0x2121
               script: cjk-misc
               syntax:   	which means: whitespace
             category: .:Base, c:Chinese, h:Korean, j:Japanese, |:line breakable
             to input: type "C-x 8 RET 3000" or "C-x 8 RET IDEOGRAPHIC SPACE"
          buffer code: #xE3 #x80 #x80
            file code: #xE3 #x80 #x80 (encoded by coding system utf-8-unix)
              display: by this font (glyph code)
    mac-ct:-*-MeiryoKe_Console-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1 (#x619)
       hardcoded face: nobreak-space <-- 『知らない、あやしい』

Character code properties: customize what to show
  name: IDEOGRAPHIC SPACE
  general-category: Zs (Separator, Space)
  decomposition: (wide 32) (wide ' ')
 ...略...

次に上の「nobreak-space」でリターンすると

Face: nobreak-space (sample) (customize this face)

Documentation:
Face for displaying nobreak space.

Defined in ‘faces.el’.


           Family: unspecified
          Foundry: unspecified
            Width: unspecified
           Height: unspecified
           Weight: unspecified
            Slant: unspecified
       Foreground: unspecified
DistantForeground: unspecified
       Background: unspecified
        Underline: t             <-- 『これだ!!』
         Overline: unspecified
   Strike-through: unspecified
              Box: unspecified
          Inverse: unspecified
          Stipple: unspecified
             Font: unspecified
          Fontset: unspecified
           Extend: unspecified
          Inherit: escape-glyph

  This face was introduced, or its default value was changed, in
  version 22.1 of Emacs.

ということがわかります。ここから先の方法はたくさんあると思います
が、少々力ずくでやると、

(1) nobreak-space face から underline を消す。
  積極的に使っているものがあったらよろしくないかも

(2) elisp を nobreak-space で検索してみる。
  (ぼくの場合は) descr-text.el 694ラインに発見

       ((and nobreak-char-display char
             (eq (get-char-code-property char 'general-category) 'Zs))
        'nobreak-space)

  全角スペースのカテゴリは 'Zs' だからここですね、ということがわ
  かるので、

  (setq nobreak-char-display nil)

  したら underline が消えました。ちゃんちゃん。

-- 
白井秀行 (mailto:shirai @ meadowy.org)


Elips メーリングリストの案内