Emacs Tips

2023-08-31 4095 words 9 mins read

目次

Emacs についてコツ

Ubuntu MATE で複数の Emacs ディストリビューションを動かす

目的

Ubuntu MATE 23.04 に Emacs をインストールする方法を説明します。

また、chemacs2 を使って複数の Emacs を同時に動かせるようにします。

以下のツールを使います。

chemacs2
Emacs のバージョンスッチャー
Spacemacs
人気のある Emacs のディストリビューション
doomemacs
これも人気のある Emacs のディストリビューション

今回の目標のイメージ

今回の設定を行なうと下図のように Spacemacs と Doom Emacs を同時に動かすことができます。

Spacemacs と Doom Emacs を同時に動かす

図1: 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
ソースコード 1: Ubuntu MATE へのEmacsのインストール

Emacs のバージョンを確認します:

emacs --version
ソースコード 2: Emacsのバージョン確認
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
ソースコード 3: chemacs のインストール

既存の Emacs 設定があった場合には、次のように退避されます:

  • ~.emacs/ → ~.emacs.bak/
  • ~.emacs.d/ → ~.emacs.defaulta/

以上で chemacs のインストールは終了です。

Spacemacs のインストール

今回使用するディレクトリは次のとおりです。

~/EmacsDist/Spacemacs
Spqcemacs のディレクトリ
~/EmacsDist/DoomEmacs
Doom Emacs のディレクトリ
~/EmacsDist ディレクトリの作成

各種 Emacs のディストリビューションを格納するディレクトリを作成します

mkdir ~/EmacsDist
ソースコード 4: 各種Emacsのディストリビューションを格納するディレクトリno作成
Spacemacs のレポジトリのクローン

Spacemacs のレポジトリをクローンします。

cd ~/EmacsDist
git clone https://github.com/syl20bnr/spacemacs ~/EmacsDist/Spacemacs
ソースコード 5: Spacemacsのレポジトリのクローン

“develop” ブランチをチェックアウトします 必要ないかもしれません。

cd Spacemacs
git checkout develop
ソースコード 6: "develop" ブランチのチェックアウト
~/.spacemacs.d ディレクトリの作成

Spacemacs の設定ファイルを格納する ~/.spacemacs.d ディレクトリを作成します。

mkdir ~/.spacemacs.d
ソースコード 7: ~/.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
ソースコード 8: Doom Emacs のレポジトリをクローン
doom install の実行

次に Doom Emacs をインストールします。 結構時間がかかります。 途中で質問がでるので “y” と入力します。

~/.doom.d という、設定ファイルを格納するフォルダが作成されます。

~/EmacsDist/DoomEmacs/bin/doom install
ソースコード 9: 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
ソースコード 10: 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 の設定ファイルがあるディレクトリです。

ー doom

user-emacs-directory
"~/EmacsDist/DoomEmacs は Doom Emacs のレポジトリを クローンしたディレクトリでう。
  • DOOMDIR: ~/.doom.d は Doom Emacs の設定ファイルがあるディレクトリです
~/.emacs-profile

~/.emacs-profile を作成し、次のように入力します。

spacemacs
ソースコード 11: ~/.emacs-profile

“spacemacs” は ~/.emacs-profiles.el の中で指定した エントリーの名前です。ここで指定したものが “emacs” 単体で 起動したときに使用されます。

以上で chemacs の設定は終了です。

chemacs の使いかた

Spacemacs を起動するには次のようにします.

emacs --with-profile spacemacs
# または
emacs
ソースコード 12: Spacemacsを起動する

Doom Emacs を立ち上げるには次のようにします。

emacs --with-profile doom
ソースコード 13: Doom Emacsを立ち上げる

結論

今回は chemacs2 を使って、 Ubuntu 上で Spacemacs と Doom Emaccs を動かす 方法を紹介しました。

Spacemacs の使いかた/設定については別の機械に紹介します。

“muhenkan” (無変換)キーを evil-escape に割り当てる(Spacemacs)

Spacemacs の vim と hybrid の編集モードでは、 “ESC” キーを頻繁に叩きます。

しかし “ESC” キーはホームポジションからはるか遠くにあります。 そこで “ESC” を別のキーにヮリアテます。

日本語 106 キーボードでは、私が使っていない キーがいくつかあります。

日本語 106 キーボード

図2: 日本語 106 キーボード

よって “muhenkan” (無変換)キー (スペースバーの左)を =evil-escape" に割り当てます。 これで “muhenkan” キーを叩くことと “ESC” キーを 叩くことが同じになりまう

これを Emacs のコンフィギュレーションに追加してください:

(define-key global-map (kbd "<muhenkan>") 'evil-escape)
ソースコード 14: Bind "muhenkan" key to =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” を押します。

図3: Spacemacs の編集モードの選択

図3: Spacemacs の編集モードの選択

ディストリビューションの選択肢

次に、どのディストリビューションを使うかが 質問されます。 矢印キーを使って、 “spacemacs” を選択してください。

図4: ディストリビューションの選択

図4: ディストリビューションの選択

パッケージのインストール

ディストリビューションの選択肢が終了したらあ、 自動的に必要な Emacs のパッケージがインストールされます。 しばらくお待ちください。

Spacemacs の終了のしかた

Spacemacs を終了するには次をうちます。

=space q q=

space q とタイプしたら Spacemacs の終了メニューが出るので、 “q” を押して終了します。

図5: Spacemacs の終了メニュー

図5: Spacemacs の終了メニュー

または編集モードが 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).


Tags: Emacs

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now
This website uses cookies to ensure you get the best experience on our website. Learn more Got it