From a2800e3a7a90f7c0760596d52e2850e8f3935391 Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Mon, 15 Aug 2022 01:23:58 +0900 Subject: Update. --- init.org | 302 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 299 insertions(+), 3 deletions(-) diff --git a/init.org b/init.org index e10347b..d6a6e4a 100644 --- a/init.org +++ b/init.org @@ -192,15 +192,15 @@ Lisp の構造的な編集を実現するのに必要。 (add-hook 'racket-mode-hook #'enable-paredit-mode) #+end_src -* facemenu を require する +* facemenu を require -なんかよくわからんけど facemenu を Require しないと警告がでる。 +なんかよくわからんけど facemenu を Require しないと起動時に警告がでる。 #+begin_src emacs-lisp (require 'facemenu) #+end_src -* フォントの設定をする +* フォントの設定 Noto Sans Mono を使う。 システムに入ってなかったら入れる。 @@ -212,3 +212,299 @@ Noto Sans Mono を使う。 (add-to-list 'face-font-rescale-alist '(".*Noto Sans Mono CJK JP.*" . 1.3))) #+end_src + +* 見た目の設定 + +** 装飾を非表示にする + +スクロールバー、メニューバー、タブバーがあると画面が狭くなるので消す。 +メニュー機能は有用なので迷ったときには F10 でメニューを出せることを覚えておく。 + +#+begin_src emacs-lisp + (scroll-bar-mode -1) + (tool-bar-mode -1) + (menu-bar-mode -1) + (tab-bar-mode -1) +#+end_src + +** テーマ + +ドラキュラテーマを使う。 + +#+begin_src emacs-lisp + (straight-use-package 'doom-themes) +#+end_src + +#+begin_src emacs-lisp + (load-theme 'doom-dracula t) +#+end_src + + + +** モードライン + +Doom Emacs と同じモードラインを使う。 + +#+begin_src emacs-lisp + (straight-use-package 'doom-modeline) +#+end_src + +doom-mode-line や mode-line に関する設定をする + +#+begin_src emacs-lisp + (doom-modeline-mode) + (setq doom-modeline-project-detection 'projectile) + (setq doom-modeline-buffer-file-name-style 'auto) + (column-number-mode t) +#+end_src + +* Magit + +#+begin_src emacs-lisp + (straight-use-package 'magit) +#+end_src + + +* Org-mode + +** org-directory を設定する + +#+begin_src emacs-lisp + (setq org-directory "~/org/") +#+end_src + +** スピードコマンドを有効にする + +=*= の上で簡単に org の操作ができる。めっちゃ早い。 +ヘルプは =?= 。 + +#+begin_src emacs-lisp + (setq org-use-speed-commands t) +#+end_src + +** HTML 系 + +HTML を生成したときの =validation-link= を削除する。 + +#+begin_src emacs-lisp + (setq org-html-validation-link nil) +#+end_src + +** org-refile + + +#+begin_src emacs-lisp + (setq org-refile-targets '((org-agenda-files :maxlevel . 3))) +#+end_src + +*** 逆順に refile する + +refile したときに最後に追加するのではなくて先頭に追加したい。 + +#+begin_src emacs-lisp + (setq org-reverse-note-order t) +#+end_src + +** org-agenda + +org-directory 直下を org-agenda の対象する。 + +#+begin_src emacs-lisp + (setq org-agenda-files + (list org-directory)) +#+end_src + +*** キーバインドを設定 + +#+begin_src emacs-lisp + (global-set-key (kbd "C-c a") 'org-agenda) +#+end_src + +*** =TODO= のキーワードを設定 + +- やることは =TODO= +- 待ち状態のタスクは =WAIT= +- 完了したタスクは =DONE= +- やめたタスクは =CANCELED= + +#+begin_src emacs-lisp + (setq org-todo-keywords + '((sequence "TODO(t)" "WAIT(w)" "|" "DONE(d)" "CANCELED(c)"))) +#+end_src + +*** 週の最初から表示するのではなく今日から表示されるようにする + +#+begin_src emacs-lisp + (setq org-agenda-start-on-weekday nil) +#+end_src + +*** 今やらなくていいタスクを org-agenda に表示しないようにする + +SCHEDULE が設定されているタスクで、 +始まっていないタスクが org-agenda に表示されないようにする。 + +#+begin_src emacs-lisp + (setq org-agenda-todo-ignore-scheduled 'future) +#+end_src + +*** タスクをブロックする系の設定 + +TODO +は階層構造になることがありサブタスクが完了してからでないとタスクを完了できないようにしたり、 +順番にやらないといけないタスクなどでまだ始められないタスクの表示を灰色にしたりするための設定。 + +=org-enforce-todo-dependencies= を設定すると、 +子の TODO が全て終わりになってからでないと DONE にできなくなる。 + +=org-agenda-dim-blocked-tasks= を設定すると、 +org-agenda でタスクを見たときにブロックされたタスクが暗く表示される。 + +=org-enforce-todo-checkbox-dependencies= は明示的にデフォルトと同じ =nil= に設定する。 +これは一見有効にしたくなる設定だが、これが =t= +だとチェックボックスが全てチェックされた状態にならないと、前述した +=org-agenda-dim-blocked-tasks= の効果により実際にはやらなければならない +TODO のタスクが灰色になってしまう問題が生じる。 + +#+begin_src emacs-lisp + (setq org-enforce-todo-dependencies t) + (setq org-agenda-dim-blocked-tasks t) + (setq org-enforce-todo-checkbox-dependencies nil) +#+end_src + +*** =DONE= したときの時刻を残す + +後からその日に何個のタスクを終了したかを記録するため。 + +#+begin_src emacs-lisp + (setq org-log-done t) +#+end_src + +*** =DONE= したときの時刻は邪魔なので Agenda から見えないようにする + +#+begin_src emacs-lisp + (setq org-agenda-log-mode-items '(clock)) +#+end_src + +*** org-agenda-custom-commands + +#+begin_src emacs-lisp + (setq org-agenda-custom-commands + '(("n" "日程とタスク" + ((agenda "" + ((org-agenda-span 14))) + (todo ""))))) +#+end_src +** org-store-link + +Emacs の任意の場所のリンクを取得する機能。 + +#+begin_src emacs-lisp + (global-set-key (kbd "C-c l") 'org-store-link) +#+end_src + +** org-table + +=org-table-automatic-realign= を無効化しないと org-capture で表に追記したときに謎の空行が生じて表が破壊される現象を観測していて、 +これを防ぐために =nil= に設定している。 + +#+begin_src emacs-lisp + (setq org-table-automatic-realign nil) +#+end_src + +** htmlize + +htmlize は良い感じに org-mode を HTML で出力するのに必要。 + +#+begin_src emacs-lisp + (straight-use-package 'htmlize) +#+end_src + +** org-startup 系 + +org-mode のファイルを開いたときにインデントされていてかつ折り畳まれた状態にする。 + +#+begin_src emacs-lisp + (setq org-startup-indented t) + (setq org-startup-folded t) +#+end_src + +** org-archive + +org-mode のアーカイブ先を設定する。 + +#+begin_src emacs-lisp + (setq org-archive-location "~/org/archive/archive.org::datetree/") +#+end_src + +デフォルトでは tag でアーカイブする。 + +#+begin_src emacs-lisp + (setq org-archive-default-command 'org-archive-set-tag) +#+end_src + +** 今日の定義は変更しない + +深夜のタイムスタンプが正常に動作しなくなるため、明示的にデフォルトのままに設定する。 + +#+begin_src emacs-lisp + (setq org-extend-today-until 0) +#+end_src + +** org-capture + +#+begin_src emacs-lisp + (global-set-key (kbd "C-c c") 'org-capture) + (setq org-default-notes-file (concat org-directory "notes.org")) +#+end_src + +*** Template + +#+begin_src emacs-lisp + (setq org-capture-templates + `(("c" "メモ" entry (file+headline "" "メモ") + "* %?\n%U" + :empty-lines 1) + ("a" "TODO + Location" entry (file+headline "" "タスク") + "* TODO %?\n%U\n%a" + :empty-lines 1) + ("t" "TODO" entry (file+headline "" "タスク") + "* TODO %?\n%U" + :empty-lines 1) + ("T" "すぐにはじめる TODO" entry (file+headline "" "タスク") + "* TODO %?\n%U" + :empty-lines 1 + :clock-in t + :clock-keep t) + ("i" "Issue" entry (file+headline "" "Issue") + "* TODO %?\n:PROPERTIES:\n:CUSTOM_ID: %<%Y-%m-%d>-%^{ID}\n%U" + :empty-lines 1 + :jump-to-captured t) + ("I" "すぐに始める Issue" entry (file+headline "" "Issue") + "* TODO %?\n:PROPERTIES:\n:CUSTOM_ID: %<%Y-%m-%d>-%^{ID}\n%U" + :empty-lines 1 + :clock-in t + :clock-keep t + :jump-to-captured t) + ("C" "日程" entry (file+headline "" "日程") + "* %?\n%^t\n" + :empty-lines 1) + ("n" "今やっているタスクにサブタスクを追加" entry (clock) + "* TODO %?%U" + :empty-lines 1) + ("N" "(clock-keep) サブタスクを開始する" entry (clock) + "* TODO %?%U" + :empty-lines 1 + :clock-in t + :clock-keep t))) +#+end_src + +** org-clock + +*** org-clock-goto + +グローバルに org-clock-goto できるようにする + +#+begin_src emacs-lisp + (global-set-key (kbd "C-c g g") 'org-clock-goto) +#+end_src + -- cgit v1.2.3