「Spacemacs」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(翻訳)
 
(校正(でき・出来))
 
(3人の利用者による、間の16版が非表示)
1行目: 1行目:
[[Category:開発]]
 
 
[[Category:テキストエディタ]]
 
[[Category:テキストエディタ]]
  +
[[en:Spacemacs]]
 
[[Wikipedia:ja:Spacemacs|Spacemacs]] は [[Emacs]] をベースに [[Vim]] のキーバインドを組み合わせて作られた、拡張性・カスタマイズ性の高いテキストエディタです。プロジェクトの目標は Vim と Emacs エディタそれぞれから長所を抽出して統合することです。Spacemacs ディストリビューションはコミュニティ主導の [[Emacs]] 設定を元にしています。デフォルトの Emacs の挙動を拡張しており大量の追加機能が存在します。
 
[[Wikipedia:ja:Spacemacs|Spacemacs]] は [[Emacs]] をベースに [[Vim]] のキーバインドを組み合わせて作られた、拡張性・カスタマイズ性の高いテキストエディタです。プロジェクトの目標は Vim と Emacs エディタそれぞれから長所を抽出して統合することです。Spacemacs ディストリビューションはコミュニティ主導の [[Emacs]] 設定を元にしています。デフォルトの Emacs の挙動を拡張しており大量の追加機能が存在します。
   
13行目: 13行目:
   
 
=== Spacemacs のインストール ===
 
=== Spacemacs のインストール ===
  +
Spacemacs をインストールするには GitHub から設定を複製して Emacs の設定を完全に置き換える必要があります:
 
  +
Spacemacs をインストールするには、GitHub から実際の構成を複製し、Emacs 構成を完全に置き換える必要があります。 2020年9月現在、開発ブランチをインストールすることをお勧めします。
  +
$ git clone -b develop https://github.com/syl20bnr/spacemacs ~/.emacs.d
  +
  +
何ヶ月もメンテナンスされていない master の代わりに ブランチをインストールする場合は、次のようにします。
 
$ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
 
$ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
 
{{Note|上記のコマンドはユーザーアカウントから実行してください。}}
 
{{Note|上記のコマンドはユーザーアカウントから実行してください。}}
21行目: 25行目:
   
 
フォントが存在しない場合、他のフォントが使われます。
 
フォントが存在しない場合、他のフォントが使われます。
  +
  +
=== Emacs 設定ファイルを削除する ===
  +
  +
~/.emacs ファイルをバックアップし (必要な場合)、まだ削除していない場合は削除します。そうしないと、Emacs が適切な初期化ファイルをロードできないため、Spacemacs はロードされません。次のように名前を変更し実行して下さい。:
  +
$ mv ~/.emacs ~/.emacs.bak
  +
バックアップせずに削除する場合。:
  +
$ rm ~/.emacs
   
 
=== Spacemacs の初期設定 ===
 
=== Spacemacs の初期設定 ===
49行目: 60行目:
   
 
{{Tip|名前を異なるものにすることでデーモンを複数起動することもできます。}}
 
{{Tip|名前を異なるものにすることでデーモンを複数起動することもできます。}}
  +
  +
=== Systemd モジュール ===
  +
  +
emacs デーモンを実行するための systemd モジュールを作成することができます。コミュニティ ELPA パッケージに起因するセキュリティ上の懸念により、ここで説明されているように、ユーザー特権の systemd ユーザー モジュールとしてデーモンを実行することをお勧めします。
  +
  +
次のような emacs ユーザーの systemd サービス ファイルを作成します。
  +
  +
{{hc|.config/systemd/user/emacs.service|2=
  +
[Unit]
  +
Description=Emacs text editor
  +
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
  +
  +
[Service]
  +
Type=forking
  +
ExecStart=/usr/bin/emacs --daemon=instance1
  +
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
  +
Restart=on-failure
  +
  +
[Install]
  +
WantedBy=default.target
  +
}}
  +
  +
Emacs/Spacemacs デスクトップ ファイルを次のように編集します。 Exec の変更に注意してください。
  +
  +
{{hc|/usr/share/applications/emacs.desktop|2=
  +
[Desktop Entry]
  +
Name=Spacemacs
  +
GenericName=Text Editor
  +
Comment=Edit text
  +
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
  +
Exec=emacsclient -nc -s instance1 %F
  +
Icon=/home/[!!! YOUR USER NAME HERE !!!]/.emacs.d/assets/spacemacs.svg
  +
Type=Application
  +
Terminal=false
  +
Categories=Development;TextEditor;
  +
StartupWMClass=Emacs
  +
Keywords=Text;Editor;
  +
}}
  +
  +
次に、[[daemon-reload]] して {{ic|emacs.service}} [[systemd/ユーザー]] を [[起動]] して実行します。
  +
  +
エラーが発生していないことを確認してください。すでにデーモンとして実行されている emacs をいじっていてエラーが発生した場合は、作成したばかりのユーザー emacs サービスを [[有効化]] して再起動することをお勧めします。ユーザー {{ic|emacs.service}} [https://wiki.archlinux.jp/index.php/%E3%83%98%E3%83%AB%E3%83%97:%E8%AA%AD%E3%81%BF%E6%96%B9#systemd_.E3.83.A6.E3.83.8B.E3.83.83.E3.83.88.E3.81.AE.E3.82.B3.E3.83.B3.E3.83.88.E3.83.AD.E3.83.BC.E3.83.AB ユニットステータス] を確認することも役立つ場合があります。次に、成功した場合は、永続化のために [[systemd/ユーザー]] を [[有効化]] します。
  +
  +
完了すると、DE ランチャーを介して emacs を起動し、ロード時間を大幅に短縮できますが、非常に強力なシステムでも emacs はすぐには開きません。必要に応じて、次のコマンドをエイリアスとすることもできます。 ''instance1'' の名前も変更できますが、サービス ファイル内のデーモンの名前と一致するようにしてください。
  +
  +
$ emacsclient -nc -s instance1
   
 
== 使用方法 ==
 
== 使用方法 ==
61行目: 118行目:
   
 
==== 準備 ====
 
==== 準備 ====
  +
基本概念を説明するのにお試し用のテキストが必要です。最初に作成しましょう。現段階ではコマンドがよく分からなくても結構です。
In order to explain the basic concepts we need some text to play with. Let's generate it first. Please, don't mind if the commands are unclear right now, you don't need to know them at moment.
 
   
# Run Spacemacs
+
# Spacemacs を実行
# Press {{ic|SPC b N}} to create new empty buffer
+
# {{ic|SPC b N}} を押して新しい空のバッファを作成
# Press {{ic|9 SPC i l l}} to insert some text
+
# {{ic|9 SPC i l l}} を押してテキストを挿入
   
  +
9行のテキストが生成されるはずです。作成したテキストを使って次のセクションで説明しているコマンドを試してみてください。
You should see a nine lines of generated text in result. Use them to experiment with the commands described in the next sections.
 
   
{{Note|When the '''SPC''' key sequence is used, you need to press keys one after another. So you press '''SPACE''' key, followed by '''b''', followed by '''N'''. Uppercase letters should be entered with shift key, for example '''N''' is '''Shift+n'''. So the final sequence would be '''SPACE''', '''b''', '''Shift+n'''}}
+
{{Note|'''SPC''' キーシーケンスを使うときは、ひとつずつキーを押してください。つまり '''SPACE''', '''b''', '''N''' の順番でキーを押します。大文字は Shift キーを押しながら押してください。例えば '''N''' '''Shift+n''' です。最終的なシーケンスは '''SPACE''', '''b''', '''Shift+n''' となります。}}
  +
{{Tip|SPC キーを押すとヘルプメニューが下部に表示されます。メニューからコマンドを確認することが可能です。}}
{{Tip|When you press SPC key, help menu appears in the bottom. You can inspect possible commands there.}}
 
   
  +
最初に'''ステート'''について説明します。
Now we can move closer to concept named '''states'''.
 
   
 
==== エディタステート ====
 
==== エディタステート ====
  +
Spacemacs と普通のテキストエディタの大きな違いは'''ステート'''です。ステートによってエディタの動作が変わります。例えば (普通のテキストエディタと同じように) 文章を入力できる'''挿入ステート'''やキーが全てコマンドとして認識されて文章は変更されない'''ノーマルステート'''が存在します。どれかひとつのステートが有効になります。ステートの切り替えは Spacemacs を使うにあたって鍵となるスキルです。
The major difference between Spacemacs and regular text editor is '''states'''. Each state changes the way how the editor works. For example, there is an '''insert state''', where you able to enter text (like in a regular text editor), and there is a '''normal state''', where all your keypresses are used as commands, and doesn't change the actual text.
 
Only one state can be active at the time. Switching between the states is the key skill to use Spacemacs successfully.
 
   
  +
エディタの現在のステートは左下に表示されます。色付きの矩形に "1" (デフォルト) と表示されているのがそうで、色によって現在のステートが分かります。様々なステートが存在しますが、通常使用するステートは限られます:
Current editor state is displayed in a left bottom corner. It have a form of colored rectangle with text "1" (by default). The color describes the current state. There are a lot of states, but only a few of them are used regularly:
 
   
  +
* オレンジは'''ノーマルステート'''です。コマンドの入力やテキストの移動で使います。
* Orange. This is '''normal state'''. Used for entering commands and text navigation.
 
  +
* グリーンは'''挿入ステート'''です。テキストの入力に使います。
* Green. This is '''insert state'''. Used for a text input.
 
  +
* グレーは'''ビジュアルステート'''です。テキストの選択と操作に使います。
* Grey. This is '''visual state'''. Used for selecting chunks of text and controlling them.
 
   
  +
カーソルの色でも現在のステートは判別できます。
You can also check the cursor color for the current state.
 
   
{{Note|In order to use Spacemacs you will need to know at least '''normal''' and '''insert''' state.}}
+
{{Note|Spacemacs を使い込むには最低でも'''ノーマル''''''挿入'''ステートを知る必要があります。}}
   
 
===== ノーマルステート =====
 
===== ノーマルステート =====
  +
ノーマルステートではテキストの移動とコマンドの実行ができます。ノーマルステートで直接テキストを打ち込むことはできません。代わりに、素早く移動したり様々な校正を行うことができます。ノーマルステートはデフォルトのステートであり、'''オレンジ'''色をしています。
Normal state is used for text navigation and running commands. You can't directly enter text in this mode. Instead, you able to quickly navigate and make any sort of corrections there. Normal state is default state, and it has '''orange''' color.
 
   
  +
{{ic|ESC}} キーを押すか {{ic|fd}} キーシーケンスでいつでもノーマルステートに戻ることが可能です。
You can always return to normal state by pressing {{ic|ESC}} key or {{ic|fd}} key sequence if you accidentally leave it.
 
   
 
{{Note|
 
{{Note|
105行目: 161行目:
 
* {{ic|l}} - 1文字分だけ右にカーソルを移動
 
* {{ic|l}} - 1文字分だけ右にカーソルを移動
   
  +
単語あるいは文章単位の移動もひとつのキーで行うことができます:
It's also possible to navigate between the words or even sentences with single key:
 
* {{ic|w}} - move to next word (beginning)
+
* {{ic|w}} - 次の単語 (の先頭) に移動
* {{ic|b}} - move to previous word (beginning)
+
* {{ic|b}} - 前の単語 (の先頭) に移動
* {{ic|(}} - move to the beginning of current sentence
+
* {{ic|(}} - 現在の文の先頭に移動
* {{ic|)}} - move to the beginning of next sentence
+
* {{ic|)}} - 次の文の先頭に移動
* {{ic|^}} - move to beginning of line
+
* {{ic|^}} - 行の先頭に移動
* {{ic|$}} - move to the end of line
+
* {{ic|$}} - 行の末尾に移動
   
  +
ページをスクロールするには以下のコマンドを使います:
To scroll the pages, use the following commands:
 
* {{ic|Ctrl+f}} - move one page down
+
* {{ic|Ctrl+f}} - 1ページ分だけ下に移動
* {{ic|Ctrl+b}} - move one page up
+
* {{ic|Ctrl+b}} - 1ページ分だけ上に移動
* {{ic|gg}} - goto first line of the document
+
* {{ic|gg}} - 文章の一番最初の行に移動
* {{ic|G}} - goto last line of the document
+
* {{ic|G}} - 文章の一番最後の行に移動
   
  +
コマンドに数字を付けることで、複数回コマンドを繰り返すことができます:
You can also use numbers with commands, so they would repeat '''n''' times:
 
* {{ic|5j}} - move cursor five lines down
+
* {{ic|5j}} - カーソルを5行下に移動
* {{ic|7w}} - move cursor seven words forward
+
* {{ic|7w}} - カーソルを7単語分先に移動
* {{ic|3 Ctrl+f}} - move three pages down
+
* {{ic|3 Ctrl+f}} - 3ページ下に移動
* {{ic|20gg}} - move cursor to line with number 20
+
* {{ic|20gg}} - カーソルを20行目に移動
   
  +
{{Tip|Spacemacs では数字の引数がよく使われます。}}
{{Tip|Numeric arguments are widely used in Spacemacs world.}}
 
   
  +
上記で説明していないコマンドも多数存在します。基本的には Spacemacs では '''Vim''' のように自由自在に移動できます。
There are a lot of commands uncovered. Basicaly, you can navigate between everything in Spacemacs, thanks to '''Vim-like''' flow. Check the additional resources to get the details.
 
   
 
====== テキスト操作 ======
 
====== テキスト操作 ======
133行目: 189行目:
 
以下のコマンドでテキストを編集することができます:
 
以下のコマンドでテキストを編集することができます:
   
* {{ic|x}} - cut the symbol under cursor
+
* {{ic|x}} - カーソルの文字をカット
* {{ic|dw}} - cut the word under cursor
+
* {{ic|dw}} - カーソルの単語をカット
* {{ic|dd}} - cut the line under cursor
+
* {{ic|dd}} - カーソルの行をカット
* {{ic|yw}} - copy (yank) the word under cursor
+
* {{ic|yw}} - カーソルの単語をコピー (ヤンク)
* {{ic|yd}} - copy (yank) the line under cursor
+
* {{ic|yd}} - カーソルの行をコピー (ヤンク)
  +
* {{ic|p}} - コピー・カットしたテキストを貼り付け
* {{ic|p}} - paste copied/cut text
 
* {{ic|r''a''}} - replace the symbol under cursor to ''a''
+
* {{ic|r''a''}} - カーソルの文字を ''a'' に置換
   
  +
上記のコマンドで数字引数を使うこともできます。
You can also use numeric arguments there.
 
   
 
====== アンドゥ/リドゥ ======
 
====== アンドゥ/リドゥ ======
   
  +
変更の取り消し・やり直しは以下のコマンドで行なえます:
You can undo and redo changes with the following commands:
 
* {{ic|u}} - undo last change
+
* {{ic|u}} - 最後の変更を取り消し
* {{ic|Ctrl+r}} - redo last change
+
* {{ic|Ctrl+r}} - 最後の変更をやり直し
   
 
===== 挿入ステート =====
 
===== 挿入ステート =====
  +
挿入ステートはテキストを入力するときに使います。普通のエディタと同じような動きをします。ただし、テキストの編集能力は限られています。訂正を行うときは'''ノーマルステート'''に戻してください。挿入ステートの色は'''グリーン'''です。
Insert state is used for the text input. It's very closed to regular editor behavior. However, the ability to modify text is limited. You will need to switch back to the '''normal state''' in order to make corrections. The color of insert state is '''green'''.
 
   
 
====== 挿入ステートに移行 ======
 
====== 挿入ステートに移行 ======
  +
挿入ステートに入るには、'''ノーマルステート'''から {{ic|i}} を押します。カーソルが細く緑色に変化します。何か入力してみてください。挿入が完了したら、{{ic|ESC}} キーまたは {{ic|fd}} キーシーケンスで挿入ステートを終わらせることができます。
To enter the insert state, press {{ic|i}} from the '''normal state'''. Your cursor will changed to thin and green one. Now you can type something. When you ready, just leave the insert state by pressing {{ic|ESC}} key or {{ic|fd}} key sequence.
 
   
  +
挿入モードに移行する方法は多数存在します。違いは最初のカーソル位置だけです。最初は {{ic|i}} ホットキーだけ知っていれば十分でしょう。ただし他の方法もマスターすれば便利なはずです:
There are a lot of ways to enter insert mode. The difference, however, is only related to initial cursor position. It would be enough to know just {{ic|i}} hotkey for the first time. But there are also the others, and they will be very useful when you master them:
 
   
* {{ic|i}} - enter insert mode before the cursor
+
* {{ic|i}} - カーソルの前から挿入モードに入る
* {{ic|a}} - enter insert mode after the cursor
+
* {{ic|a}} - カーソルの後から挿入モードに入る
* {{ic|I}} - enter insert mode at the beginning of the line
+
* {{ic|I}} - 行頭から挿入モードに入る
* {{ic|A}} - enter insert mode at the end of the line
+
* {{ic|A}} - 行末から挿入モードに入る
* {{ic|o}} - enter insert mode at next line
+
* {{ic|o}} - 次の行から挿入モードに入る
* {{ic|O}} - enter insert mode at previous line
+
* {{ic|O}} - 前の行から挿入モードに入る
   
 
====== 挿入ステートから離脱 ======
 
====== 挿入ステートから離脱 ======
  +
挿入ステートを終了するには {{ic|ESC}} キーまたは {{ic|fd}} キーシーケンスを押します。'''ノーマルステート'''に復帰してカーソルがオレンジに変化します。
To leave the insert state press {{ic|ESC}} key or {{ic|fd}} key sequence. You will return to '''normal state''' and cursor will change to orange.
 
   
 
===== ビジュアルステート =====
 
===== ビジュアルステート =====
  +
ビジュアルステートは視覚的にテキストを選択するときに使います。テキストを選択して切り取り・コピーすることができます。ステートカラーは'''グレー'''です。
This state used for visual text selection. It allows to select text chunks and cut/copy them. The state color is '''grey'''.
 
   
  +
ビジュアルステートに移行するには'''ノーマルモード'''から {{ic|v}} ホットキーを押してください。通常モードと同じホットキーでカーソルを移動できますがテキストが選択されます。カーソルを移動すると最初のカーソル位置からテキストが選択され、{{ic|y}}ank (コピー) または {{ic|d}}elete (削除) することができます。{{ic|ve}} や {{ic|v(}} などのコマンドを使って素早く単語や文章を選択することが可能です。詳しくは[[#移動]]セクションを読んでください。
To enter visual state press {{ic|v}} hotkey from the '''normal mode'''. Then you can navigate around using normal mode hotkeys with only one difference: text selection. Cursor movements would select text, based on initial cursor position, and you can {{ic|y}}ank (copy) or {{ic|d}}elete it later. Remember, that you can use commands like {{ic|ve}} or {{ic|v(}} to quickly select words or sentences. Check the {{ic|Normal state: Navigation}} section to get the idea.
 
   
  +
また、{{ic|V}} を押すことで全ての行を選択できます。
You can also press {{ic|V}} to quickly select the whole line.
 
   
 
====== ビジュアルブロックステート ======
 
====== ビジュアルブロックステート ======
   
  +
ビジュアルブロックステートはビジュアルステートの強化版です。テキストを矩形選択することができます。通常のエディタや IDE のマルチカーソルと似ています。{{ic|Ctrl+v}} ホットキーを押すことでビジュアルブロックステートに移行できます。{{ic|h j k l}} キーで移動してみて違いを確認してください。
Visual block state is more powerful version of visual state. It allows to select text in columns. It's similar to multi-cursor concept on regular editors and IDEs. This state can be entered by pressing {{ic|Ctrl+v}} hotkey. Then you can navigate with {{ic|h j k l}} keys to see the difference.
 
   
  +
ビジュアルブロックステートでできることは様々です。詳しくは資料を参照してください。ビジュアルブロックステート機能は元は '''vim visual block mode''' と呼ばれていました。
There a lot of stuff that can be done in visual block state. Refer to the additional resources for this information. This feature is called '''vim visual block mode''' in origin.
 
   
 
==== バッファ (タブ) ====
 
==== バッファ (タブ) ====
  +
Spacemacs ではテキストはバッファと呼ばれる領域に存在します。バッファは通常のエディタにおけるタブと似ています。バッファを切り替えたり新しいバッファを作成することができます。バッファは一部の情報を保存するのにエディタ自身によっても使われています。
The text in Spacemacs located in the areas called buffers. They are very similar to regular editor tabs. You can switch between the buffers and create new ones. Buffers are also used by editor itself by storing some information you can inspect later.
 
   
 
===== 操作 =====
 
===== 操作 =====
  +
現在のバッファのリストを表示するには {{ic|SPC b b}} を押してください。下部に新しいウィンドウが表示され、バッファを確認・フィルタ・操作することができます。*Messages* や *scratch* などのバッファが既に存在するはずです。これらはエディタによって作成されており便利な情報が含まれています。
To show the list of the current buffers press {{ic|SPC b b}}. You will see a new window at the bottom. This is a place you can inspect, filter, and navigate buffers. Some buffers already exist there, like *Messages* and *scratch*. They created by the editor and contain some useful information.
 
   
  +
下部ウィンドウでまずできることは {{ic|pattern}} フィールドに文字を入力することです。バッファがフィルタリングされます。フィルタリング後に何もバッファがなくなったら、"Enter" を押すことで新しいバッファを作成することができます。入力した名前の新しいバッファが作成されて開きます。
The first thing you can do with the bottom window is to type anything into {{ic|pattern}} field. This will filter buffers. If there are no buffers left after the filtering, you can create new one instead, just pressing "Enter" after your input. New buffer will be created and opened.
 
   
You can also open any buffer by hand. Press {{ic|Ctrl+'''j'''}} or {{ic|Ctrl+'''k'''}} to navigate between the lines. Then press {{ic|Ctrl+'''l'''}} or {{ic|Enter}} to confirm your choice. Selected buffer will be opened.
+
バッファは手動で開くこともできます。{{ic|Ctrl+'''j'''}} または {{ic|Ctrl+'''k'''}} を押して行を移動してください。それから {{ic|Ctrl+'''l'''}} または {{ic|Enter}} を押すことで選択されたバッファが開きます。
  +
{{Tip|通常の移動は {{ic|h j k l}} キーを使いますが、場合によっては {{ic|Ctrl}} などの修飾キーを使う必要があります。これによって入力と移動が同時に可能となっています。}}
{{Tip|Remember {{ic|h j k l}} keys? They are widely used for navigation. In some cases we need to use modifier keys like {{ic|Ctrl}}. That allows to input and navigate at the same time. }}
 
   
  +
'''ノーマルステート'''からホットキーを使ってバッファを制御することも可能です:
You can also use some hotkeys from '''normal state''' to control buffers:
 
* {{ic|SPC b b}} - list buffers
+
* {{ic|SPC b b}} - バッファを一覧する
* {{ic|SPC TAB}} - switch to last viewed buffer
+
* {{ic|SPC TAB}} - 最後に表示したバッファに切り替える
* {{ic|SPC b n}} - switch to next buffer (one forward)
+
* {{ic|SPC b n}} - 次のバッファに切り替える (ひとつ先)
* {{ic|SPC b p}} - switch to previous buffer (one backward)
+
* {{ic|SPC b p}} - 前のバッファに切り替える (ひとつ前)
* {{ic|SPC f s}} - save current buffer
+
* {{ic|SPC f s}} - 現在のバッファをファイルに保存
* {{ic|SPC b d}} - close current buffer
+
* {{ic|SPC b d}} - 現在のバッファを閉じる
   
  +
{{Tip|新しいバッファを保存したい場合、ファイルを選択する必要があります。詳しくは次のセクションを読んでください。}}
{{Tip|If you want to save a new buffer, you should choose a file for it. Refer to the next section for details.}}
 
   
 
==== ファイル ====
 
==== ファイル ====
  +
Spacemacs でファイルを操作するときは2つのオプションがあります: インライン操作と組み込みファイルマネージャです。インライン操作は Spacemacs の確認ダイアログで使用し、シェルとよく似ています。組み込みファイルマネージャはもっとユーザーフレンドリーで、ファイルの詳細をチェックすることができます。Spacemacs をマスターするにはそれぞれの操作を学習することが重要です。
Spacemacs provides a two options for file navigation: inline navigation and build-in file manager. Inline navigation is used in Spacemacs confirmation dialogs and it's very similar to the shell one. Build-in file manager is more user-friendly and allows to check the file details. Learning the basics of each is the essential key of mastering Spacemacs.
 
   
  +
より強力なファイルマネージャやツリーを使うオプションも存在します。[[#ファイル操作]]セクションを読んでください。
There also advanced options available, like more powerful file manager and file tree. They are covered in {{ic|Advanced}} section.
 
   
===== インライン (Helm) =====
+
===== インライン (Helm) =====
  +
インライン操作は {{ic|SPC f f}} ホットキーで使えます。バッファ操作とよく似たウィンドウを使用します。ウィンドウからファイルをフィルタリングしたり選択することが可能です。何か文字列を入力することで表示ファイルを絞ることができ、{{ic|Ctrl+j}} または {{ic|Ctrl+k}} を押せば行が上下に移動します。ファイルやディレクトリを開くには {{ic|Ctrl+l}} を押してください。前に戻るには {{ic|Ctrl+h}} を押します。{{ic|TAB}} を押すことで入力補完を使うことができます。
Inline navigation available with {{ic|SPC f f}} hotkey. It uses the window very similar to buffer-navigation one. You can filter and select files there. Just type anything to narrow results, or press {{ic|Ctrl+j}} or {{ic|Ctrl+k}} for moving the line down and up. Press {{ic|Ctrl+l}} to open file or directory, and press {{ic|Ctrl+h}} for going backward. Press {{ic|TAB}} to autocomplete the input.
 
   
 
===== ファイルマネージャ (Dired) =====
 
===== ファイルマネージャ (Dired) =====
  +
より視覚的に使いたい場合、{{ic|SPC a d}} {{ic|Enter}} を押して Spacemacs に組み込まれているファイルマネージャを起動します。{{ic|Ctrl}}+{{ic|h j k l}} キーを押して移動することができ、{{ic|Enter}} を押せばディレクトリに入ったりファイルを開いたりします。
If you need more visual method, run built-in file manager by pressing {{ic|SPC a d}} {{ic|Enter}}. You can navigate, using {{ic|Ctrl}}+{{ic|h j k l}} keys, and press {{ic|Enter}} to enter directories and open files.
 
   
  +
利用可能なホットキーの一部 (他のホットキーは Dired のドキュメントを参照してください):
There are some hotkeys available (refer to dired documentation for more):
 
* {{ic|q}} - quit dired
+
* {{ic|q}} - Dired を終了
* {{ic|R}} - rename file
+
* {{ic|R}} - ファイルの名前を変更
* {{ic|C}} - copy file
+
* {{ic|C}} - ファイルをコピー
* {{ic|+}} - create new directory
+
* {{ic|+}} - 新しいディレクトリを作成
   
  +
{{Tip|強力なファイルマネージャを使いたい場合、[[#ファイルマネージャ (Ranger)]] セクションを参照してください。より多くの機能が実装されており、習熟することで Dired を完全に置き換えることができます。}}
{{Tip|If you need more powerful file manager, check Ranger in {{ic|Advanced}} section. It provides more features and can be the best replacement for Dired when you master it.}}
 
   
=== 上級概念 ===
+
===== 終了 =====
  +
エディタは {{ic|SPC q}} で終了することができます。終了する方法は複数存在します:
At this step you are able to open files, make changes and save them successfully. Half the way is done, and now you can choose what to master next. There are some sections you may be interested.
 
  +
利用可能なものは次のとおりです。
  +
  +
* {{ic|SPC qf}} - 現在のフレームを終了。emacsclient を使っている場合に有用です。
  +
* {{ic|SPC qq}} - Emacs を終了 (kill-emacs)。
  +
* {{ic|SPC qr}} - Emacs を終了から再起動してレイアウトを復元。
  +
* {{ic|SPC qR}} - Emacs を終了して再起動。
  +
* {{ic|SPC qd}} - Emacs を終了して {{ic|--debug-init}} で再起動。
  +
  +
=== 高度な概念 ===
  +
ファイルを開いて、変更を加えて保存できるようになったら半分は上出来です。次はマスターしたいことを選んでください。
   
 
==== レイヤー ====
 
==== レイヤー ====
  +
Spacemacs の最強機能のひとつがレイヤーです。レイヤーはパッケージと設定オプションの集合であり、様々にエディタの機能を拡張できます。様々なプログラミング言語のレイヤーが存在します。また、IRC メッセージや内蔵ウェブブラウザなどツールを追加するレイヤーがあります。レイヤーの完全なリストは [http://spacemacs.org/layers/LAYERS.html Layers] ドキュメントページから確認できます。
One of the strongest features of Spacemacs is layers. Layer is a set of packages and configuration options, that greatly extends editor functionality in some way. There are layers for different programming languages, for example, or layers, providing additional tools (like IRC messaging, or integrated web browser). The full list of layers can be found at [http://spacemacs.org/layers/LAYERS.html Layers] documentation page.
 
   
  +
Spacemacs にはいくつかレイヤーが付属しており、手動でレイヤーを追加することもできます。レイヤーを追加するには、Spacemacs の設定ファイルを開いて ({{ic|SPC f e d}})、{{ic|dotspacemacs-configuration-layers}} セクションを検索してください。そしてリストにレイヤーを追加して Spacemacs を再起動してください。次回起動時に必要なファイルがすべてダウンロードされます。
Some layers are already shipped with Spacemacs, the others can be added manually. To do this, open Spacemacs configuration file ({{ic|SPC f e d}}), and find {{ic|dotspacemacs-configuration-layers}} section there. Then simply add selected layer to the list and restart Spacemacs. It will download all the required files on the next start.
 
   
  +
Spacemacs には特定の拡張子のファイルを開いたときに新しいレイヤーをインストールする機能もあります。例えば、{{ic|.html}} ファイルを開くと {{ic|html}} レイヤーのインストールが行われます。
Spacemacs will also offer you to install a new layer when you open a file with already-known extension. For example, if you open {{ic|.html}} file, installation of {{ic|html}} layer will be offered.
 
   
  +
レイヤーの挙動をカスタマイズしたい場合、Spacemacs の設定ファイルのレイヤー固有の変数を上書きすることで設定できます。詳しくはレイヤーのドキュメントを確認してください。
You can customize layer behaviour by overriding some layer-specific variables in your Spacemacs configuration file. Check the appropriate layer documentation to get the details.
 
   
 
==== ファイル操作 ====
 
==== ファイル操作 ====
  +
ファイル操作に役立つツールが複数存在します。日常的な Spacemacs の使い勝手を大幅に向上させてくれます。
There are some additional tools for file navigation. They may greatly increase the way you use Spacemacs on a daily basis.
 
   
 
===== ファイルツリー (Neotree) =====
 
===== ファイルツリー (Neotree) =====
You can run file tree by pressing {{ic|SPC f t}}. New window opens, accessible with {{ic|SPC 0}}. Standard {{ic|h j k l}} navigation is available there. You can change root folder with {{ic|R}} and toggle hidden files with {{ic|s}}. Create new files with {{ic|c}} and rename the old ones with {{ic|r}}. Check [https://github.com/syl20bnr/spacemacs/blob/master/doc/DOCUMENTATION.org#neotree-file-tree Neotree] documentation for the details.
+
{{ic|SPC f t}} を押すことでファイルツリーを起動できます。新しいウィンドウを開いて {{ic|SPC 0}} でアクセスできます。標準の {{ic|h j k l}} による移動が可能です。{{ic|R}} でルートフォルダを変更して {{ic|s}} で隠しファイルを表示できます。新しいファイルは {{ic|c}} で作成し、ファイル名の変更は {{ic|r}} で行えます。詳しくは [https://github.com/syl20bnr/spacemacs/blob/master/doc/DOCUMENTATION.org#neotree-file-tree Neotree] のドキュメントを参照してください。
   
  +
{{Tip|ルートフォルダを上層に変更したい場合、現在のルートパス (ウィンドウの最初の行) で {{ic|R}} を押してください。インラインのファイルナビゲーションが開くので、{{ic|H}} で上に移動してから {{ic|.}} ディレクトリを選択してください。}}
{{Tip|If you need to change the root to higher one, just press {{ic|R}} while on the current root path (first line of the window). Inline file navigation opens, just go backward with {{ic|H}} as far as you need and select {{ic|.}} directory then}}
 
   
 
===== ファイルマネージャ (Ranger) =====
 
===== ファイルマネージャ (Ranger) =====
If you need a full-featured file manager then Ranger may be the best choice. A lot of useful features are available there, like an instant {{ic|h j k l}} navigation, inline file preview and ability to manipulate files. It also improves default Dired behaviour ({{ic|SPC a d}}) a bit. Install {{ic|ranger}} layer and run it with {{ic|SPC a r}}. Check [https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Btools/ranger Ranger] documentation for the details. Along with customization options, there are a lot of useful hotkeys.
+
フル機能のファイルマネージャが必要な場合、Ranger が最適でしょう。高速な {{ic|h j k l}} による移動やインラインファイルプレビュー、ファイルの操作など便利な機能が多数存在します。また、デフォルトの Dired の挙動 ({{ic|SPC a d}}) が改善されます。{{ic|ranger}} レイヤーをインストールして {{ic|SPC a r}} で起動してください。詳しくは [https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Btools/ranger Ranger] のドキュメントを参照。カスタマイズオプションや便利なホットキーがあります。
   
  +
{{Note|Ranger を開けない場合、Neotree を閉じてみてください。}}
{{Note|If you have issues opening Ranger, try to close Neotree first}}
 
   
 
==== ウィンドウ ====
 
==== ウィンドウ ====
  +
Spacemacs では画面を複数のウィンドウに分割することができます。ウィンドウにはそれぞれ番号が割り当てられ {{ic|SPC ''n''}} ホットキーでアクセスできます ({{ic|''n''}} を番号に置き換えてください)。ウィンドウは独立して分割できるため、複雑なレイアウトを作成することができます。
Spacemacs allows you to split the screen into the separate windows. Each window has a personal number and can be accessed with {{ic|SPC ''n''}} hotkey, where the {{ic|''n''}} is a selected number. Windows can be splitted individually, so it gives an ability to create complex layouts.
 
   
  +
ウィンドウを操作するホットキーは以下の通りです。他のホットキーはインラインヘルプ ({{ic|SPC w}}) を確認してください。
Some of windows hotkeys are presented below. Check the inline help ({{ic|SPC w}}) to get more.
 
   
* {{ic|SPC w 3}} - focus window with number 3
+
* {{ic|SPC w 3}} - 3番のウィンドウにフォーカス
* {{ic|SPC w s}} - split window horizontally
+
* {{ic|SPC w s}} - ウィンドウを水平に分割
* {{ic|SPC w v}} - split window vertically
+
* {{ic|SPC w v}} - ウィンドウを垂直に分割
* {{ic|SPC w d}} - delete window
+
* {{ic|SPC w d}} - ウィンドウを削除
* {{ic|SPC w u}} - undo last window action
+
* {{ic|SPC w u}} - 最後のウィンドウアクションを取り消す
* {{ic|SPC w m}} - toggle window fullscreen
+
* {{ic|SPC w m}} - ウィンドウのフルスクリーンの切り替え
* {{ic|SPC w .}} - enter window transient state
+
* {{ic|SPC w .}} - ウィンドウをトランジェントステートにする
   
  +
{{Tip|トランジェントステートではウィンドウの順番や割合などの設定を変えることができます。トランジェントステートにすると利用可能なオプションが表示されます。}}
{{Tip|Transient state allows you to play with window settings, like their order and proportions. Just enter it and all the available options will be displayed.}}
 
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
268行目: 334行目:
 
# {{ic|exec-path-from-shell}} モジュールを追加して、最後のエントリが {{ic|dotspacemacs-excluded-packages '(exec-path-from-shell)}} となるようにしてください。
 
# {{ic|exec-path-from-shell}} モジュールを追加して、最後のエントリが {{ic|dotspacemacs-excluded-packages '(exec-path-from-shell)}} となるようにしてください。
 
# {{ic|SPC f s}} で変更を保存して Spacemacs を再起動してください。
 
# {{ic|SPC f s}} で変更を保存して Spacemacs を再起動してください。
  +
  +
=== マイナーモードアイコンのフォントがおかしい ===
  +
  +
ⒺⓀ の代わりに 24ba 24c0 記号が表示されたり、あまりにも醜い場合は、
  +
次に、これらのシンボル用の適切な Unicode フォールバック フォントをインストールするか、{{ic|dotspacemacs-mode-line-unicode-symbols}} を {{ic|nil}} に設定して無効にする必要があります。
  +
{{Tip| Spacemacs の優れたフォールバック Unicode フォントは {{AUR|ttf-symbola}} です。}}
  +
  +
=== Mass "Package is unavailable. Is the package name misspelled" パッケージの更新中にエラーが発生しました ===
  +
  +
GNU ELPA GPG 鍵の有効期限に関係するかもしれません、 {{ic|:(setq package-check-signature nil)}} から {{ic|M-x package-install}} を実行してから。{{ic|gnu-elpa-keyring-update}} を実行してください。
  +
これがうまくいかない場合は、例えば {{AUR|emacs26-git}} を使って emacs 26 にロールバックしてみてください。

2024年7月10日 (水) 20:26時点における最新版

SpacemacsEmacs をベースに Vim のキーバインドを組み合わせて作られた、拡張性・カスタマイズ性の高いテキストエディタです。プロジェクトの目標は Vim と Emacs エディタそれぞれから長所を抽出して統合することです。Spacemacs ディストリビューションはコミュニティ主導の Emacs 設定を元にしています。デフォルトの Emacs の挙動を拡張しており大量の追加機能が存在します。

インストール

Emacs のインストール

Spacemacs は Emacs 上で作られているため、先に Emacs のインストールが必要です。emacs パッケージをインストールしてください。

既存の Emacs 設定をバックアップ (任意)

既に Emacs を使っている場合、設定をバックアップしてください:

$ mv ~/.emacs.d ~/.emacs.d.bak && mv ~/.emacs ~/.emacs.bak

Spacemacs のインストール

Spacemacs をインストールするには、GitHub から実際の構成を複製し、Emacs 構成を完全に置き換える必要があります。 2020年9月現在、開発ブランチをインストールすることをお勧めします。

$ git clone -b develop https://github.com/syl20bnr/spacemacs ~/.emacs.d

何ヶ月もメンテナンスされていない master の代わりに ブランチをインストールする場合は、次のようにします。

$ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
ノート: 上記のコマンドはユーザーアカウントから実行してください。

Adobe Source Pro フォントのインストール (任意)

Spacemacs が使用するデフォルトフォントは Adobe の Source Code Pro です。Spacemacs を使用するときはフォントをインストールすることが推奨されています。adobe-source-code-pro-fonts パッケージをインストールしてください。

フォントが存在しない場合、他のフォントが使われます。

Emacs 設定ファイルを削除する

~/.emacs ファイルをバックアップし (必要な場合)、まだ削除していない場合は削除します。そうしないと、Emacs が適切な初期化ファイルをロードできないため、Spacemacs はロードされません。次のように名前を変更し実行して下さい。:

$ mv ~/.emacs ~/.emacs.bak

バックアップせずに削除する場合。:

$ rm ~/.emacs

Spacemacs の初期設定

Spacemacs を起動してください:

$ emacs

最初にインストールする機能について質問されます。選択は必須です。選択によって Spacemacs の挙動やホットキーが変わります。Enter を押してデフォルトの値を使うことを推奨します。デフォルト設定は高度に最適化されており後で自由に変えることもできます。

ヒント: 大抵の場合、デフォルトパッケージが機能を多めに提供しますが、場合によっては他のパッケージを使用するほうが便利なときもあります (性能面や特殊な機能など)。

質問を終えると、Spacemacs は必要なパッケージをダウンロード・インストールします。数分はかかります。Spacemacs がフリーズしているかのように見えるかもしれませんが、問題はありません。

Spacemacs の実行

spacemacs を起動するには:

$ emacs

下のバーに '...' が表示されなくなったら Spacemacs を使用できます。

ノート: 起動に10秒以上かかる場合、下のトラブルシューティングを見てください。

デーモンモード

Spacemacs はデーモンモードで起動することもできます。デーモンモードはエディタを一度だけ初期化して、後から設定ファイルを再読込することなく接続して使うことが可能です。巨大な設定ファイルを使っている場合、初期化が一度だけですむので便利です。初期化してしまえばすぐに接続することができます。

デーモンモードで Spacemacs を起動するには:

$ emacs --daemon=instance1

emacsclient を使って instance1 に接続できます:

$ emacsclient -nc -s instance1
ヒント: 名前を異なるものにすることでデーモンを複数起動することもできます。

Systemd モジュール

emacs デーモンを実行するための systemd モジュールを作成することができます。コミュニティ ELPA パッケージに起因するセキュリティ上の懸念により、ここで説明されているように、ユーザー特権の systemd ユーザー モジュールとしてデーモンを実行することをお勧めします。

次のような emacs ユーザーの systemd サービス ファイルを作成します。

.config/systemd/user/emacs.service
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon=instance1
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Restart=on-failure

[Install]
WantedBy=default.target

Emacs/Spacemacs デスクトップ ファイルを次のように編集します。 Exec の変更に注意してください。

/usr/share/applications/emacs.desktop
[Desktop Entry]
Name=Spacemacs
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=emacsclient -nc -s instance1 %F
Icon=/home/[!!! YOUR USER NAME HERE !!!]/.emacs.d/assets/spacemacs.svg
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=Emacs
Keywords=Text;Editor;

次に、daemon-reload して emacs.service systemd/ユーザー起動 して実行します。

エラーが発生していないことを確認してください。すでにデーモンとして実行されている emacs をいじっていてエラーが発生した場合は、作成したばかりのユーザー emacs サービスを 有効化 して再起動することをお勧めします。ユーザー emacs.service ユニットステータス を確認することも役立つ場合があります。次に、成功した場合は、永続化のために systemd/ユーザー有効化 します。

完了すると、DE ランチャーを介して emacs を起動し、ロード時間を大幅に短縮できますが、非常に強力なシステムでも emacs はすぐには開きません。必要に応じて、次のコマンドをエイリアスとすることもできます。 instance1 の名前も変更できますが、サービス ファイル内のデーモンの名前と一致するようにしてください。

$ emacsclient -nc -s instance1

使用方法

最初 Spacemacs は多少使いづらいかもしれません (特に初心者にとっては)。しかしながら、努力は報われます。基本的な作業をこなすのに覚えておく必要があることはほんの少しです。

:q[Enter] と打ち込むことでいつでも spacemacs を終了できます。

ビルトインチュートリアル

Spacemacs で SPC h T と押すことでいつでも Spacemacs に組み込まれているチュートリアルを立ち上げることができます。

基本概念

準備

基本概念を説明するのにお試し用のテキストが必要です。最初に作成しましょう。現段階ではコマンドがよく分からなくても結構です。

  1. Spacemacs を実行
  2. SPC b N を押して新しい空のバッファを作成
  3. 9 SPC i l l を押してテキストを挿入

9行のテキストが生成されるはずです。作成したテキストを使って次のセクションで説明しているコマンドを試してみてください。

ノート: SPC キーシーケンスを使うときは、ひとつずつキーを押してください。つまり SPACE, b, N の順番でキーを押します。大文字は Shift キーを押しながら押してください。例えば NShift+n です。最終的なシーケンスは SPACE, b, Shift+n となります。
ヒント: SPC キーを押すとヘルプメニューが下部に表示されます。メニューからコマンドを確認することが可能です。

最初にステートについて説明します。

エディタステート

Spacemacs と普通のテキストエディタの大きな違いはステートです。ステートによってエディタの動作が変わります。例えば (普通のテキストエディタと同じように) 文章を入力できる挿入ステートやキーが全てコマンドとして認識されて文章は変更されないノーマルステートが存在します。どれかひとつのステートが有効になります。ステートの切り替えは Spacemacs を使うにあたって鍵となるスキルです。

エディタの現在のステートは左下に表示されます。色付きの矩形に "1" (デフォルト) と表示されているのがそうで、色によって現在のステートが分かります。様々なステートが存在しますが、通常使用するステートは限られます:

  • オレンジはノーマルステートです。コマンドの入力やテキストの移動で使います。
  • グリーンは挿入ステートです。テキストの入力に使います。
  • グレーはビジュアルステートです。テキストの選択と操作に使います。

カーソルの色でも現在のステートは判別できます。

ノート: Spacemacs を使い込むには最低でもノーマル挿入ステートを知る必要があります。
ノーマルステート

ノーマルステートではテキストの移動とコマンドの実行ができます。ノーマルステートで直接テキストを打ち込むことはできません。代わりに、素早く移動したり様々な校正を行うことができます。ノーマルステートはデフォルトのステートであり、オレンジ色をしています。

ESC キーを押すか fd キーシーケンスでいつでもノーマルステートに戻ることが可能です。

ノート:
  • 以下に記載しているコマンドは全てではありません。他にもたくさんコマンドが存在します。ドキュメントを確認して有用なコマンドを探してください。
  • 誰もが最初はコマンドを知りません。使っていくうちに慣れていきます。最初に何かするときに必要なコマンドは限られています。
移動

以下のキーを使うことで基本的な移動が可能です:

  • h - 1文字分だけ左にカーソルを移動
  • j - 1文字分だけ下にカーソルを移動
  • k - 1文字分だけ上にカーソルを移動
  • l - 1文字分だけ右にカーソルを移動

単語あるいは文章単位の移動もひとつのキーで行うことができます:

  • w - 次の単語 (の先頭) に移動
  • b - 前の単語 (の先頭) に移動
  • ( - 現在の文の先頭に移動
  • ) - 次の文の先頭に移動
  • ^ - 行の先頭に移動
  • $ - 行の末尾に移動

ページをスクロールするには以下のコマンドを使います:

  • Ctrl+f - 1ページ分だけ下に移動
  • Ctrl+b - 1ページ分だけ上に移動
  • gg - 文章の一番最初の行に移動
  • G - 文章の一番最後の行に移動

コマンドに数字を付けることで、複数回コマンドを繰り返すことができます:

  • 5j - カーソルを5行下に移動
  • 7w - カーソルを7単語分先に移動
  • 3 Ctrl+f - 3ページ下に移動
  • 20gg - カーソルを20行目に移動
ヒント: Spacemacs では数字の引数がよく使われます。

上記で説明していないコマンドも多数存在します。基本的には Spacemacs では Vim のように自由自在に移動できます。

テキスト操作

以下のコマンドでテキストを編集することができます:

  • x - カーソルの文字をカット
  • dw - カーソルの単語をカット
  • dd - カーソルの行をカット
  • yw - カーソルの単語をコピー (ヤンク)
  • yd - カーソルの行をコピー (ヤンク)
  • p - コピー・カットしたテキストを貼り付け
  • ra - カーソルの文字を a に置換

上記のコマンドで数字引数を使うこともできます。

アンドゥ/リドゥ

変更の取り消し・やり直しは以下のコマンドで行なえます:

  • u - 最後の変更を取り消し
  • Ctrl+r - 最後の変更をやり直し
挿入ステート

挿入ステートはテキストを入力するときに使います。普通のエディタと同じような動きをします。ただし、テキストの編集能力は限られています。訂正を行うときはノーマルステートに戻してください。挿入ステートの色はグリーンです。

挿入ステートに移行

挿入ステートに入るには、ノーマルステートから i を押します。カーソルが細く緑色に変化します。何か入力してみてください。挿入が完了したら、ESC キーまたは fd キーシーケンスで挿入ステートを終わらせることができます。

挿入モードに移行する方法は多数存在します。違いは最初のカーソル位置だけです。最初は i ホットキーだけ知っていれば十分でしょう。ただし他の方法もマスターすれば便利なはずです:

  • i - カーソルの前から挿入モードに入る
  • a - カーソルの後から挿入モードに入る
  • I - 行頭から挿入モードに入る
  • A - 行末から挿入モードに入る
  • o - 次の行から挿入モードに入る
  • O - 前の行から挿入モードに入る
挿入ステートから離脱

挿入ステートを終了するには ESC キーまたは fd キーシーケンスを押します。ノーマルステートに復帰してカーソルがオレンジに変化します。

ビジュアルステート

ビジュアルステートは視覚的にテキストを選択するときに使います。テキストを選択して切り取り・コピーすることができます。ステートカラーはグレーです。

ビジュアルステートに移行するにはノーマルモードから v ホットキーを押してください。通常モードと同じホットキーでカーソルを移動できますがテキストが選択されます。カーソルを移動すると最初のカーソル位置からテキストが選択され、yank (コピー) または delete (削除) することができます。vev( などのコマンドを使って素早く単語や文章を選択することが可能です。詳しくは#移動セクションを読んでください。

また、V を押すことで全ての行を選択できます。

ビジュアルブロックステート

ビジュアルブロックステートはビジュアルステートの強化版です。テキストを矩形選択することができます。通常のエディタや IDE のマルチカーソルと似ています。Ctrl+v ホットキーを押すことでビジュアルブロックステートに移行できます。h j k l キーで移動してみて違いを確認してください。

ビジュアルブロックステートでできることは様々です。詳しくは資料を参照してください。ビジュアルブロックステート機能は元は vim visual block mode と呼ばれていました。

バッファ (タブ)

Spacemacs ではテキストはバッファと呼ばれる領域に存在します。バッファは通常のエディタにおけるタブと似ています。バッファを切り替えたり新しいバッファを作成することができます。バッファは一部の情報を保存するのにエディタ自身によっても使われています。

操作

現在のバッファのリストを表示するには SPC b b を押してください。下部に新しいウィンドウが表示され、バッファを確認・フィルタ・操作することができます。*Messages* や *scratch* などのバッファが既に存在するはずです。これらはエディタによって作成されており便利な情報が含まれています。

下部ウィンドウでまずできることは pattern フィールドに文字を入力することです。バッファがフィルタリングされます。フィルタリング後に何もバッファがなくなったら、"Enter" を押すことで新しいバッファを作成することができます。入力した名前の新しいバッファが作成されて開きます。

バッファは手動で開くこともできます。Ctrl+j または Ctrl+k を押して行を移動してください。それから Ctrl+l または Enter を押すことで選択されたバッファが開きます。

ヒント: 通常の移動は h j k l キーを使いますが、場合によっては Ctrl などの修飾キーを使う必要があります。これによって入力と移動が同時に可能となっています。

ノーマルステートからホットキーを使ってバッファを制御することも可能です:

  • SPC b b - バッファを一覧する
  • SPC TAB - 最後に表示したバッファに切り替える
  • SPC b n - 次のバッファに切り替える (ひとつ先)
  • SPC b p - 前のバッファに切り替える (ひとつ前)
  • SPC f s - 現在のバッファをファイルに保存
  • SPC b d - 現在のバッファを閉じる
ヒント: 新しいバッファを保存したい場合、ファイルを選択する必要があります。詳しくは次のセクションを読んでください。

ファイル

Spacemacs でファイルを操作するときは2つのオプションがあります: インライン操作と組み込みファイルマネージャです。インライン操作は Spacemacs の確認ダイアログで使用し、シェルとよく似ています。組み込みファイルマネージャはもっとユーザーフレンドリーで、ファイルの詳細をチェックすることができます。Spacemacs をマスターするにはそれぞれの操作を学習することが重要です。

より強力なファイルマネージャやツリーを使うオプションも存在します。#ファイル操作セクションを読んでください。

インライン (Helm)

インライン操作は SPC f f ホットキーで使えます。バッファ操作とよく似たウィンドウを使用します。ウィンドウからファイルをフィルタリングしたり選択することが可能です。何か文字列を入力することで表示ファイルを絞ることができ、Ctrl+j または Ctrl+k を押せば行が上下に移動します。ファイルやディレクトリを開くには Ctrl+l を押してください。前に戻るには Ctrl+h を押します。TAB を押すことで入力補完を使うことができます。

ファイルマネージャ (Dired)

より視覚的に使いたい場合、SPC a d Enter を押して Spacemacs に組み込まれているファイルマネージャを起動します。Ctrl+h j k l キーを押して移動することができ、Enter を押せばディレクトリに入ったりファイルを開いたりします。

利用可能なホットキーの一部 (他のホットキーは Dired のドキュメントを参照してください):

  • q - Dired を終了
  • R - ファイルの名前を変更
  • C - ファイルをコピー
  • + - 新しいディレクトリを作成
ヒント: 強力なファイルマネージャを使いたい場合、#ファイルマネージャ (Ranger) セクションを参照してください。より多くの機能が実装されており、習熟することで Dired を完全に置き換えることができます。
終了

エディタは SPC q で終了することができます。終了する方法は複数存在します: 利用可能なものは次のとおりです。

  • SPC qf - 現在のフレームを終了。emacsclient を使っている場合に有用です。
  • SPC qq - Emacs を終了 (kill-emacs)。
  • SPC qr - Emacs を終了から再起動してレイアウトを復元。
  • SPC qR - Emacs を終了して再起動。
  • SPC qd - Emacs を終了して --debug-init で再起動。

高度な概念

ファイルを開いて、変更を加えて保存できるようになったら半分は上出来です。次はマスターしたいことを選んでください。

レイヤー

Spacemacs の最強機能のひとつがレイヤーです。レイヤーはパッケージと設定オプションの集合であり、様々にエディタの機能を拡張できます。様々なプログラミング言語のレイヤーが存在します。また、IRC メッセージや内蔵ウェブブラウザなどツールを追加するレイヤーがあります。レイヤーの完全なリストは Layers ドキュメントページから確認できます。

Spacemacs にはいくつかレイヤーが付属しており、手動でレイヤーを追加することもできます。レイヤーを追加するには、Spacemacs の設定ファイルを開いて (SPC f e d)、dotspacemacs-configuration-layers セクションを検索してください。そしてリストにレイヤーを追加して Spacemacs を再起動してください。次回起動時に必要なファイルがすべてダウンロードされます。

Spacemacs には特定の拡張子のファイルを開いたときに新しいレイヤーをインストールする機能もあります。例えば、.html ファイルを開くと html レイヤーのインストールが行われます。

レイヤーの挙動をカスタマイズしたい場合、Spacemacs の設定ファイルのレイヤー固有の変数を上書きすることで設定できます。詳しくはレイヤーのドキュメントを確認してください。

ファイル操作

ファイル操作に役立つツールが複数存在します。日常的な Spacemacs の使い勝手を大幅に向上させてくれます。

ファイルツリー (Neotree)

SPC f t を押すことでファイルツリーを起動できます。新しいウィンドウを開いて SPC 0 でアクセスできます。標準の h j k l による移動が可能です。R でルートフォルダを変更して s で隠しファイルを表示できます。新しいファイルは c で作成し、ファイル名の変更は r で行えます。詳しくは Neotree のドキュメントを参照してください。

ヒント: ルートフォルダを上層に変更したい場合、現在のルートパス (ウィンドウの最初の行) で R を押してください。インラインのファイルナビゲーションが開くので、H で上に移動してから . ディレクトリを選択してください。
ファイルマネージャ (Ranger)

フル機能のファイルマネージャが必要な場合、Ranger が最適でしょう。高速な h j k l による移動やインラインファイルプレビュー、ファイルの操作など便利な機能が多数存在します。また、デフォルトの Dired の挙動 (SPC a d) が改善されます。ranger レイヤーをインストールして SPC a r で起動してください。詳しくは Ranger のドキュメントを参照。カスタマイズオプションや便利なホットキーがあります。

ノート: Ranger を開けない場合、Neotree を閉じてみてください。

ウィンドウ

Spacemacs では画面を複数のウィンドウに分割することができます。ウィンドウにはそれぞれ番号が割り当てられ SPC n ホットキーでアクセスできます (n を番号に置き換えてください)。ウィンドウは独立して分割できるため、複雑なレイアウトを作成することができます。

ウィンドウを操作するホットキーは以下の通りです。他のホットキーはインラインヘルプ (SPC w) を確認してください。

  • SPC w 3 - 3番のウィンドウにフォーカス
  • SPC w s - ウィンドウを水平に分割
  • SPC w v - ウィンドウを垂直に分割
  • SPC w d - ウィンドウを削除
  • SPC w u - 最後のウィンドウアクションを取り消す
  • SPC w m - ウィンドウのフルスクリーンの切り替え
  • SPC w . - ウィンドウをトランジェントステートにする
ヒント: トランジェントステートではウィンドウの順番や割合などの設定を変えることができます。トランジェントステートにすると利用可能なオプションが表示されます。

トラブルシューティング

起動が遅い

起動時間が10秒を超える場合、おそらく exec-path-from-shell モジュールが原因です。Linux 環境では無効化しても問題ありません。以下の手順に従ってください:

  1. SPC f e d を押して Spacemacs の設定ファイルを開いてください。
  2. dotspacemacs-excluded-packages セクションを探してください。
  3. exec-path-from-shell モジュールを追加して、最後のエントリが dotspacemacs-excluded-packages '(exec-path-from-shell) となるようにしてください。
  4. SPC f s で変更を保存して Spacemacs を再起動してください。

マイナーモードアイコンのフォントがおかしい

ⒺⓀ の代わりに 24ba 24c0 記号が表示されたり、あまりにも醜い場合は、 次に、これらのシンボル用の適切な Unicode フォールバック フォントをインストールするか、dotspacemacs-mode-line-unicode-symbolsnil に設定して無効にする必要があります。

ヒント: Spacemacs の優れたフォールバック Unicode フォントは ttf-symbolaAUR です。

Mass "Package is unavailable. Is the package name misspelled" パッケージの更新中にエラーが発生しました

GNU ELPA GPG 鍵の有効期限に関係するかもしれません、 :(setq package-check-signature nil) から M-x package-install を実行してから。gnu-elpa-keyring-update を実行してください。 これがうまくいかない場合は、例えば emacs26-gitAUR を使って emacs 26 にロールバックしてみてください。