NTEmacs の設定

【お知らせ】


NTEmacs の設定とは関係ありませんが、NTEmacs を次の設定と一緒に使うと OS まるごと emacs キーバインドで操作することができ快適です。お試しください!

これまた NTEmacs の設定とは関係ありませんが、Bash on Ubuntu on Windows を積極的には利用しない “戦略” を考えてみました。よければ参考としてください!

【本題】


このウィキでは、Windows版 GNU Emacs を 快適に利用するための設定例についてまとめています。

完全ではありませんが、以下の環境で確認しています。
  • Windows 10(x64) + gnupack-13.02 + emacs-mozc ( Cygwin版 emacs ) ←  現在のメイン環境
  ※ MinGW版 よりちょっと遅めですが、設定でのいろいろな workaround が不要なのが良いです。
  ※ cygwin 側で作成した Windows ショートカット(CYGWIN環境変数 が winsymlinks:lnk に設定された状態で ln -s コマンドで作成したリンク)が emacs の dired でシンボリックリンクとして認識されるのも便利です。
  ※ emacs-mozc の導入で、日本語入力も安定しています。
  • Windows 7(x64) + gnupack-11.00 (Cygwin は最新状態に更新) + NTEmacs64 での差し替え ( MinGW版 emacs
  • Windows 7(x64) + gnupack-11.00 (Cygwin は最新状態に更新) + GNU配布版emacs-24.4以降 での差し替え + emacs-mozc ( MinGW版 emacs
  • Ubuntu + emacs-24.5 + emacs-mozc ( Linux版 emacs

※  emacs バージョン 24.4 以上で利用可能な設定となっています。
※ gnupack-11.00 を利用している場合、「gnupack-11.00 の環境で NTEmacs64 を利用するための設定」の方法による emacs-24.5 への移行をお勧めします。
※ 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))))
  • 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というのも見つけました。gnupack-13系との組み合わせで動くようです。

■ 参考サイト


  • 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
  • shell script
  • ssh
  • helm
  • Keyhac
  • mklink
  • BUW (WSL)
  • D-Bus
  • emacs
  • font
  • article
  • socat