プログラミング向けフォント「Ricty Diminished」をDebian testing(Buster)環境にインストールしEmacs25に設定する

Ricty Diminishedとは

プログラミング用に最適化された、「Inconsolata」と「Circle M+ 1m」を基にしたフォントです。

その特徴は プログラミング用フォント Ricty Diminished によると、

  • ラテン文字には Inconsolata が適用されます。
  • それ以外の文字には Circle M+ 1m が適用されます。M+ M Type-1 の美しいグリフと Circle M+ 1m の判読性の高い和文文字 (半濁音など) が使用できます。
  • 半角文字と全角文字の横幅の比が 1:2 に調整されています。
  • 全角スペースが可視化されます。
  • いくつかの全角グリフが対応する半角グリフと差別化されています。
  • en ダッシュ、em ダッシュが破断線のようになります (LaTeX での入力ミス防止のため)。

Ricty Diminishedのインストール

Debian testing(Buster)では「fonts-ricty-diminished」というパッケージになっているので、これをインストールします。

# apt install fonts-ricty-diminished

Emacs25の設定

.emacsに以下のように書きます。判読性向上のため派生フォントである「Ricty Diminished Discord」を設定しています。

(set-face-attribute 'default nil
                    :family "Ricty Diminished Discord"
                    :height 200)
(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0208
                  (cons "Ricty Diminished Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'japanese-jisx0212
                  (cons "Ricty Diminished Discord" "iso10646-1"))
(set-fontset-font (frame-parameter nil 'font)
                  'katakana-jisx0201
                  (cons "Ricty Diminished Discord" "iso10646-1"))

パッケージ『elpa-yasnippet』のインストールと設定

これは何?

Emacsのためのテンプレートシステムです。

Template system for Emacs YASnippet (yet another snippet extension for Emacs) is a template system for Emacs. It allows you to type an abbreviation and automatically expand the abbreviation into function templates. . Bundled language templates includes: C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS and more.

 環境とソフトのバージョン

  • OS:Debian(stretch)
  • Emacs:24.5.1
  • elpa-yasnippet:0.11.0-2

 インストール

# apt-get install elpa-yasnippet

同時に『yasnippet-snippets』もインストールされます。

設定

(require 'yasnippet)
(yas-global-mode 1)

snippetsがインストールされている場所

‘/usr/share/yasnippet-snippets’

TODO

org-modeの変換表をまとめる。

パッケージ「elpa-elisp-slime-nav」のインストールと設定

これは何?

Emacs extension that provide Emacs Lisp code navigation elpa-elisp-slime-nav is an extension, that provides equivalents off ‘find-tag’ and ‘pop-tag’ functions for Emacs Lisp code, allowing one to navigate to definition/declaration of function, variable or macro.

環境とソフトのバージョン

  • OS:Debian(stretch)
  • Emacs:24.5.1
  • elpa-elisp-slime-nav:0.9-1

インストール

# apt-get install elpa-elisp-slime-nav

設定

(require 'elisp-slime-nav) ;; optional if installed via package.el
(dolist (hook '(emacs-lisp-mode-hook ielm-mode-hook))
  (add-hook hook 'turn-on-elisp-slime-nav-mode))

パッケージ「elpa-beacon」のインストールと設定

 

これは何?

highlight the cursor whenever the window scrolls Whenever
the window scrolls a light will shine on top of your
cursor so you know where it is.

 

環境

 

  • OS:Debian (stretch)
  • Emacs:24.5.1
  • elpa-beacon:1.3.2-1

 

インストール

# apt-get install elpa-beacon

 

設定

文章系のバッファを開いた時には自動的にbeacon-modeをonにします。

(let ((function #'(lambda ()
  (beacon-mode 1)
  )))
  (dolist (hook '(find-file-hooks
  ;; ...
  mail-setup-hook
  message-setup-hook))
  (add-hook hook function)))

同時に複数のEmacsの設定を維持する方法

はじめに

emacs-snapshot,Emacs24.3,Emacs23など複数のEmacsの

設定を保つ方法を書いてみます.

.emacsの設定

Emacsのバージョンで条件分岐させています.

これら以外’.emacs’には何も書かないようにします.

init.elの設定

init.elファイルだけでなくEmacsのディレクトリも

別々にしています.

そのため各init.elの先頭には変数user-emacs-directoryを

定義し直しています.

  • “~/.emacs-snapshot.d/init.el”
;;; Emacs directory
(setq user-emacs-directory "~/.emacs-snapshot.d/")
  • “~/.emacs24.d/init.el”
;;; Emacs directory
(setq user-emacs-directory "~/.emacs24.d/")
  • “~/.emacs23.d/init.el”
;;; Emacs directory
(setq user-emacs-directory "~/.emacs23.d/")
  • “~/.emacs.d/init.el”

デフォルト値のため変更不要.

Wanderlustをel-getを使ってインストールする on Emacs24

はじめに

Emacs24をソースからインストールしたため,Wanderlustも

el-getを使ってGithub上のソースから入れてみました.

環境とバージョン

  • OS:Debian Jessie amd64
  • Emacs:24.3
  • Wanderlust:2.15.9

インストール

el-get

el-getとは,Emacsに外部のスクリプトや拡張をダウンロードしインストールしてくれる

ツールです.

もし,el-getをインストールしていない場合は,次のコードを初期設定ファイル(.emacs等)に

書き,Emacsを再起動するか’M-x load-file’で初期設定ファイルを読み込んでください.

自動的にel-getがインストールされます.

(add-to-list 'load-path "~/.emacs.d/el-get/el-get")

(unless (require 'el-get nil t)
  (url-retrieve
   "https://github.com/dimitri/el-get/raw/master/el-get-install.el"
   (lambda (s)
     (end-of-buffer)
     (eval-print-last-sexp))))

;; now either el-get is `require'd already, or have been `load'ed by the
;; el-get installer.
(setq
 el-get-sources
 '(el-get                               ; el-get is self-hosting
   escreen                              ; screen for emacs, C-\ C-h
   php-mode-improved                    ; if you're into php...
   switch-window                        ; takes over C-x o
   auto-complete                        ; complete as you type with overlays
   zencoding-mode                       ; http://www.emacswiki.org/emacs/ZenCoding

   (:name buffer-move                   ; have to add your own keys
          :after (lambda ()
                   (global-set-key (kbd "<C-S-up>")     'buf-move-up)
                   (global-set-key (kbd "<C-S-down>")   'buf-move-down)
                   (global-set-key (kbd "<C-S-left>")   'buf-move-left)
                   (global-set-key (kbd "<C-S-right>")  'buf-move-right)))

   (:name smex                          ; a better (ido like) M-x
          :after (lambda ()
                   (setq smex-save-file "~/.emacs.d/.smex-items")
                   (global-set-key (kbd "M-x") 'smex)
                   (global-set-key (kbd "M-X") 'smex-major-mode-commands)))

   (:name magit                         ; git meet emacs, and a binding
          :after (lambda ()
                   (global-set-key (kbd "C-x C-z") 'magit-status)))

   (:name goto-last-change              ; move pointer back to last change
          :after (lambda ()
                   ;; when using AZERTY keyboard, consider C-x C-_
                   (global-set-key (kbd "C-x C-/") 'goto-last-change)))))

(unless (string-match "apple-darwin" system-configuration)
  (loop for p in '(color-theme          ; nice looking emacs
                   color-theme-tango    ; check out color-theme-solarized
                   )
        do (add-to-list 'el-get-sources p)))

;;
;; Some recipes require extra tools to be installed
;;
;; Note: el-get-install requires git, so we know we have at least that.
;;
(when (el-get-executable-find "cvs")
  (add-to-list 'el-get-sources 'emacs-goodies-el)) ; the debian addons for emacs

(when (el-get-executable-find "svn")
  (loop for p in '(psvn                 ; M-x svn-status
                   yasnippet            ; powerful snippet mode
                   )
        do (add-to-list 'el-get-sources p)))

;; install new packages and init already installed packages
(el-get 'sync)

このコードの後半にもありますが,cvsとsubversionがシステムにインストール

されていることが前提です.

Debianでは,次のコマンドでインストールできます.

apt-get install cvs subversion

Wanderlust

ミニバッファで’M-x el-get-install wanderlust’と打つと

Wanderlustだけでなく依存関係にあるapel,flim,semiも

インストールされます.

Emacs24でClojure開発環境を作ってみました

はじめに

以前Clojure開発環境を作ってみたことがありましたが,

今回はパッケージからインストールしてみます.

環境とバージョン

  • OS:Debian Jessie amd64
  • Emacs:24.3

インストール

Emacsを起動し,

M-x package-list-packages

と打ちます.

パッケージリストから,

auto-complete
clojure-mode
clojure-test-mode
nrepl
nrepl-ritz
ac-nrepl
paredit
rainbow-delimiters

を選択しインストールします.

設定

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(auto-save-default nil)
 '(backup-inhibited t t)
 '(cursor-type 'bar t)
 '(column-number-mode t)
 '(delete-selection-mode t)
 '(inhibit-startup-screen t)
 '(initial-scratch-message nil)
 '(tool-bar-mode nil)
 '(xterm-mouse-mode 1))

;; rainbow delimiters
(require 'rainbow-delimiters)
(global-rainbow-delimiters-mode)

;; paredit
(add-hook 'clojure-mode-hook 'paredit-mode)
(add-hook 'nrepl-mode-hook 'paredit-mode)
(global-set-key [f7] 'paredit-mode)

;; clojure-mode
(global-set-key [f9] 'nrepl-jack-in)

;; nrepl
(add-hook 'nrepl-interaction-mode-hook 'nrepl-turn-on-eldoc-mode)
(setq nrepl-popup-stacktraces nil)
(add-to-list 'same-window-buffer-names "*nrepl*")
(add-hook 'nrepl-mode-hook 'paredit-mode)

;; nrepl-ritz
(add-hook 'nrepl-interaction-mode-hook 'my-nrepl-mode-setup)
(defun my-nrepl-mode-setup ()
  (require 'nrepl-ritz))

;; Auto complete
(require 'auto-complete-config)
(ac-config-default)
(define-key ac-completing-map "\M-/" 'ac-stop)

;; ac-nrepl
(require 'ac-nrepl)
(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)
(add-hook 'nrepl-interaction-mode-hook 'ac-nrepl-setup)
(eval-after-load "auto-complete" '(add-to-list 'ac-modes 'nrepl-mode))
#CTRL-D to finish

参考リンク

Vagrant / Clojure / Emacs – Stack Overflow

World Cognition By Programming: Setting up Emacs for Clojure programming

以前の記事はコチラ.
nrepl.elをインストールする

nrepl-ritz.elをインストールする

Emacs 24.3をDebian Jessie amd64にソースからコンパイルしてインストールする方法

emacs-snapshotの20130618版にアップグレードしようとすると,

wl-betaパッケージのelファイルのコンパイルで失敗してアップグレード

できない状態になりました.そのため,しばらくソースからコンパイル

したEmacs24を使います.

環境とバージョン

  • Emacs: emacs-24.3.tar.gz
  • OS: Debian Jessie amd64

コンパイルに必要なソフトのインストール

apt-get install libgtk2.0-dev  libXpm-dev libjpeg8-dev libgif-dev libtiff4-dev libncurses5-dev libgtk-3-dev libgnutls-dev libselinux1-dev libmagick++-dev

ダウンロード

近くのGNUのミラーサイトからemacs-24.3.tar.gzをダウンロードしてください.

私はここからダウンロードしました.⇒ Index of /pub/GNU/emacs

コンパイル

  • ダウンロード後,適当な所に展開します.
tar zxvf emacs-24.3.tar.gz
  • configureスクリプトを走らせます.
./configure –with-x-toolkit=gtk3 –with-wide-int
  • コンパイルします.
make

インストール

ルートになるか,sudoコマンドでインストールします.

sudo make install

lcomp.elのインストールと設定

lcomp.elとは

lcomp.elには2つのモードがあります.

  • lcomp-mode:completionsバッファウィンドウを使用後消すモードです.
  • lcomp-keys-mode: completionsバッファにキーバイディングを追加するモードです.

emacs-goodies-elパッケージに同梱されています.

環境とバージョン

  • emacs-goodies-el: emacs-goodies-el_35.4_all
  • Emacs: emacs-snapshot_20130520-1_amd64
  • OS: Debian Jessie amd64

インストール

コマンドラインから

apt-get install emacs-goodies-el

で,インストールできます.

.emacsの設定

‘/usr/share/emacs/site-lisp/emacs-goodies-el/lcomp.el’によると

(require 'lcomp)
(lcomp-mode 1)
(lcomp-keys-mode 1)

と書きます.

カスタマイズ

completionsバッファウィンドウを使用後に消す場合,他のEmacs関数に

adviceできるようにするには

(lcomp-activate-advices t)

のように書きます.

参考リンク

‘/usr/share/emacs/site-lisp/emacs-goodies-el/lcomp.el’

emacs-goodies-elのInfo.