Emacs Tips
2023-08-31
4095 words
9 mins read
- Emacs についてコツ
- Ubuntu MATE で複数の Emacs ディストリビューションを動かす
- “muhenkan” (無変換)キーを
evil-escape
に割り当てる(Spacemacs) - TODO Spacemacs を起動/設定する
- TODO Spacemacs で画面のズームイン/ズームアウト
- TODO Spacemacs のフォント設定
- TODO ox-hugo 用のテンプレートを作る
- TODO Org-mode で ox-hugo 用のテンプレートを作る
- TODO ブラウザから Org-mode へリンクをコピーする
- TODO doom-themes を使う
- TODO Emacs でロックファイルを作らないようにする
- TODO doom-modeline を使う
Emacs についてコツ
Ubuntu MATE で複数の Emacs ディストリビューションを動かす
目的
Ubuntu MATE 23.04 に Emacs をインストールする方法を説明します。
また、chemacs2 を使って複数の Emacs を同時に動かせるようにします。
以下のツールを使います。
今回の目標のイメージ
今回の設定を行なうと下図のように Spacemacs と Doom Emacs を同時に動かすことができます。
環境
今回 Emacs をインストールする環境です。
- Guest OS
- Ubuntu MATE 23.04
- Host OS
- Windowd 11 Professional
VM 環境: VirtualBox 7.0.100
Ubuntu MATE への Emacs のインストール
Ubuntu MATE へ Emacs のインストールするには次のようにします。
sudo apt -y install emacs emacs-gtk
Emacs のバージョンを確認します:
emacs --version
GNU Emacs 28.2
Copyright (C) 2022 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
以上で Emacs 自体のインストールは終了です。
Chemacs を使って複数の Emacs をたちあげる
複数の Emacs の異なるディストリビューション、 異なるバージョンを動かしたいことがあります。 そのために私は chemacs2 を使っていあます。
今回は次の 2 つの Emacs のディストリビューションを 動かします。
chemacs2 の詳細は以下をごらんください。
今回使用するディレクトリ
今回使うディレクトリの説明です。 「chemacs の設定」で重要になります。
~/.emacs.d
- chemacs 用のファイルがはいります
~/EmacsDist
- 複数の Emacs のディレクトリを置くディレクトリ
~/EmacsDist/Spacemacs
- Spqcemacs のディレクトリ
~/EmacsDist/DoomEmacs
- Doom Emacs のディレクトリ
~/.spacemacs.d
- Spacemacs 用の設定がはいるディレクトリ
=~/.doom.d
- Doom Emacs 用の設定がはいるディレクトリ
chemacs のインストール
chemacs2 をインストールします。 ターミナルンから次を順番に実行してください
# .emacs ファイルの退避
[ -f ~/.emacs ] && mv ~/.emacs ~/.emacs.bak
# .emacs.d ディレクトリの退避
[ -d ~/.emacs.d ] && mv ~/.emacs.d ~/.emacs.default
# Chemacs のインストール
git clone https://github.com/plexus/chemacs2.git ~/.emacs.d
既存の Emacs 設定があった場合には、次のように退避されます:
- ~.emacs/ → ~.emacs.bak/
- ~.emacs.d/ → ~.emacs.defaulta/
以上で chemacs のインストールは終了です。
Spacemacs のインストール
今回使用するディレクトリは次のとおりです。
~/EmacsDist/Spacemacs
- Spqcemacs のディレクトリ
~/EmacsDist/DoomEmacs
- Doom Emacs のディレクトリ
~/EmacsDist
ディレクトリの作成
各種 Emacs のディストリビューションを格納するディレクトリを作成します
mkdir ~/EmacsDist
Spacemacs のレポジトリのクローン
Spacemacs のレポジトリをクローンします。
cd ~/EmacsDist
git clone https://github.com/syl20bnr/spacemacs ~/EmacsDist/Spacemacs
“develop” ブランチをチェックアウトします 必要ないかもしれません。
cd Spacemacs
git checkout develop
~/.spacemacs.d
ディレクトリの作成
Spacemacs の設定ファイルを格納する
~/.spacemacs.d
ディレクトリを作成します。
mkdir ~/.spacemacs.d
以上で Spacemacs のインストールは終了です。
Doom Emacs のインストール
doom Emacs をインストールします。 使用されるディレクトリです。
~/.spacemacs.d
- Spacemacs 用の設定がはいるディレクトリ
=~/.doom.d
- Doom Emacs 用の設定がはいるディレクトリ
~/.spacemacs.d
- Spacemacs 用の設定がはいるディレクトリ
=~/.doom.d
- Doom Emacs 用の設定がはいるディレクトリ (doom instal で自動的に作成されます)
Doom Emacs のレポジトリをクローン
Doom Emacs のレポジトリをクローンします: すぐに終わります。
cd ~/EmacsDist
git clone --depth 1 https://github.com/doomemacs/doomemacs ~/EmacsDist/DoomEmacs
doom install
の実行
次に Doom Emacs をインストールします。 結構時間がかかります。 途中で質問がでるので “y” と入力します。
~/.doom.d
という、設定ファイルを格納するフォルダが作成されます。
~/EmacsDist/DoomEmacs/bin/doom install
Installing Doom Emacs!
✓ Created ~/.doom.d/
- Creating ~/.doom.d/init.el
✓ Done!
- Creating ~/.doom.d/config.el
✓ Done!
- Creating ~/.doom.d/packages.el
✓ Done!
Generate an envvar file? (see `doom help env` for details) (y or n) y
# y と入力します
> Generating envvars file
✓ Generated ~/EmacsDist/DoomEmacs/.local/env
Installing plugins
> Installing straight...
...省略
Download and install all-the-icon's fonts? (y or n) Please answer y or n. Download and install all-the-icon's fonts? (y or n) Please answer y or n. Download and install all-the-icon's fonts? (y or n) y
# y と入力します
✓ Finished! Doom is ready to go!
But before you doom yourself, here are some things you should know:
1. Don't forget to run 'doom sync', then restart Emacs, after modifying init.el
or packages.el in ~/.config/doom.
This command ensures needed packages are installed, orphaned packages are
removed, and your autoloads/cache files are up to date. When in doubt, run
'doom sync'!
2. If something goes wrong, run `doom doctor`. It diagnoses common issues with
your environment and setup, and may offer clues about what is wrong.
3. Use 'doom upgrade' to update Doom. Doing it any other way will require
additional steps. Run 'doom help upgrade' to understand those extra steps.
4. Access Doom's documentation from within Emacs via 'SPC h d h' or 'C-h d h'
(or 'M-x doom/help')
Have fun!
✓ Finished in 9m 48s
、=doom sync= の実行
上の出力に書いてあるとおり、=doom sync= を実行します。
~/EmacsDist/DoomEmacs/bin/doom sync
> Synchronizing "default" profile...
> Regenerating envvars file
✓ Generated ~/EmacsDist/DoomEmacs/.local/env
> Installing packages...
- No packages need to be installed
> (Re)building packages...
- No packages need rebuilding
> Purging orphaned packages (for the emperor)...
- Skipping builds
- Skipping elpa packages
- Skipping repos
- Skipping regrafting
- Skipping native bytecode
> (Re)building profile in /home/shimano/EmacsDist/DoomEmacs/.local/etc/@/...
> Deleting old init files...
> Generating 4 init files...
> Byte-compiling ~/EmacsDist/DoomEmacs/.local/etc/@init.28.el...
✓ Built init.28.elc
- Restart Emacs or use 'M-x doom/reload' for changes to take effect
以上で Doom Emacs のインストールが終了しました。
chemacs の設定
~/.emacs-profiles.el
~/.emacs-profiles.el
を作成し、
次のように入力します。
(("spacemacs" . ((user-emacs-directory . "~/EmacsDist/Spacemacs")
(env . (("SPACEMACSDIR" . "~/.spacemacs.d")))))
("doom" . ((user-emacs-directory . "~/EmacsDist/DoomEmacs")
(env . (("DOOMDIR" . "~/.doom.d"))))))
以下パラメータの説明です。
- spacemacs
- user-emacs-directory :
~/EmacsDist/Spacemacs
は Spacemacs のレポジトリを クローンしたディレクトリです - SPACEMACSDIR:
~/.spacemacs.d
は Spacemacs の設定ファイルがあるディレクトリです。
- user-emacs-directory :
ー doom
- user-emacs-directory
"~/EmacsDist/DoomEmacs
は Doom Emacs のレポジトリを クローンしたディレクトリでう。- DOOMDIR:
~/.doom.d
は Doom Emacs の設定ファイルがあるディレクトリです
- DOOMDIR:
~/.emacs-profile
~/.emacs-profile
を作成し、次のように入力します。
spacemacs
“spacemacs” は ~/.emacs-profiles.el
の中で指定した
エントリーの名前です。ここで指定したものが “emacs” 単体で
起動したときに使用されます。
以上で chemacs の設定は終了です。
chemacs の使いかた
Spacemacs を起動するには次のようにします.
emacs --with-profile spacemacs
# または
emacs
Doom Emacs を立ち上げるには次のようにします。
emacs --with-profile doom
結論
今回は chemacs2 を使って、 Ubuntu 上で Spacemacs と Doom Emaccs を動かす 方法を紹介しました。
Spacemacs の使いかた/設定については別の機械に紹介します。
“muhenkan” (無変換)キーを evil-escape
に割り当てる(Spacemacs)
Spacemacs の vim と hybrid の編集モードでは、 “ESC” キーを頻繁に叩きます。
しかし “ESC” キーはホームポジションからはるか遠くにあります。 そこで “ESC” を別のキーにヮリアテます。
日本語 106 キーボードでは、私が使っていない キーがいくつかあります。
よって “muhenkan” (無変換)キー (スペースバーの左)を =evil-escape" に割り当てます。 これで “muhenkan” キーを叩くことと “ESC” キーを 叩くことが同じになりまう
これを Emacs のコンフィギュレーションに追加してください:
(define-key global-map (kbd "<muhenkan>") 'evil-escape)
日本語 106 キーボードを使ったいない場合には、 “<muhenkan>” を別の使ったいないキーで置き換えてください。
以上です。 Emacs を楽しんでください!
TODO Spacemacs を起動/設定する
ここでは Spacemacs を初めて起動する 方法を説明します。
Emacs と Spacemacs のインストールが おわっていない場合には、 「Ubuntu MATE で複数の Emacs ディストリビューションを動かす •」を 参考にしてインストールしておいてください。
Spacemacs の起動
「Ubuntu MATE で複数の Emacs ディストリビューションを動かす •」を 使って Spacemacs を設定している場合は 次のコマンドで Spacemacs を起動することができます
emacs --with-profile spacemacs
または
emacs
で起動します。
モードの選択
Spacemacs を最初に立ち上げると、 編集モードを何にするかと質問されます。 編集喪には “vim”, “hybrid”, “emacs” の 3 種類があります。それぞれの特徴は次のとおりです。
- vim
- Vil/Vim ユーザーであれば、これを選択するとよいでしょう。
- emacs
- Emacs ユーザーで、Vim のキーバインディングを使いたくないかたは これを選択してください。お勧めはしません。
- hybrid
- 最初は選択できません。 Emacs ユーザーであればこれを選択すると良いかもしれません。 Vim のキーバインディングに加えて、Emacs のキーバインディングも 使ううことができます。私はこれを使っています。
ここでは “vim” を選択します。 “h” と入力して “Return” を押します。
ディストリビューションの選択肢
次に、どのディストリビューションを使うかが 質問されます。 矢印キーを使って、 “spacemacs” を選択してください。
パッケージのインストール
ディストリビューションの選択肢が終了したらあ、 自動的に必要な Emacs のパッケージがインストールされます。 しばらくお待ちください。
Spacemacs の終了のしかた
Spacemacs を終了するには次をうちます。
=space q q=
space q
とタイプしたら
Spacemacs の終了メニューが出るので、
“q” を押して終了します。
または編集モードが hybrid か emacs のかたは
Ctl-+x Ctl+c
が使えます。
次は
次の記事では、Spacemacs のカスタマイズに ついて説明します。
TODO Spacemacs で Rust を編集する
目的
環境
Rust の Ubuntu MATE 23.04 へのインストール
便利なツールのインストール
結論
TODO Spacemacs で画面のズームイン/ズームアウト
目的
設定
使用方法
Ctln+ "-"
- 画面のズームアウト
Ctln+ "shift" + -"
- 画面のズームイン
このキーバインディングはよく使われているようで、 VSCode や qterminal でも使用することができます。
結論
TODO Spacemacs のフォント設定
TODO ox-hugo 用のテンプレートを作る
TODO Org-mode で ox-hugo 用のテンプレートを作る
TODO ブラウザから Org-mode へリンクをコピーする
TODO doom-themes を使う
(require 'doom-themes)
;; Global settings (defaults)
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t) ; if nil, italics is universally disabled
;; Load the theme (doom-one, doom-molokai, etc); keep in mind that each theme
;; may have their own settings.
;; (load-theme 'doom-one t)
(load-theme 'doom-dracula t)
;; Enable flashing mode-line on errors
(doom-themes-visual-bell-config)
;; Enable custom neotree theme (all-the-icons must be installed!)
;; (doom-themes-neotree-config)
;; or for treemacs users
(doom-themes-treemacs-config)
;; Corrects (and improves) org-mode's native fontification.
(doom-themes-org-config)
TODO Emacs でロックファイルを作らないようにする
(setq create-lockfiles nil)
TODO doom-modeline を使う
To use doom-modeline, change dotspacemacs-mode-line-theme
in init.el
to this:
dotspacemacs-mode-line-theme '(doom)
doom-modeline needs all-the-icons fonts (- domtronn/all-the-icons.el: A utility package to collect various Icon Fonts and propertize them within Emacs.)
To install these fonts, run this in Spacemacs:
all-the-icons-install-fonts
Or, if you can’t get fonts, run this in a terminal:
git clone https://github.com/domtronn/all-the-icons.el.git
cp all-the-icons.el/fonts/all-the-icons.ttf all-the-icons.el/fonts/file-icons.ttf all-the-icons.el/fonts/fontawesome.ttf all-the-icons.el/fonts/material-design-icons.ttf all-the-icons.el/fonts/octicons.ttf all-the-icons.el/fonts/weathericons.ttf ~/.fonts
all-the-icons.el
fc-cache -f -v
Then, restart Spacemacs (SPC q r
).