VimからSpacemacsへ移行するための設定

#環境
- Ubuntu18.04
- Emacs26.3

#Emacsのインストール
```bash
$ sudo add-apt-repository ppa:kelleyk/emacs
$ sudo apt update
$ sudo apt install emacs26

$ emacs --version
GNU Emacs 26.3
Copyright (C) 2019 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.
```

#Spacemacsのインストール
 gitが入ってなければ、インストールする。

```bash
$ sudo apt install git
```
~/.emacs.dフォルダが存在していれば削除してから、

```bash
$ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
$ emacs
```
でemacsを起動すると、ウィンドウ下部のミニバッファに初期設定の選択肢が表示された。
[Spacemacsに乗り換えてみた（１）導入編 - Qiita](https://qiita.com/shotakaha/items/da1282327f0dbc1b6289)を参考に、

```text
What is your preferred editing style ?
-> Among the stars aboard the Evil flagship (vim
   On the planet Emacs in the Holy control tower (emacs)
```
はAmong the stars aboard the Evil flagship (vim)

```text
What distribution of spacemacs would you like to start with ?を、
-> The standard distribution, recommended (spacemacs)
   A minimalist distribution that you can build on (spacemacs-base)
```
はThe standard distribution, recommended (spacemacs)を、

```text
What type of completion framework do you want ?
-> A heavy one but full-featured (helm)
   A lighter on but still very powerful (ivy)
   None (not recommended)
```
はA lighter on but still very powerful (ivy)を選択した。

#orgモードでのエラー対策
orgモードでエラーが発生するので、spacemacsをdevelopに切り替えることで対策した。

```bash
$ cd ~/.emacs.d
$ git checkout develop
```

#Spacemacsの設定
設定は~/.spacemacsのみに書いた。

```el:.spacemacs
(defun dotspacemacs/layers ()
  (setq-default
;;(略)...
dotspacemacs-configuration-layers
'(
;;(略)...
      common-lisp
)
   dotspacemacs-additional-packages '(
                                      ddskk
                                      elscreen
                                      )
))

(defun dotspacemacs/init ()
  (setq-default
;;emacs起動時にファイルのリストを表示しない
   dotspacemacs-startup-lists '(nil
                                nil) 
;;(略)...
;;自動保存ファイルを元ファイルと同じ場所に置く
   dotspacemacs-auto-save-file-location 'original

   dotspacemacs-colorize-cursor-according-to-state nil


;;フルスクリーンで起動しない
   dotspacemacs-fullscreen-at-startup nil
 ;;emacs起動時にウィンドウを最大化する（フルスクリーンにはしない）
   dotspacemacs-maximized-at-startup t
;;対応する括弧の色を変えない
   dotspacemacs-highlight-delimiters nil

;;行番号を表示する
   dotspacemacs-line-numbers t

;カラーテーマ設定
   dotspacemacs-themes '(reverse)
))

(defun dotspacemacs/user-init ()
;;(略)...
;;elscreenで使うC-zを空ける
  (setq evil-toggle-key "")
  )

(defun dotspacemacs/user-config ()
;;(略)...
;; org modeで行を折り返す
  (setq org-startup-truncated nil)

  ;;バックアップファイルを作らない
  (setq make-backup-files nil) 
  ;;自動保存リストファイルを作らない
  (setq auto-save-list-file-prefix nil)

  ;;カーソルの色
  (set-cursor-color "#D17519")

;; タイトルバーの表示 - ファイル名 <絶対パス>
  (setq frame-title-format "%b <%f>")

;;選択範囲の色
  (set-face-background 'region "#3B5998") 

  ;;ノーマルモードでEnterを押すとノーマルモードのまま次行に改行が挿入される(org-modeでは効かない)
  (define-key evil-normal-state-map (kbd "RET")
    (lambda ()
      (interactive)
      (call-interactively 'spacemacs/evil-insert-line-below)
      (evil-next-line)))

    ;;org-modeでRETで改行を挿入する
    (with-eval-after-load 'org
      (define-key org-mode-map [(return)]
        (lambda ()
          (interactive)
          (call-interactively 'spacemacs/evil-insert-line-below)
          (evil-next-line))))


  ;; evilのinsert-stateになったらIMEを英語に戻す
  (add-hook 'evil-insert-state-entry-hook
            '(lambda () (skk-mode 1) (skk-latin-mode 1)))

  ;; 対応する括弧を強調表示(マッチ部分)
  (set-face-attribute 'show-paren-match nil :foreground "#000000" :background "#9BCEEC" :bold t)
  (set-face-attribute 'hl-line nil :inherit nil :background "#222222")

;======================================
;elscreenモード
;======================================
  ;;elscreenのC-zをSPC oに割り当てる
  (spacemacs/set-leader-keys "o c" 'elscreen-create) ;新規スクリーンを作成して移動する
  (spacemacs/set-leader-keys "o k" 'elscreen-kill) ;現在のスクリーンを閉じる
  (spacemacs/set-leader-keys "," 'elscreen-previous) ;前のスクリーンへ移動する
  (spacemacs/set-leader-keys "." 'elscreen-next) ;次のスクリーンへ移動する
  (spacemacs/set-leader-keys "o f" 'elscreen-find-file) ;新しいスクリーンでファイルを開く
  (spacemacs/set-leader-keys "o d" 'elscreen-dired) ;新しいスクリーンでdiredを開く
  (spacemacs/set-leader-keys "o 0" 'elscreen-jump-0) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 1" 'elscreen-jump-1) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 2" 'elscreen-jump-2) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 3" 'elscreen-jump-3) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 4" 'elscreen-jump-4) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 5" 'elscreen-jump-5) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 6" 'elscreen-jump-6) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 7" 'elscreen-jump-7) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 8" 'elscreen-jump-8) ;番号のスクリーンへ移動する
  (spacemacs/set-leader-keys "o 9" 'elscreen-jump-9) ;番号のスクリーンへ移動する

;;; タブの先頭に[X]を表示しない
  (setq elscreen-tab-display-kill-screen nil)
;;; header-lineの先頭に[<->]を表示しない
  (setq elscreen-tab-display-control nil)

  (elscreen-start)

;; 対になる括弧を強調表示
  (show-paren-mode t)

  (set-face-foreground 'font-lock-string-face "chocolate1") ;文字列の色
  (set-face-foreground 'font-lock-comment-face "#669933") ;コメントの色

;======================================
; evil-mode
;======================================
  (defun evil-keyboard-quit ()
    "Keyboard quit and force normal state"
    (interactive)
    (and evil-mode (evil-force-normal-state))
    (keyboard-quit))

  (define-key evil-normal-state-map   (kbd "C-g") #'evil-keyboard-quit)
  (define-key evil-motion-state-map   (kbd "C-g") #'evil-keyboard-quit)
  (define-key evil-insert-state-map   (kbd "C-g") #'evil-keyboard-quit)
  (define-key evil-window-map         (kbd "C-g") #'evil-keyboard-quit)
  (define-key evil-operator-state-map (kbd "C-g") #'evil-keyboard-quit)

  ;;recentfを無効にする
  (add-hook 'find-file-hook (lambda () (recentf-mode -1)))

  ;;リンクの箇所でSPC RETとするとブラウザで開く（元はRETに割り当てられていた機能）
    (spacemacs/set-leader-keys "RET" 'org-open-at-point) 

    ;;slimeでミニバッファで入力できるようにする
    (spacemacs/set-leader-keys "m e :" 'slime-interactive-eval)
)
```
elscreenの設定の箇所は書き方が分からないので、とりあえずよく使うコマンドだけベタ書きしてしまった。
時間のあるときに整理したい。