All in Emacs

GNE Emacsを、初心者の気持ちで、学びなおします。
忘れないように、備忘録として始めました。

Org-mode 初期設定

2022-06-25 19:17:15 | 日記

Org-mode 初期設定

init.el にOrg-modeの設定をする。

※leaf.el でパッケージの管理をしています。leaf.elでのinit.elの書き方は、このブログの記事を参考にしてください。


;; Org-mode  init.elの設定
(leaf org
  :bind (("C-c c" . org-capture)
  ("C-c a" . org-agenda)
  ("C-c l" . org-store-link))
  :setq ((org-capture-templates quote
    ("p" "プライベート" entry
     (file+headline "~/org/inbox.org" "プライベート")
     "* %i%?\n%a")
    (("w" "仕事" entry
      (file+headline "~/org/inbox.org" "仕事")
      "* %i%?\n%a")
     ("a" "家計簿" entry
      (file+headline "~/org/account.org" "家計簿")
      "** %u %^{金額} %^g%?"))))
  )


~/org/inbox.org ファイルを準備します。このファイルは、メモ、todo、スケジュール等をなんでも書きます。ただの空のファイルでもいいですが、使いやすいように下記の内容を入れておきます。


-*- mode: org; -*-
#+TITLE: inbox.org
#+STARTUP:indent fninline lognoteredeadline lognotereschedule lognoterefile
#+CATEGORY: inbox
#+COLUMNS: %38ITEM(Details) %TAGS(Context) %7TODO(To Do) %5Effort(Time){:} %6CLOCKSUM{Total}
#+BEGIN: clocktable  :maxlevel 4 :scope file :timestamp t :block thismonth
#+END


これで、Org-mode の機能が使えるようになります。

 ・org-capture

   C-c c  で、GNU Emacs が起動しているときは、いつでもメモをとる事ができます。

 ・org-agenda 

   C-c a  todo やスケジュールを見やすいように並べて表示する。

 ・org-store-link (C-c h)

   C-c l   ファイルのリンクを作成します。

 

 

 


毎日使っている Org-mode について

2022-06-18 05:43:25 | 日記

毎日つかっている Org-mode について

 GNU Emacs を使い続けている理由は、GNU Emacs がすばらしいエディターである事と、パッケージで機能を拡張できることです。そのパッケージのなかで特にお気に入りは、Org-mode です。最近では、Org-mode 無しでは生活できないぐらい、このパッケージに依存しています。

 Org-mode で実行していること

  ・TODOの管理

  ・スケージュール管理

  ・レポートの素案、構成、文章作成

  ・業務日誌

  ・いろいろな生活の記録

 しかし、Org-mode は多機能であり、使い方から設定方法までマニュアルは膨大な量があり最新のものは英語です。インターネットの情報も山ほどあります。しかし、まだ使いこなせていません。そこで Org-mode をおさらいし、今までの使い方を見直したいのと、まだ使ったことの機能にチャレンジしたいと思っています。

これから、Org-mode について少しずつまとめる予定です。

 

 

 

 


GNU Emacs Bookmark の使い方(bookmark)

2022-06-12 03:45:53 | 日記

GNU Emacs Bookmark の使い方(bookmark)

GNU Emacs には、Bookmark機能があります。Bookmarkにファイル名を登録することで登録したファイルを簡単に呼び出すことが出来ます。また、dired ディレクトリ(フォルダ)を保存することもできます。

※Info で検索:bookmark

 C-x r m  、  C-x r m BOOKMARK名 
visitしているファイルのポイント位置に、ブックマークをセットします。また、デフォルト値を使う場合は、ファイル名が登録されて、BOOKMARK名を登録したら、ファイルのポイント位置(カーソルの位置)を保存します。

 C-x r b BOOKMARK名 
BOOKMARK名という名前のブックマークにジャンプします(bookmark-jump)。

 C-x r l 
すべてのブックマークを一覧します(list-bookmarks)。一覧を表示したあとに、BOOKMARK名に  で削除マークして、 x  でBOOKMARK名を削除できます。

