NTEmacs の設定

【お知らせ】


NTEmacs の設定とは関係ありませんが、 Windows の操作を emacs のキーバインドで行うための設定 を公開しています。OS まるごと emacs キーバインドで操作することができ快適です。お試しください!

Bash on Ubuntu on Windows で emacs を使うための設定 をまとめました。Windows 10 Fall Creators Update がリリースされ、NTFS シンボリックリンクも参照できるようになりましたので、Windows版 emacs の置き換えも可能ではないかと思います。お試しください!

Bash on Ubuntu on Windows で cygstart 的コマンドを使うための設定 をまとめました。開くファイルが VolFs ファイルシステム(WSL が管理するファイルシステム)上にある場合でも開ける仕組みを組み込んでいます。お試しください!

w32-symlinks を dired と連携して使うための設定 をまとめました。Windows 系の emacs で利用できる他、Bash on Ubuntu on Windows の emacs でも利用可能です。お試しください!

gnupack-13 の環境で最新の emacs を利用するための設定 をまとめました。これで gnupack が更新されなくても、最新の emacs を利用することができます。お試しください!

【本題】


このウィキでは、Windows版 GNU Emacs を 快適に利用するための設定についてまとめています。一部、Linux や Bash on Ubuntu on Windows で利用可能な設定も紹介しています。

完全ではありませんが、以下の環境で動作確認しています。

  • Windows 10 + gnupack-11.00(Cygwin は最新に更新)+ NTEmacs64 での差替え (MinGW版 emacs)
  • Windows 10 + gnupack-11.00(Cygwin は最新に更新)+ GNU配布版 emacs での差替え + emacs-mozc(google日本語入力 と連携) (MinGW版 emacs)
  ※ 最新の MinGW版 emacs を利用する方法は、「gnupack-11.00 の環境で NTEmacs64 を利用するための設定」を参考としてください。

  • Windows 10 + gnupack-13.06(Cygwin は最新に更新)+ emacs-mozc(google日本語入力 と連携) (Cygwin版 emacs)
  ※ MinGW版 よりちょっと遅めですが、設定でのいろいろな workaround が不要なのが良いです。
  ※ cygwin 側で作成した Windows ショートカット(CYGWIN環境変数 が winsymlinks:lnk に設定された状態で ln -s コマンドで作成したリンク)が、emacs の dired でもシンボリックリンクとして認識されるのも便利です。
    ⇒ Windows 10 (Fall) Creators Update では、開発モードとしていれば管理者権限なしで NTFS シンボリックリンクが作成できるようになりました。(CYGWIN環境変数 が winsymlinks:nativestrict に設定された状態で ln -s コマンドの実行に管理者権限が不要。)
  ※ google日本語入力 と連携した emacs-mozc の導入で日本語入力も安定しています。
  ※ 但し、何らかのタイミングで vfork関連のエラーが発生することがあります。これを解決するのが厄介で、Cygwin版 emacs を使う上での大きなデメリットとなっています。(この症状が発生した場合、Cygwin に対して rebaseall を行った後、PC の再起動をすると改善するような気がします。)

  • Windows 10 + gnupack-13.06(Cygwin は最新に更新)+ Cygwin の emacs-w32 での差替え + emacs-mozc(google日本語入力 と連携) (Cygwin版 emacs)
  ※ 現在のメイン環境 です。一つ上の環境から移行しました。この環境の特徴は、一つ上の環境と同様となります。
  ※ 最新の Cygwin版 emacs を利用する方法は、「gnupack-13 の環境で最新の emacs を利用するための設定」を参考としてください。

  • Ubuntu + emacs-24.5 or 25.3 + emacs-mozc(mozc-server と連携) (Linux版 emacs)
  ※ Windows 上で Ubuntu 環境を立ち上げる方法は、「Windows で簡単に Linux を使う方法」を参考としてください。

  • Windows 10(Fall Creators Update) + Bash on Ubuntu on Windows + VcXsrv + emacs-24.5 or 25.3 + emacs-mozc(google日本語入力 と連携) (Linux版 emacs)
  ※ これもなかなか良い環境 ではないかと思っています。「BUW で emacs を使うための設定」で設定方法を紹介しています。

