Help us understand the problem. What is going on with this article?

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

環境

  • Ubuntu18.04
  • Emacs26.3

Emacsのインストール

$ 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が入ってなければ、インストールする。

$ sudo apt install git

~/.emacs.dフォルダが存在していれば削除してから、

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

でemacsを起動すると、ウィンドウ下部のミニバッファに初期設定の選択肢が表示された。
Spacemacsに乗り換えてみた(1)導入編 - Qiitaを参考に、

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)

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)を、

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に切り替えることで対策した。

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

Spacemacsの設定

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

.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の設定の箇所は書き方が分からないので、とりあえずよく使うコマンドだけベタ書きしてしまった。
時間のあるときに整理したい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした