なんとな~くしあわせ?の日記

JavaとかAWSの設定とかをメモする技術ブログ

Debian wheezy with EmacsでD言語書く

表題通り、息抜きで他の言語に浮気してもいいよね

Debian(Wheezy)のEmacs環境

stableだとemacs24が入っていないようなので、無理せずemacs23を使う

apt-cache search emacs23

cowgirl:~# apt-cache search emacs23
haml-elisp - Emacs Lisp mode for the Haml markup language
mh-e - Emacs interface to the MH mail system
sass-elisp - Emacs Lisp mode for the Sass markup language
emacs23 - GNU Emacs エディタ (GTK+ ユーザインターフェイスを使用)
emacs23-bin-common - GNU Emacs エディタのアーキテクチャ依存な共有ファイル
emacs23-common - GNU Emacs エディタのアーキテクチャ非依存な共有インフラストラクチャ
emacs23-el - GNU Emacs Lisp (.el) ファイル
emacs23-lucid - GNU Emacs エディタ
emacs23-nox - GNU Emacs エディタ (X 対応無し)
emacs23-common-non-dfsg - GNU Emacs shared, architecture independent, non-DFSG items

apt-cache search emacs24

cowgirl:~# apt-cache search emacs24
emacs24-common-non-dfsg - GNU Emacs common non-DFSG items, including the core documentation

Emacsにpackage.elをインストール

この辺を参考にさせていただいた
Emacsでプラグインを簡単にインストールするためのpackage.elを使ってみる - ブログのおんがえし
Emacs で始める D言語! - Qiita
cannot load cl-lib at emacs startup - Stack Overflow

手順1(※Emacsにauto-installは入っている前提)
// とりあえずGDC(D言語のコンパイラを入れておく)
# apt-get install gdc

// emacs23にはcl-libが入っていないので手動で入れる
// Emacs上で以下のようにして、ソースが入ったらC-c
$ auto-install-from-url: https://raw.github.com/emacsmirror/cl-lib/master/cl-lib.el

// 以下の文字列をスクラッチバッファでC-jして評価、うまいことはいったらC-c(elispをコンパイル&インストール)
(auto-install-from-url "http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el")
手順2

melpaに関しては以下に簡単な使い方があるのでそれに従う
milkypostman/melpa · GitHub

.emacsと.init.elはほとんど同じものと聞くので.emacsに書いてみる、こんな感じ

;; 大体この辺が.emacsの先頭

;; auto-install
(require 'auto-install)
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)
(add-to-list 'load-path "~/.emacs.d/auto-install")

; Add package-archives
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
; Initialize
(package-initialize)
(when (< emacs-major-version 24)
  ;; For important compatibility libraries like cl-lib
  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize)

大体これで'M-x package-list-packages'が動くので'M-x package-install d-mode'する。

情報収集

プログラミング関連でなにか事を始める時は、はてブで対象のキーワードを検索してブックマーク数の多いものから順に物色していくと便利じゃぞ。

最近のよくある流れ

  1. 日本語サイト調査(はてブはてなダイアリー、その他ブログ)
  2. StackOverflow
  3. 海外メーリングリスト
  4. ソースコード

ソースコードまで調べてわからない場合メーリングリストに質問を投げる。。。

本も買ってみた

ちょっと流し読みした感じだと、C++で困難な部分が解決されているように見えなくもない(解決されているとは言っていない)。文法に関してはJavaC++とあまり変わらないので脳みそが楽な印象。

プログラミング言語D

プログラミング言語D

ライブラリ管理(DUB)

実用的言語にはライブラリが伴う。
yum, apt, easy_install, pear, cpan, mavenみたいなやつがD言語にもある。

パッケージ一覧
Package list - DUB registry

バイナリ
Download - DUB registry

Debian使いはここから
d-apt - APT repository for D