2018年3月29日木曜日

桜、桜、桜、団子、桜、桜、桜、饅頭

先日、お彼岸のお参りに京都へ出掛けた際に、有名所の桜( 高台寺)を見て来た。 枝垂れ桜が満開で、確かにすごいと思ったが、 「写真撮影が終りましたら、後からお越しの方に場所を御譲り下さい。」と 急かされる状況で、花見じゃはないなあ、と帰宅したのだった。で、近所の桜をはしごしてみた。

今時分は、色んな場所に桜はある。記憶と、遠目に見える桜色を目安に、半日60kmほどのポタリング。

近所の桜並木を出発点に、先ず、和菓子屋(みずは北川)へ向いながら、数カ所立ち寄り、 花見団子と饅頭を買い込んで再スタート。後は気儘にポタリング。 この和菓子屋さんは、朝9時半からなので、ポタリング程度なら、まあ、まあ、前日に買っておく必要はない。

山間の桜、学校の桜、墓地の桜、お寺の桜、堤防の桜、公園の桜。場所にはことかかない。 人目の少ない場所なら、団子を1本、また別の場所で饅頭ひとつ、という具合に、 桜、桜、桜、団子、桜、桜、桜、饅頭、というポタリング。

桜の樹の下に寝転んで、空を見上るのが気持ちよい。

同じ日で、一時間ほどの時間差。左列は近所では有名な桜の名所(背割堤)。 右列は駐車場がほぼ無い公園の遊歩道(田辺木津川つつみ緑地)。 規模は小さいが、桜を楽しむなら右でも良いでしょう。

一週間経ってもまだ、大丈夫だった。ちなみにタイヤはUST(Universal Standard Tubeless)なのだ。絶滅危惧種かと思う。昨年、外通在庫処分で格安(2000円/本 以下)で入手したVredesteinのタイヤ。こいつがダメになったら、もうあかんやろなあ。

2018年3月17日土曜日

emacs の設定を org-mode で

emacs 設定の見通しが悪い。

emacsのパッケージ管理は、el-get + init-loader を使ってきた。 昔の設定も残っているし、色々とゴミが貯まっていて見通しが悪い。 コメントなんかも中途半端だし、読み返すと理解できないヤツも多々ある。

で、整理しようと手をつけてはみたが、ファイルが40ほどあるので、 チョットした修正なら問題ないが、整合性とかを確認しながらの作業は、 記憶力が怪しい自分には辛いし、遅々として進まない。

で、思い切ってバージョンアップをやってみた(無謀だった)。

主に参考にさせていただいたのは、 package.el + use-package で落ち着いた - YAMAGUCHI::webloguse-packageで可読性の高いinit.elを書く - Qiita 、そして 色々探しているうちに見付けた、 Emacs の設定GitHub - uwabami/emacs: Emacs の設定ファイル群 。 org-mode で管理できるのを知ったのが結構大きい。

package.el + use-package + org-mode

おおまかな設定方法は、init.el で、package.el と use-package の 設定をして、まず org を読み込む。 その後 org-babel-load で、 各種設定を babel-mode で記述した org ファイルから .el を作成させて、読み込む。 org-babel-load の処理時間はかかるが、org ファイルの更新が無いと、skip される。あってるかな?

他の先人達を探したが、org-mode自体の設定ばかりヒットして、 肝心な「パッケージの管理」に関する情報がなかな見付からない。 見付けたのは、これくらい。

結構昔からこのような管理方法はあるみたい。 org-install が obsolete なので、こいつが含まれてる情報は少し古いのかもしれない。 (obsolete だと知ったのは、結構あとになってから)

use-package の使い方は沢山ヒットするので、 これまでの el-get の設定と比較しながら作業すれば、 間違いとかが減らせるだろうという期待もあった。

以下が init.el 。 正しいかは不明。いまのところ大丈夫そう。 site-start.d 下に config.org を置いて、init-loader の読み込み順に追記、 動作確認しがら作業。 8割ほどは作業が終了したはず。 さすが org-mode のアウトライン機能は便利。 残りは使いながらか。バイトコンパイルはさせたいかも。

[update 201903]

;;; init.el -- my emacs settings.
;;; Commentary:
;  use packages version.

;;; Code:
;; Emacs GC settings
;  https://github.com/jethrokuan/.emacs.d/blob/master/config.org#org-mode-for-note-taking
; 2018-08-29
;(setq gc-cons-threshold 50000000)
; https://zzamboni.org/post/my-emacs-configuration-with-commentary/
;(setq gc-cons-threshold (* 1024 1024 1024))

; 2019-03
;; https://www.reddit.com/r/emacs/comments/3kqt6e/2_easy_little_known_steps_to_speed_up_emacs_start/
;; huge impact to profile-dotemacs results; GC takes up a lot of init time
(setq gc-cons-threshold most-positive-fixnum)
;; reset gc-cons-threshold
;; idle timer suggested by vermiculus
(run-with-idle-timer
 10 nil
 (lambda ()
   (setq gc-cons-threshold (car (get 'gc-cons-threshold 'standard-value)))
(message "gc-cons-threshold restored to %S" gc-cons-threshold)))

;;; Begin initialization
(setq inhibit-startup-message t)
(setq initial-scratch-message "")

;;; Set up package
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
;;(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/") t)

(package-initialize)

; load-prefer-newer は Emacs >= 24.4
(customize-set-variable 'load-prefer-newer t)

(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))

(eval-when-compile
  (require 'use-package))
;; (require 'bind-key) ;; not use

(use-package org
  :pin "org")

;; (defvar org-startup-dir (concat user-emacs-directory "site-start.d/"))
;; (org-babel-load-file (expand-file-name "config.org" org-startup-dir))

;; change 201901
;(setq exec-path (parse-colon-path (getenv "PATH")))
; ==exec-path== exec-directory が含まれないので変更。

(dolist (path (reverse (split-string (getenv "PATH") ":")))
  (add-to-list 'exec-path path))

(require 'server)            ;; autoloadされてないので必要らしい
(unless (server-running-p)   ;; 起動している server があるかのチェック
   (server-start)
   )
;
(setq custom-file "~/.emacs.d/custom.el")

;;; Load org
(use-package org :ensure t
  :pin "org")

(defvar org-startup-dir (concat user-emacs-directory "site-start.d/"))

;;; Load the config
(org-babel-load-file (expand-file-name "config.org" org-startup-dir))

(load custom-file)

(put 'upcase-region 'disabled nil)

;;; init.el ends hear

なぜか起動時間が3割ほど早くなった。 el-get を使ってた時の間違った設定が減ったためだろう。 随分と時間を使ったが、期待通りの成果?なのかも。

設定用の org ファイルは、ひとつに纏めたので 30004000行を越える。必要なのは半分以下。 ちょこっとした修正には大きすぎるので、落ち着いたら、また分割するかも。

[20180413]やっと落ち着いたみたい。

[20190903]serverをこちらに移したり、pathの設定方法を変更したり。


Emacs の lsp の設定、なう(202310)

前回さらしてから、さらに1年。そう、3年めになる。 が、今回は一段と自信がない。 環境は、 Debian GNU/Linux 12 (bookworm) + emacs(29.1)。consult + company。 embark は未だに使ってない。 用途は、メモ と ...