C-x b  (consult-buffer)
consult.el パッケージがインストールされて consult-bufferが  C-x b  に登録されていれば、バッファー名、ファイル履歴と一緒にブックマークの一覧も表示されます。これが、とっても便利です。おすすめです。

Bookmarkは、S式で書かれたテキストファイルです。/.emacs.d/bookmark のファイル名で保存されています。直接開いて編集することもできます。また、Bookmarkを別ファイル名に保存したり、それをロードすることもできます。

  M-x bookmark-load <RET> FILENAME名 <RET>
ブックマークのリストを含む、FILENAME名という名前のファイルをロードします。このコマンドはbookmark-writeと同様に、デフォルトのブックマークファイルに加えて、他のファイルのブックマークを使うことができます。

 M-x bookmark-write <RET> FILENAME名 <RET>
現在のすべてのブックマークをファイルFILENAME名に保存します。

 

 


GNU Emacs 日本語マニュアル インストール( info ) ※修正版

2022-06-05 16:13:16 | 日記

GNU Emacs のヘルプ機能として、info があり、たくさんのマニュアルが表示できます。しかし、チュートリアルだけが日本語で、それ以外は英語です。そこで、日本語のマニュアルを追加するために、日本語 info ファイルをインストールします。

(1)インストールする日本語infoファイルのダウンロード

・Emacs 日本語マニュアル、Elisp 日本語マニュアル

ダウンロード先:https://ayatakesi.github.io/

  Emacs 28.1 - emacs 28.1の日本語マニュアル - Info document entirely on one large info              - emacs 28.1のelisp日本語マニュアル - Info document entirely on one large info

ダウンロードするファイル:emacs-ja .info、elisp-ja.info

(2)infoファイルを保存するフォルダの作成

   ~/.emacs.d/info フォルダを作成して、emacs-ja.info、elisp-ja.info を移動する。

(2)dir ファイル作成

 infoファイルを保存したフォルダには、dirファイルが必要なため下記の内容で、dir(拡張子なし)ファイルを作成して、~/.emacs.d/info フォルダに保存する。

注意:4行目に、制御文字、ファイルの最後に改行が入っていないと正常に動作しない。とりあえず、下記の内容を全部コピーしてファイルを作成すること。


This is the file .../info/dir, which contains the
topmost node of the Info hierarchy, called (dir)Top.
The first time you invoke Info you start off looking at this node.

File: dir, Node: Top This is the top of the INFO tree

This (the Directory node) gives a menu of major topics.
Typing "q" exits, "H" lists all Info commands, "d" returns here,
"h" gives a primer for first-timers,
"mEmacs" visits the Emacs manual, etc.

In Emacs, you can click mouse button 2 on a menu item or cross reference
to select it.

* Menu:

Emacs
* Emacs-ja: (emacs-ja). Emacs japanese manual
* Elisp-ja: (elisp-ja). Emacs lisp japanese manual


(4)init.el の設定

下記の内容を init.el に追加します。


