前回久しぶりに記事を投稿したが,しばらく更新していない間に,いくつか細かな環境修正が必要であったので,落ち穂拾いとしてまとめておく.
display-line-numbers
emacs 26から入った行番号を表示させる機能.
- Ref 1: emacs 26で入ったdisplay-line-numbersを利用する
- Ref 2: LineNumbers
- Ref 3: Emacs26のdisplay-line-numbers-modeがlinum-modeよりちょっと速くて快適になりそう
- Ref 4: Emacsの行番号表示にモヤモヤした話
設定は,いつものように,init.orgに下記のとおりに書き込めばよい.
#+begin_src emacs-lisp
(global-display-line-numbers-mode)
#+end_src
これでもう行番号を表示していても重くならない.表示領域を確保するための設定も不要である.実際の表示状況は下の画像のとおりである.nlinum-modeの設定は削除した.
行番号に必要な表示領域は自動的に確保される.3桁,4桁の番号になるに連れて表示領域が広くなるのが上の画像からわかるであろう.また,adaptive-wrapによって折り畳まれている行は行番号が空白になって1行であることがわかるようになっている(383行目).
Whitespace-mode
かなり前から,Emacsの長い行の途中でフォントの色が赤くなってしまうようになった.つまり,下の画像のようになってしまう.短い行でもフォントが赤くなってるな...
何が原因かよくわからなかったのだが,redditのHow do I stop Emacs from coloring text beyond 80 columns differentlyを読んで,もしかしたら,whitespace-modeのせいかもしれないと思ってやってみたらドンピシャであった.M-x customizeとして,Whitespace Styleをサーチして,(Face) Lines, only overlong partのチェックを外せばよい.下の画像の矢印で示した部分である.
下に,設定変更後の上の画像と同じところを示すが,行の途中でフォントの色が変わらなくなっている.これで目がおかしくなりそうな画面からようやく離れることができた.😀
iTerm2の権限の変更(mojaveで必要)
以前の記事(Emacsのorg-modeを保存すると自動的にhtmlにexportされブラウザーが更新されるようにする)の中で,directoryの内容が変更されると,自動でhtmlを再読込するwatch_safari.rbというスクリプトを紹介した.しかし,mojaveにupgradeしたあとは
85:141: execution error: System Eventsでエラーが起きました: osascriptにはキー操作の送信は許可されません。 (1002)
というエラーを吐いて,自動更新しなくなってしまった.調べてみると,mojaveでユーザーのデータや個人情報を保護するための機能が強化された結果であった.
- Ref 1: macOS Mojaveでのアプリケーションの権限、アクセシビリティとフルディスクアクセスの違いは何か?
- Ref 2: macOS MojaveでiTerm2を利用する場合にフルディスクアクセスを許可する方法
- Ref 3: MacのターミナルやiTermでOperation not permittedが出る場合の対処法
- Ref 4: Why Full Disk Access is Useful for iTerm2
AccessibilityとFull Disk Accessのいずれか,あるいは,両方を変更すればよい.試してみた結果,iTerm2にFull Disk Accessを許可しても自動更新しないが,Accessiblityで「アプリケーションにコンピュータの制御を許可」すれば自動更新することがわかった.「システム環境設定」>「セキュリティ&プライバシー」の「プライバシー」タブに行き,下の画像にあるように,iTerm2にcheckを入れればよい.
crontabが働き,~/Library/Safari folderへのアクセスができるように,iTerm2にFull Disk Accessも与えておいた.方法は,上記とほぼ同じで,「プライバシー」タブに行き,フルディスクアクセスを選択し,iTerm2にcheckを入れればよい.
iTerm2のColor Schemeが効かない
いつのまにかiTerm2のcolor schemeを変えても反映されなくなってしまった.ネットを探ると,同じようなことで悩んでいる人が結構いるようで,すぐに解決法が見つかった.
上記のサイトによれば,terminal windowがprofileと連絡を失ってしまったことが原因とのことで,iTerm2の Session > Edit Sessionで下の画像のようにdialogue boxがpop upするので,そこで,好きなcolor scheme (下の画像ではJapanesque) を選択し,右下のUse Selected Profileをクリックすればよい.
これでリンクが再確立される.