※ 本ページで紹介する設定は、emacs バージョン 24.4 以上で利用可能な設定となっています。
※ MinGW版 emacs を利用する場合、cygwin の導入、cygdriveプレフィクス の / 設定、cygwin-mount.el のインストールが前提となっている設定箇所があります。
※ Cygwin版 emacs 、MinGW版 emacs を利用する場合、以下の「 【基本設定】 」が行われていることが前提となっている設定箇所が多数あります。本ページの設定を利用する場合には、「 【基本設定】 」の利用を 強くお勧め します。

※ gnupack デフォルトの init.el を読み込んだ後に追加で読み込んだ場合でも動作する内容としていますので、init-loader.el を使って読み込むことをお勧めします。

※ gnupack-13.xx の背景色やフォントを gnupack-11.00 の時代のものと同じにするには、~/.emacs.d/init.el に以下のパッチを当ててください。
 また、フォントが汚く見える場合は、以下をお試しください。

■ Cygwin版 emacs 特有の設定




(関連)

■ MinGW版 emacs 特有の設定





■ Windows版 emacs 共通の設定 (上記の「【基本設定】」が前提となっている設定があります)









■ Linux の emacs で利用できる設定



(関連)

■ Bash on Ubuntu on Windows の emacs で利用できる設定





(関連)

■ emacs 全般で利用できる設定







■ 説明ページを作るまでもない設定の紹介


  • 沢山開いているバッファをできるだけ一度に閉じるための設定
(global-set-key (kbd "M-c") 'desktop-clear)
  • カレントバッファを一発で閉じるための設定
(global-set-key (kbd "M-k") (lambda ()
                              (interactive)
                              (kill-buffer (buffer-name))))
  • other-window がなければ開き、その window に移動するための設定
(defun other-window-or-split ()
  (interactive)
  (when (one-window-p)
    (split-window-sensibly))
  (other-window 1))

(global-set-key (kbd "C-x o") 'other-window-or-split)
  • 2 分割しているバッファを入れ替えるための設定
(defun swap-screen-with-cursor()
  "Swap two screen,with cursor in same buffer."
  (interactive)
  (let ((thiswin (selected-window))
        (thisbuf (window-buffer)))
    (other-window 1)
    (set-window-buffer thiswin (window-buffer))
    (set-window-buffer (selected-window) thisbuf)))

(global-set-key (kbd "M-t") 'swap-screen-with-cursor)
  • ウィンドウの右端で改行をするかどうかを切り替えるための設定
(global-set-key (kbd "M-<return>") 'toggle-truncate-lines)
  • tramp を使っていて、NTEmacs の起動が遅くなる場合に必要な設定
(require 'recentf)
(setq recentf-auto-cleanup 'never)
(recentf-mode 1)

■ おまけ




■ その他



  • Subversion には dsvn を使っています。melpa からインストールできます。

  • Vimacs というのもあるんですね。Evil と逆の発想のものだと思います。

  • spacemacsというのも見つけました。Windows版 emacs でも動いているようです。

■ 参考サイト


  • nadvice
`:before'	(lambda (&rest r) (apply FUNCTION r) (apply OLDFUN r))
`:after'	(lambda (&rest r) (prog1 (apply OLDFUN r) (apply FUNCTION r)))
`:around'	(lambda (&rest r) (apply FUNCTION OLDFUN r))
`:override'	(lambda (&rest r) (apply FUNCTION r))
`:before-while'	(lambda (&rest r) (and (apply FUNCTION r) (apply OLDFUN r)))
`:before-until'	(lambda (&rest r) (or  (apply FUNCTION r) (apply OLDFUN r)))
`:after-while'	(lambda (&rest r) (and (apply OLDFUN r) (apply FUNCTION r)))
`:after-until'	(lambda (&rest r) (or  (apply OLDFUN r) (apply FUNCTION r)))
`:filter-args'	(lambda (&rest r) (apply OLDFUN (funcall FUNCTION r)))
`:filter-return'(lambda (&rest r) (funcall FUNCTION (apply OLDFUN r)))
  • generalized variables
  • lexical-binding
  • flet
  • noflet
  • function
  • custom-set-variables
  • shell script
  • ssh
  • helm
  • Keyhac
  • mklink
  • BUW (WSL)
  • D-Bus
  • emacs
  • font
  • eclim
  • OminiSharp
  • lsp
  • socat
  • trac
  • Windows Shortcut File Format
  • Google日本語入力
  • Android
  • closure

  • article