(leaf info-file
:config
(add-to-list 'Info-directory-list "~/.emacs.d/info/")

)


(5)infoの使い方

C-h i または C-h C-h i または M-x info で、infoが使えます。

今回追加したものは、Emacs-ja、Elisp-jaです。マニュアルの名前にカーソルを持ってきてEnterキーを押すとマニュアルが表示されます。

 info は階層になっていて、キーワードを選択して、読み進んで行きます。スペースキーで下向きにスクロールします。上位項目に戻るときは ^キー、終了は q キーです。

 今まで、infoで最新のマニュアルが読めることがわかっていましたが、英語なのでほとんど活用してませんでした。これで、Emacsを使いながらマニュアルが参照できます。また、Emacs独学のため、一度は全部読んでみたいと思ってます。ただ、内容は結構ボリュームがあるため、簡単に読破できないだろうな?

 

 

 

 

 

 

 


init.el をleaf.elで書き直し(WindowsとUbuntuに両対応)(4回目修正版)

2022-06-02 03:35:07 | 日記

※前回掲載したものは、windowsのIMEが機能しなかったので、修正版として掲載します。

※OSに合わせて、日本語設定を切り替える部分をleafらしく再修正しました。

※leaf-keywordの範囲(閉じ括弧)をお手本通りに修正、パッケージにleaf-convert-insert-templateで情報(:doc、: req等)を付け加えた。文字化けがあったので日本語フォントの指定を行った。再々修正しました。

※6/2修正分

 which-keyも含めました。また、leafの定義(最初の5行)が抜けていましたので追加しました。

 

init.elをleaf.elで書き直しました。

今後のパッケージ管理は、leaf.elが主流になりそうなので、書き換えました。

あと、WindowsとUbuntu(linux系でmozcであればOK)の両方で、日本語入力ができるようになりました。

WindowsとUbuntuを判定して、日本語設定を変えるようにしています。

 


;;;; init.el
;; 動作確認:
;; Windows10 バージョン 21H2
;; Ubuntu 20.04.4 LTS Release: 20.04 
;; GNU Emacs 28.1 (build 52, x86_64-w64-mingw32) of 2022-04-05
;; 修正日: 2022.06.02 
;; tr-emacs-ime-module README.md を参照して作成
;; package、Windwos IME設定

;; 初めての package-initialize または
;; 何もパッケージがインストールされていない場合のみ
;; package.elをロードさせるため package-initialize を実行してください。

(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 '(("melpa" . "https://melpa.org/packages/")
                       ("melpa-stable" . "https://stable.melpa.org/packages/")
                       ("gnu"   . "https://elpa.gnu.org/packages/")))
  (package-initialize)

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

  (leaf leaf-keywords
    :doc "Additional leaf.el keywords for external packages"
    :req "emacs-24.4" "leaf-3.5.0"
    :tag "settings" "lisp" "emacs>=24.4"
    :url "https://github.com/conao3/leaf-keywords.el"
    :added "2022-05-23"
    :emacs>= 24.4
    :ensure t
    :init
    ;; optional packages if you want to use :hydra, :el-get, :blackout,,,
    (leaf hydra
      :doc "Make bindings that stick around."
      :req "cl-lib-0.5" "lv-0"
      :tag "bindings"
      :url "https://github.com/abo-abo/hydra"
      :added "2022-05-23"
      :ensure t)
    (leaf el-get
      :doc "Manage the external elisp bits and pieces you depend upon"
      :tag "emacswiki" "http-tar" "http" "pacman" "fink" "apt-get" "hg" "darcs" "svn" "cvs" "bzr" "git-svn" "git" "elpa" "install" "elisp" "package" "emacs"
      :url "http://www.emacswiki.org/emacs/el-get"
      :added "2022-05-23"
      :ensure t)
    (leaf blackout
      :doc "Better mode lighter overriding"
      :req "emacs-26"
      :tag "extensions" "emacs>=26"
      :url "https://github.com/radian-software/blackout"
      :added "2022-05-23"
      :emacs>= 26
      :ensure t)
    :config
    ;; initialize leaf-keywords.el
    (leaf-keywords-init)))

