虚無庵

徒然なるままに

Fukuoka.rb #177 を開催した

fukuokarb.connpass.com

このご時世なのでオフラインもくもく会は開催できず、過去 2 回は土曜日の朝にやっていました。

今回、「21 時以降なら家庭持ちでもできんじゃね?」という事から平日 21 時の開催となりました。

今回やったこと

Emacs 27.1 の初期設定とか

init.el を 2 年くらいメンテしてなかったので、ハイラインがまともに表示されなくなったので焦った。

とりあえず今の init.el はこんな感じ。

;;; init.el --- My init.el  -*- lexical-binding: t; -*-

;; Copyright (C) 2020  Naoya Yamashita

;; Author: Naoya Yamashita <conao3@gmail.com>

;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:

;; My init.el.

;;; Code:

;; this enables this running method
;;   emacs -q -l ~/.debug.emacs.d/init.el
(eval-and-compile
  (when (or load-file-name byte-compile-current-file)
    (setq user-emacs-directory
          (expand-file-name
           (file-name-directory (or load-file-name byte-compile-current-file))))))

(eval-and-compile
  (customize-set-variable
   'package-archives '(("gnu"   . "https://elpa.gnu.org/packages/")
                       ("melpa" . "https://melpa.org/packages/")
                       ("org"   . "https://orgmode.org/elpa/")))
  (package-initialize)
  (unless (package-installed-p 'leaf)
    (package-refresh-contents)
    (package-install 'leaf))

  (leaf leaf-keywords
    :ensure t
    :init
    ;; optional packages if you want to use :hydra, :el-get, :blackout,,,
    (leaf hydra :ensure t)
    (leaf el-get :ensure t)
    (leaf blackout :ensure t)

    :config
    ;; initialize leaf-keywords.el
    (leaf-keywords-init)))

;; ここにいっぱい設定を書く

(provide 'init)

;; font-set
;; http://d.hatena.ne.jp/kazu-yamamoto/20140625/1403674172
;; 以下はフレームの設定
(defvar my-frame-parameters
  '((height . 200)
    (width . 200)
    (top . 0)
    (left . 200)
    (foreground-color . "white")
    (background-color . "black")
    (cursor-color . "white")
    (mouse-color . "white")
    (tool-bar-lines . nil)))

(when (memq window-system '(x mac ns))
  (setq frame-title-format '(multiple-frames "%b" ("" invocation-name)))
  (setq default-frame-alist my-frame-parameters))

;; 以下が Mac 用のフォント設定
(when (memq window-system '(mac ns))
  (global-set-key [s-mouse-1] 'browse-url-at-mouse)
  (let* ((size 14)
     (jpfont "Hiragino Maru Gothic ProN")
     (asciifont "Monaco")
     (h (* size 10)))
    (set-face-attribute 'default nil :family asciifont :height h)
    (set-fontset-font t 'katakana-jisx0201 jpfont)
    (set-fontset-font t 'japanese-jisx0208 jpfont)
    (set-fontset-font t 'japanese-jisx0212 jpfont)
    (set-fontset-font t 'japanese-jisx0213-1 jpfont)
    (set-fontset-font t 'japanese-jisx0213-2 jpfont)
    (set-fontset-font t '(#x0080 . #x024F) asciifont))
  (setq face-font-rescale-alist
    '(("^-apple-hiragino.*" . 1.2)
      (".*-Hiragino Maru Gothic ProN-.*" . 1.2)
      (".*osaka-bold.*" . 1.2)
      (".*osaka-medium.*" . 1.2)
      (".*courier-bold-.*-mac-roman" . 1.0)
      (".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
      (".*monaco-bold-.*-mac-roman" . 0.9)
      ("-cdac$" . 1.3)))
  ;; C-x 5 2 で新しいフレームを作ったときに同じフォントを使う
  (setq frame-inherited-parameters '(font tool-bar-lines)))

;; Ctrl-H -> backspace
(global-set-key "\C-h" 'delete-backward-char)

;; high-line
(global-hl-line-mode t)
(custom-set-faces
 '(hl-line ((t (:background "SteelBlue4")))))

;; ruby-mode のインデントをいい感じに
(setq ruby-deep-indent-paren-style nil)
(setq ruby-indent-tabs-mode nil)
;; coging: utf-8 を挿入させない
(custom-set-variables '(ruby-insert-encoding-magic-comment nil))

;; フレーム透過設定
(add-to-list 'default-frame-alist '(alpha . (0.80 0.80)))

;; display line-number
(line-number-mode t)

;; display column-number
(column-number-mode t)

;; tab -> space
(setq-default tab-width 4 indent-tabs-mode nil)

;; 括弧の色付け
(show-paren-mode 1)

;; モードラインにファイルのフルパス表示
(set-default 'mode-line-buffer-identification
           '(buffer-file-name ("%f") ("%b")))

;; 行番号表示
(global-linum-mode t)
(set-face-attribute 'linum nil
                    :foreground "#800"
                    :height 0.9)

;; 全角スペース & タブ文字の可視化
(require 'whitespace)
(set-face-foreground 'whitespace-space "DarkGoldenrod1")
(set-face-background 'whitespace-space nil)
(set-face-bold-p 'whitespace-space t)
(set-face-foreground 'whitespace-tab "DarkOliveGreen1")
(set-face-background 'whitespace-tab nil)
(set-face-underline  'whitespace-tab t)
(setq whitespace-style '(face tabs tab-mark spaces space-mark))
(setq whitespace-space-regexp "\\(\x3000+\\)")
(setq whitespace-display-mappings
      '((space-mark ?\x3000 [?\□])
        (tab-mark   ?\t   [?\xBB ?\t])
        ))
(global-whitespace-mode 1) ; 全角スペースを常に表示


(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(package-selected-packages '(blackout el-get hydra leaf-keywords leaf)))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )
;; Local Variables:
;; indent-tabs-mode: nil
;; End:

;;; init.el ends here

早く magit を使えるようにしなきゃいけないが、 leaf の使い方を全く分かっていない。というか Emacs のパッケージ管理が未だによく分からない。MELPA だの Cask だのあったが、今は leaf ってことで FA?

次回

fukuokarb.connpass.com

全国各地から集まってくるので普段のオフライン回より参加者多い。好評のようなのでしばらく続けてみます。