Go言語 インストールメモ

Googleオープンソースプログラミング言語 "The Go Programming Language"を早速試してみた。
インストールで1ヶ所詰まったのでメモ。

環境はMac OS X 10.5.8。

基本、公式のInstalling Goを参考に。

環境変数

以下を~/.bashrc, ~/.profile 等に設定。
GOROOTはどこでもいいし、GOROOTとGOBINも離れててOK。

export GOROOT=$HOME/go
export GOOS=darwin
export GOARCH=amd64
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN

Mercurial

Mercurial入ってなかったのでインストール。

sudo easy_install mercurial

ソースコード取得

hg clone -r release https://go.googlecode.com/hg/ $GOROOT

ここで
ValueError: unknown locale: UTF-8
というエラーで止まってしまった。


言語設定2行を~/.profileに入れて回避。

export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

ビルド

gccが入ってないならインストール。
$GOBINで設定したディレクトリが無いなら作って、PATHに入ってる事を確認。

cd $GOROOT/src/
./all.bash

--- cd ../test
N known bugs; 0 unexpected bugs
と出れば成功。

Hello World

hello.goファイル作成
package main

import "fmt"

func main() {
	fmt.Printf("hello, world\n")
}
コンパイル

6g hello.go

これでhello.6ができる。

リンク

6l hello.6

これで6.outができる。

6l -o hello.out hello.6

とすれば名前も変えられる。

実行

./6.out

> hello, world

よしよし。

ElScreen

Screen風の画面切り替え用Emacsスクリプト。タブ表示・操作が便利。

-> ElScreen

.emacs.el

;; ElScreen
(require 'elscreen)
(if window-system
    (define-key elscreen-map "\C-z" 'iconify-or-deiconify-frame)
  (define-key elscreen-map "\C-z" 'suspend-emacs))


使い方

  • C-z c : 新規ウィンドウ
  • C-z k : ウィンドウを閉じる
  • C-z K : 他のウィンドウを閉じる
  • C-z p : 前のウィンドウ
  • C-z n : 次のウィンドウ
  • C-z a : 直前のウィンドウ
  • C-z 0-9 : ウィンドウ番号指定


C-z はデフォルトでsuspendなので、変更したければ

(setq elscreen-prefix-key "\C-z")

C-x C-zもsuspendなので、とりあえずそのまま。


escreen.elの

(defcustom elscreen-display-tab t

(defcustom elscreen-display-tab nil

にしてやればタブが消えて見た目スッキリ。


以下を.emacs.elに足せばtitleにスクリーンの一覧が表示されるので、クリックでタブを切り替えたりしないのであれば困らない。

(defun elscreen-frame-title-update ()
  (when (elscreen-screen-modified-p 'elscreen-frame-title-update)
    (let* ((screen-list (sort (elscreen-get-screen-list) '<))
	   (screen-to-name-alist (elscreen-get-screen-to-name-alist))
	   (title (mapconcat
		   (lambda (screen)
		     (format "%d%s %s"
			     screen (elscreen-status-label screen)
			     (get-alist screen screen-to-name-alist)))
		   screen-list " ")))
      (if (fboundp 'set-frame-name)
	  (set-frame-name title)
	(setq frame-title-format title)))))

(eval-after-load "elscreen"
  '(add-hook 'elscreen-screen-update-hook 'elscreen-frame-title-update))

Carbon Emacs memo

さっさと使い始めたいときの設定

~/.emacs.el

;; load path
(setq load-path (cons "~/bin/emacs/lisp" load-path))

;; no startup page
(setq inhibit-startup-message t)

;; no backup file
(setq backup-inhibited t)

;; window setting
(if window-system (progn
  (setq initial-frame-alist '*1
;; enable history cache
(setq history-length t)
(when (require 'session nil t)
  (setq session-initialize '(de-saveplace session keys menus places)
        session-globals-include '*2

;; enable minibuf isearch
(require 'minibuf-isearch nil t)

session.el, minubuf-isearch.el はここから。
コマンド履歴だけならsession.el不要。
-> session.el
-> minibuf-isearch.el


.profile

alias emacs='open -a /Applications/Emacs.app'

*1:width . 100) (height . 40) (top . 180))) (set-background-color "Black") (set-foreground-color "White") (set-cursor-color "Gray")

*2:kill-ring 50) (session-file-alist 500 t) (file-name-history 10000))) (add-hook 'after-init-hook 'session-initialize) ;; keep cursor position (setq session-undo-check -1

MacBook memo

リッドクローズモードを試す。モニタだけ直差し。キーボード・マウスはsynergy経由でWindowsのやつを使う。

synergyからWindowsHHK使うと、英字配列なのに日本語扱いされる。

  • KeyRemap4MacBookマッピングを外してみてもうまくいかず。
  • マッピングXML作って読ませるとうまくいく。が、めんどい上にノート側のキーボードが逆になる。
  • ここの通りPSJ.keylayoutでも解決。ことえりのkeyboard layoutをPS/2Jに。ノート側はやっぱり逆になるので、USに戻してやらなきゃいけない。