(leaf leaf
  :config
  (leaf leaf-convert
    :doc "Convert many format to leaf format"
    :req "emacs-26.1" "leaf-3.6.0" "leaf-keywords-1.1.0" "ppp-2.1"
    :tag "tools" "emacs>=26.1"
    :url "https://github.com/conao3/leaf-convert.el"
    :added "2022-05-23"
    :emacs>= 26.1
    :ensure t)

  (leaf leaf-tree
    :doc "Interactive side-bar feature for init.el using leaf"
    :req "emacs-25.1" "imenu-list-0.8"
    :tag "leaf" "convenience" "emacs>=25.1"
    :url "https://github.com/conao3/leaf-tree.el"
    :added "2022-05-23"
    :emacs>= 25.1
    :ensure t
    :custom ((imenu-list-size . 30)
             (imenu-list-position . 'left))))

(leaf macrostep
  :doc "interactive macro expander"
  :req "cl-lib-0.5"
  :tag "debugging" "macro" "languages" "lisp"
  :url "https://github.com/joddie/macrostep"
  :added "2022-05-23"
  :ensure t
  :bind (("C-c e" . macrostep-expand)))

(leaf all-the-icons
  :doc "A library for inserting Developer icons"
  :req "emacs-24.3"
  :tag "lisp" "convenient" "emacs>=24.3"
  :url "https://github.com/domtronn/all-the-icons.el"
  :added "2022-05-23"
  :emacs>= 24.3
  :when (display-graphic-p)
  :ensure t)

(leaf ime
  :config
  (set-language-environment "Japanese")
  ;; OS によって設定を切り替える
  ;; Windows 日本語設定
  (leaf windows
    :when (eq system-type 'windows-nt) ; Windows
    ;;  (setenv "PATH"  (concat "C:\\Programs\\msys64\\usr\\bin;" (getenv "PATH"))) ; msys2 の PATH 設定を追加
    ;; tr-imeのDLLを自動でダウンロードしてくれる 
    :config
    (leaf tr-ime
      :doc "Emulator of IME patch for Windows"
      :req "emacs-27.1" "w32-ime-0.0.1"
      :tag "emacs>=27.1"
      :url "https://github.com/trueroad/tr-emacs-ime-module"
      :added "2022-05-22"
      :emacs>= 27.1
      :ensure t
      :config
      (tr-ime-standard-install)
      )
     (set-language-environment "Japanese")

    ;; IM のデフォルトを IME に設定
    (setq default-input-method "W32-IME")
    ;; IME のモードライン表示設定
    (setq-default w32-ime-mode-line-state-indicator "[--]")
    (setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
    ;; IME 初期化
    (w32-ime-initialize)
    (w32-ime-wrap-function-to-control-ime 'universal-argument)
    (w32-ime-wrap-function-to-control-ime 'read-string)
    (w32-ime-wrap-function-to-control-ime 'read-char)
    (w32-ime-wrap-function-to-control-ime 'read-from-minibuffer)
    (w32-ime-wrap-function-to-control-ime 'y-or-n-p)
    (w32-ime-wrap-function-to-control-ime 'yes-or-no-p)
    (w32-ime-wrap-function-to-control-ime 'map-y-or-n-p)
    (w32-ime-wrap-function-to-control-ime 'register-read-with-preview)
   (set-frame-font "MS Gothic-12" nil t)
   (modify-all-frames-parameters
    '((ime-font . "MS Gothic-12")))
    (add-hook 'isearch-mode-hook
       (lambda nil
  (setq w32-ime-composition-window (minibuffer-window))))
    (add-hook 'isearch-mode-end-hook
       (lambda nil
  (setq w32-ime-composition-window nil)))
    )

  ;; Mac OS X 日本語設定
  ;; (leaf mac
  ;;   :when (eq system-type 'darwin) ; Mac OS X
  ;;   :config
  ;;   (exec-path-from-shell-initialize)) ; PATH 設定を引き継ぐ

  ;; linux OS 日本語設定
  (leaf linux
    :when (eq system-type 'gnu/linux) ; linux
    :config
    (leaf mozc
      :doc "minor mode to input Japanese with Mozc"
      :tag "input method" "multilingual" "mule"
      :added "2022-05-22"
      :ensure t
      :config
     (set-language-environment "Japanese")
 
     (setq default-input-method "japanese-mozc")
      (prefer-coding-system 'utf-8)
      (setq mozc-candidate-style 'echo-area)
      (setq quail-japanese-use-double-n t))
    )
  )

(leaf vertico-setting
  :config
  (leaf consult
    :doc "Consulting completing-read"
    :req "emacs-27.1" "compat-28.1"
    :tag "emacs>=27.1"
    :url "https://github.com/minad/consult"
    :added "2022-05-22"
    :emacs>= 27.1
    :ensure t
    :bind (("C-c h" . consult-history)
    ("C-c m" . consult-mode-command)
    ("C-c b" . consult-bookmark)
    ("C-c k" . consult-kmacro)
    ("C-x M-:" . consult-complex-command)
    ("C-x b" . consult-buffer)
    ("C-x 4 b" . consult-buffer-other-window)
    ("C-x 5 b" . consult-buffer-other-frame)
    ("M-#" . consult-register-load)
    ("M-'" . consult-register-store)
    ("C-M-#" . consult-register)
    ("M-y" . consult-yank-pop)
    (" a" . consult-apropos)
    ("M-g e" . consult-compile-error)
    ("M-g f" . consult-flymake)
    ("M-g g" . consult-goto-line)
    ("M-g M-g" . consult-goto-line)
    ("M-g o" . consult-outline)
    ("M-g m" . consult-mark)
    ("M-g k" . consult-global-mark)
    ("M-g i" . consult-imenu)
    ("M-g I" . consult-imenu-multi)
    ("M-s f" . consult-find)
    ("M-s F" . consult-locate)
    ("M-s g" . consult-grep)
    ("M-s G" . consult-git-grep)
    ("M-s r" . consult-ripgrep)
    ("M-s l" . consult-line)
    ("M-s L" . consult-line-multi)
    ("M-s m" . consult-multi-occur)
    ("M-s k" . consult-keep-lines)
    ("M-s u" . consult-focus-lines)
    ("M-s e" . consult-isearch)
    (isearch-mode-map
     ("M-e" . consult-isearch)
     ("M-s e" . consult-isearch)
     ("M-s l" . consult-line)
     ("M-s L" . consult-line-multi)))
    )
  (leaf orderless
    :doc "Completion style for matching regexps in any order"
    :req "emacs-26.1"
    :tag "extensions" "emacs>=26.1"
    :url "https://github.com/oantolin/orderless"
    :added "2021-09-04"
    :emacs>= 26.1
    :setq ((completion-styles quote
         (orderless)))
    :ensure t)
  
  (leaf vertico
    :doc "VERTical Interactive COmpletion"
    :req "emacs-27.1"
    :tag "emacs>=27.1"
    :url "https://github.com/minad/vertico"
    :added "2021-09-04"
    :emacs>= 27.1
    :setq ((vertico-count . 10))
    :ensure t)
  
  (leaf marginalia
    :doc "Enrich existing commands with completion annotations"
    :req "emacs-27.1"
    :tag "emacs>=27.1"
    :url "https://github.com/minad/marginalia"
    :added "2022-05-22"
    :emacs>= 27.1
    :ensure t)

  (leaf init_hook
    :preface
    (defun after-init-hook nil
      (vertico-mode)
      (marginalia-mode)
      (savehist-mode))
    :hook ((after-init-hook . after-init-hook)))
  
  (leaf embark
    :doc "Conveniently act on minibuffer completions"
    :req "emacs-26.1"
    :tag "convenience" "emacs>=26.1"
    :url "https://github.com/oantolin/embark"
    :added "2021-09-04"
    :emacs>= 26.1
    :ensure t)
  
  (leaf embark-consult
    :doc "Consult integration for Embark"
    :req "emacs-25.1" "embark-0.9" "consult-0.1"
    :tag "convenience" "emacs>=25.1"
    :url "https://github.com/oantolin/embark"
    :added "2021-09-04"
    :emacs>= 25.1
    :ensure t
    :after embark consult)
  )

(leaf which-key
  :doc "Display available keybindings in popup"
  :req "emacs-24.4"
  :tag "emacs>=24.4"
  :url "https://github.com/justbur/emacs-which-key"
  :added "2022-05-22"
  :emacs>= 24.4
  :ensure t
  :config
  (which-key-mode);; (which-key-setup-minibuffer)
  )


(provide 'init)