ご無沙汰になりました. 色々やってたんですが, どれも公に書きにくいことが多く, こちらを更新するに至れませんでした.
しばらく年末年始時間があるので補完します.
Carbon Emacs でjava書いてコンパイルってのをやってたのですが, どうも間違いなくめんどい.
JavaならやっぱEclipse. てかそれ以外の言語もばっちり!という噂を聞いたので, 早速入れてみることに.
2010/12時点でEclipse 3.6 Heliosが最新です.
早速
http://www.eclipse.org/downloads
からEclipse IDE for Java Developersをダウンロード.
解凍して/Applicationsへeclipseフォルダをぶっ込む.
まぁこれで英語版は使えますが, 日本語化するとかわいいかんじになってどうもよさげだったのでチャレンジ.
まずは,
http://mergedoc.sourceforge.jp/index.html#/pleiades.html
から
Eclipse 3.6.1 Helios SR1 Windows 32bit ベース / Pleiades All in One 3.6.1.20101025
のJREなしパッケージをダウンロード.
解凍するとpleiades-all-in-one-java_*/eclipseの中にdropinsというフォルダがあります.
これを/Applications/eclipse/内のdropinsにそのまま全部上書きしてしまいます.
続いて,
/Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini
を開いて
-javaagent:dropi....で始まる, Pleiades内のeclipse.iniファイル内最終行を追加.
そして,
-Xms128m
へ変更しておく.
以上でEclipseを立ち上げると無事Pleiadesが立ち上がり, 日本語のかわいいやつが出てきます.
pluginは取り急ぎHadoop MapReduce pluginを.
しかし実はまだあまり使っておらず, コンパイルすらしていません.
補完機能やハイライトがすごくイケてるので, 今後は手放せなくなりそうですが, 慣れるのはまだ先.
2010年12月24日金曜日
2010年11月21日日曜日
Mac os X snow leopard, javaの文字化け
今更ながらjavaを書き始めたが, javacで文字化けしてしまう.
エラーメッセージはSJISで表示されてしまうということをどこかで見たので,
としてUTFにする必要がある. めんどいのでこれはaliasとして
同様にjavaも
とする.
が, しかし, 日本語をインプットすると文字化けしてしまう. やっぱJDK 1.5を使うべきか...そちらならUTF-8環境なので.
しばらく考えよう.
エラーメッセージはSJISで表示されてしまうということをどこかで見たので,
% javac -J-Dfile.encoding=UTF8
としてUTFにする必要がある. めんどいのでこれはaliasとして
alias javac="javac -J-Dfile.encoding=UTF8"として定義を上書きしておく.
同様にjavaも
alias java='java -Dfile.encoding=UTF-8'
とする.
が, しかし, 日本語をインプットすると文字化けしてしまう. やっぱJDK 1.5を使うべきか...そちらならUTF-8環境なので.
しばらく考えよう.
2010年11月19日金曜日
zsh プロンプト変更
なんとなくプロンプトを変更してみた.
書き方が分かったから今度から自分で変更しよう.
参考にできるのはここ.
zsh:Prompt Expansion
変えたのはこれ
結局RPROMPTで右っかわにカレントディレクトリ (%~)を表示させ, 左側にはユーザ名@マシン名 (%n@%m) としました.
時刻とか出してる人もいたけどあんまり必要な情報ではないし... とは言えユーザ名もマシン名も自宅PCであれば意味ないか...
書き方が分かったから今度から自分で変更しよう.
参考にできるのはここ.
zsh:Prompt Expansion
変えたのはこれ
autoload colors colors case ${UID} in 0) PROMPT="%B%{${fg[green]}%}%n@%m#%{${reset_color}%}%b " PROMPT2="%B%{${fg[green]}%}%_#%{${reset_color}%}%b " RPROMPT="%{${fg[yellow]}%}[%~]%{${reset_color}%}" SPROMPT="%B%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%}%b " [ -n "${REMOTEHOST}${SSH_CONNECTION}" ] && PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') ${PROMPT}" ;; *) PROMPT="%{${fg[green]}%}%n@%m %%%{${reset_color}%} " PROMPT2="%{${fg[green]}%}%_%%%{${reset_color}%} " RPROMPT="%{${fg[yellow]}%}[%~]%{${reset_color}%}" SPROMPT="%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%} " [ -n "${REMOTEHOST}${SSH_CONNECTION}" ] && PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') ${PROMPT}" ;; esac
結局RPROMPTで右っかわにカレントディレクトリ (%~)を表示させ, 左側にはユーザ名@マシン名 (%n@%m) としました.
時刻とか出してる人もいたけどあんまり必要な情報ではないし... とは言えユーザ名もマシン名も自宅PCであれば意味ないか...
今更聞けないUNIXコマンド (3) 公開鍵認証方式+ssh ログイン
職場、学校等のサーバが公開鍵認証方式を採用している場合は多いです。
その設定を昨日やったので、一応書いておきます。windowsではputtyなんかでやってましたが、macではTerminalから全部できて便利。
まずは
てなかんじでssh-keygenにより公開鍵, 秘密鍵のペアを生成します.
公開鍵は他人に見られてもオッケーですが、秘密鍵は秘密なのでこれは絶対秘密です.
-t オプションは鍵の種類を設定します. dsaとかありますがデフォルトではrsa2である-t rsaが決まっていて,
これが推奨らしいのでこれでやりましょう.
コマンドを入れるとkeyを作る場所を聞かれるのでいれます. デフォルトで~/.ssh/に入ります.
次にパスフレーズを聞かれるので, パスワードを2回いれます. (これでサーバへ認証します)
これをサーバへ転送します.
とは言え自分はつながっていないので誰かに頼みましょう. 私の場合は違うマシンで入れたのでそっちへ
メールで送り, そこから設定しました.
ここからはサーバ側の設定です.
サーバへファイルid_rsa.pubを送りましょう. sftpやらscpやら単純にftpやらありますが,
scpでやるならば
たとえば
パスワードを聞かれますので入力すればok. ちなみに, scpは-rオプションでディレクトリを転送します.
サーバ管理者がどうしているか分かりませんが, サーバのユーザホームディレクトリに.sshがあるはずなので,
(なければ作る)
でauthorized_keysへ内容を書き込みます. これにて終了.
ちなみに
あとはログインするときは
あるいは
あと, 普通にやっていれば公開鍵がユーザの~/.ssh/known_hostsに追加されるはずですが, エラーが出たり
古かったりすると問題です. 書式は以下の通り.
その設定を昨日やったので、一応書いておきます。windowsではputtyなんかでやってましたが、macではTerminalから全部できて便利。
まずは
% ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/tatsuaki/.ssh/id_rsa): Created directory '/Users/tatsuaki/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:
てなかんじでssh-keygenにより公開鍵, 秘密鍵のペアを生成します.
公開鍵は他人に見られてもオッケーですが、秘密鍵は秘密なのでこれは絶対秘密です.
-t オプションは鍵の種類を設定します. dsaとかありますがデフォルトではrsa2である-t rsaが決まっていて,
これが推奨らしいのでこれでやりましょう.
コマンドを入れるとkeyを作る場所を聞かれるのでいれます. デフォルトで~/.ssh/に入ります.
次にパスフレーズを聞かれるので, パスワードを2回いれます. (これでサーバへ認証します)
% cd .ssh id_rsa id_rsa.pubと2つファイルがあり, id_rsa, id_rsa.pubがありますが, 後者が公開鍵です.
これをサーバへ転送します.
とは言え自分はつながっていないので誰かに頼みましょう. 私の場合は違うマシンで入れたのでそっちへ
メールで送り, そこから設定しました.
ここからはサーバ側の設定です.
サーバへファイルid_rsa.pubを送りましょう. sftpやらscpやら単純にftpやらありますが,
scpでやるならば
$ scp [オプション][転送したいファイル名][転送先のパス]とします.
たとえば
$ scp test.txt USER1@remotehost.co.jp:.sshで手元にあるtest.txtをUSER1としてログインするremotehost.co.jpの~/.ssh/へ送ります.
パスワードを聞かれますので入力すればok. ちなみに, scpは-rオプションでディレクトリを転送します.
サーバ管理者がどうしているか分かりませんが, サーバのユーザホームディレクトリに.sshがあるはずなので,
(なければ作る)
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
でauthorized_keysへ内容を書き込みます. これにて終了.
ちなみに
$ chmod 600 ~/.ssh/authorized_keysでパーミッションを変更して他から表示できないようにしといた方が安全です.
あとはログインするときは
$ ssh USER1@remotehost.co.jp
あるいは
$ ssh -l USER1 remotehost.co.jpで入れます.
あと, 普通にやっていれば公開鍵がユーザの~/.ssh/known_hostsに追加されるはずですが, エラーが出たり
古かったりすると問題です. 書式は以下の通り.
ホスト名, IP キー種別 ホスト公開鍵 # コメント 例: remotehost.co.jp, 192.168.1.2 ssh-rsa AAAAB3NzaC1...nXIDE=.......改行すれば何個も指定できます.
2010年11月16日火曜日
Carbon Emacs フォント設定
また取り急ぎ
M+2VM+IPAG Circle 14ptにフォント設定しました.
なんかこのフォント好きになりました.
.emacs.elへ以下を追加
友人とElispファイルを共有してともにEmacsを楽しもうという話になった.
かなり彼は分割して保存していて, 私の.emacs.elもどこにバグがあるか分からないときがある,
というので, 今度思い切って分割しよう. もうこれで設定は終わりにしたいかな...
フォントは
M+IPA合成フォントからダウンロードさせていただきます. お世話になっております.
M+2VM+IPAG Circle 14ptにフォント設定しました.
なんかこのフォント好きになりました.
.emacs.elへ以下を追加
;;;;;;;;;;;;;;;;;;;;;;; ;; font ;;;;;;;;;;;;;;;;;;;;;; (set-face-attribute 'default nil :family "M+2VM+IPAG circle" :height 140) (set-fontset-font "fontset-default" 'japanese-jisx0208 '("M+2VM+IPAG circle" . "jisx0208.*")) (set-fontset-font "fontset-default" 'katakana-jisx0201 '("M+2VM+IPAG circle" . "jisx0201.*"))
友人とElispファイルを共有してともにEmacsを楽しもうという話になった.
かなり彼は分割して保存していて, 私の.emacs.elもどこにバグがあるか分からないときがある,
というので, 今度思い切って分割しよう. もうこれで設定は終わりにしたいかな...
フォントは
M+IPA合成フォントからダウンロードさせていただきます. お世話になっております.
2010年11月15日月曜日
zshの設定
さらに取り急ぎ, .zshrcおよび.zshenvの設定
.zshenv
.zshrc
1時間くらいで拾い集めた情報であるため, 今後更新予定.
とりあえずプロンプトを変えたい.
.zshenv
PATH=$PATH:$HOME/bin export PATH # MacPorts Installer addition on 2010-09-20_at_22:04:26: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. #Manual PATH export MANPATH=/opt/local/share/man:$MANPATH #Hadoop Path export HADOOP_INSTALL=/Users/tatsuaki/workspace/hadoop-0.21.0 export PATH=$PATH:$HADOOP_INSTALL/bin LANG=ja_JP.UTF-8 export LANG LISTMAX=0 export LISTMAX
.zshrc
# 新規ディレクトリは755、新規ファイルは644にする umask 022 ## Default shell configuration # # set prompt # autoload colors colors case ${UID} in 0) PROMPT="%B%{${fg[green]}%}%/#%{${reset_color}%}%b " PROMPT2="%B%{${fg[green]}%}%_#%{${reset_color}%}%b " SPROMPT="%B%{${fg[green]}%}%r is correct? [n,y,a,e]:%{${reset_color}%}%b " [ -n "${REMOTEHOST}${SSH_CONNECTION}" ] && PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') ${PROMPT}" ;; *) PROMPT="%{${fg[green]}%}%/%%%{${reset_color}%} " PROMPT2="%{${fg[green]}%}%_%%%{${reset_color}%} " SPROMPT="%{${fg[green]}%}%r is correct? [n,y,a,e]:%{${reset_color}%} " [ -n "${REMOTEHOST}${SSH_CONNECTION}" ] && PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') ${PROMPT}" ;; esac #### 補完 #### ############# autoload -U compinit compinit #ディレクトリ名を入力するだけでカレントディレクトリを変更 setopt auto_cd #タブキーを何度も押せば補完候補が出る setopt auto_menu #自動集積機能 setopt correct #補完機能を詰めて表示 setopt list_packed # =以降でも補完できるようにする setopt magic_equal_subst #補完候補リストの日本語を正しく表示 setopt print_eight_bit # 補完の時に大文字小文字を区別しない(但し、大文字を打った場合は小文字に変換しない) zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # ビープ音を鳴らさないようにする setopt no_beep ##history##### # 直前と同じコマンドラインはヒストリに追加しない setopt hist_ignore_dups # ヒストリにhistoryコマンドを記録しない setopt hist_no_store # 余分なスペースを削除してヒストリに記録する setopt hist_reduce_blanks # 行頭がスペースで始まるコマンドラインはヒストリに記録しない # setopt hist_ignore_spece # 重複したヒストリは追加しない # setopt hist_ignore_all_dups # ヒストリを呼び出してから実行する間に一旦編集できる状態になる setopt hist_verify # 履歴ファイルの保存先 HISTFILE=$HOME/.zsh-history # メモリ内の履歴の数 HISTSIZE=30000 # 保存される履歴の数 SAVEHIST=100000 # 履歴ファイルに時刻を記録する機能を有効化 setopt extended_history # 履歴をターミナル間で共有する setopt share_history # ディレクトリを水色にする。 export LS_COLORS='di=01;36' # ファイルリスト補完でもlsと同様に色をつける。 zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} # cd をしたときにlsを実行する function chpwd() { ls } # ディレクトリ名だけで、ディレクトリの移動をする。 setopt auto_cd # lsコマンドの補完候補にも色付き表示 #eval `dircolors` zstyle ':completion:*:default' list-colors ${LS_COLORS} # kill の候補にも色付き表示 zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([%0-9]#)*=0=01;31' zstyle ':completion:*' list-colors \ 'di=01;34' 'ln=01;36' 'pi=40;33' 'so=01;35' 'ex=01;32' \ 'bd=40;33;01' 'cd=40;33;01' 'su=37;41' 'sg=30;43' 'tw=30;42' 'ow=34;42' autoload -U compinit compinit -u ## # Carbon Emacs = cemacs alias cemacs='open -a Emacs' alias cemacsn='open -n Emacs' alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs -nw' #alias# alias ls="ls -G" alias rm="rm -i" alias cp="cp -i" alias mv="mv -i" # application alias # alias firefox="open -a Firefox" alias prev="open -a Preview" alias itunes="open -a iTunes" alias texs="open -a TexShop"
1時間くらいで拾い集めた情報であるため, 今後更新予定.
とりあえずプロンプトを変えたい.
vimの使い方
設定はさておき, vimの使い方を取り急ぎ列挙. PC設定だけで時間が過ぎて行く虚しさ…これは先行投資である.
各モード間の移行
大きく分けて,
それぞれ色んな移動方法があるが, だいたいメインの使用法は
通常モードを起点として,
ビジュアルモード > v
コマンドモード > :(コマンド) /(検索)
挿入モード > a (カーソルの後ろ側へ) i (カーソルの手前側へ)
などです. また, 通常モードに戻るには, Escキーで戻ります.
基本操作(ノーマルモード)
重要な操作
こんなとこでしょう. そのうちvimも.vimrcをいじることで快適度をあげます.
各モード間の移行
大きく分けて,
- 通常モード: カーソル移動, 削除など
- ビジュアルモード: 文章選択用, ここで動いた分選択される
- コマンドモード: vim制御用. ここで色んな操作ができる.
- 挿入モード: 名の通り文書書く用
それぞれ色んな移動方法があるが, だいたいメインの使用法は
通常モードを起点として,
ビジュアルモード > v
コマンドモード > :(コマンド) /(検索)
挿入モード > a (カーソルの後ろ側へ) i (カーソルの手前側へ)
などです. また, 通常モードに戻るには, Escキーで戻ります.
基本操作(ノーマルモード)
- 削除: x(カーソル位置1文字), *x(カーソルから指定文字分削除), X(バックスペース), dd(1行カット)
- コピー: yy (行コピー), *yy(指定行コピー), v(選択範囲開始), y(そこまでコピー)
- ペースト: p(下へ貼付け), P(上へ貼付け)
- カーソルの移動:h(左), j(下), k(上), l(右), 0(行頭), $(行末),:0(ファイル先頭), :*(指定行)
- 画面移動: C-f (画面下へ), C-b(画面上へ)
重要な操作
- 終了: :q(終了), :wq(保存して終了), :q!(保存せず終了)
- 保存: :w(上書き保存), :w ***(別名で保存)
- 検索: /*** (後方検索), ?***(前方検索), n(次の候補へ), N(前の候補へ)
- 取り消し: u(アンドゥ), U(現在行の操作を全て取り消し)
- 置換: :%s/***1/***2/gc (***1を***2へ置換, c無ければ確認無しで実行)
- 繰り返し: .(直前操作繰り返し)
こんなとこでしょう. そのうちvimも.vimrcをいじることで快適度をあげます.
2010年11月14日日曜日
今更聞けないUNIXコマンド (3) ジョブとプロセス
UNIXにおけるプロセス, とはOSが管理する実行単位です. それに対して, ジョブは複数のプロセスから成る, シェルが管理するプログラムの実行単位になります.
動作中のジョブは
のように確認できます. とはいえ, Stoppedでgnuplotは停止中ですね.
Running : 実行中, Killed: 強制終了, Done: 正常終了, Exit: 異常終了などがあります.
フォアグランドジョブというのが, 現在表で実行中のジョブのことですが, 裏で動作する
バックグランドジョブに切り替えることができます.
逆にしたければ
また, プロセス一覧も見ることができます.
PIDというのはプロセスを管理するプロセス番号です. 試しに消してみましょう.
とまぁgnuplotが終了されました. これはTERMシグナルというものを送っています.
本気で殺したければkill -KILLとKILLシグナルを送ります.
これで無事強制終了されました. なお, Kill PID番号でプロセスを, Kill %ジョブ番号でジョブを殺せます.
シグナルは色々あるらしいので, よくわからんのですが, (kill -lコマンドで確認可能)
とりあえず有名なのはHUPシグナルらしいです.
これはネットワークサービスとして動くデーモンに設定ファイルを再読み込みさせるために使います.
ようするに, 何か設定ファイル変えたときに反映させるためですね.
なお, 他にkillallコマンドってのがあって, そっちはコマンド名でシグナルを送るそうです.
ps -axwがでてきたのでついでに書くと, topコマンドを使うと, 色んなシステム状態をリアルタイムで見れます.
アクティビティモニタと同じですね. これも全然知らんかった...
ちなみに, 一緒に書くのがいいかわからんが,
勝手に人が見やすい単位を表示してくれてます.
まぁしかしコマンドってのは死ぬほどあるな. 必要になれば, あるいは人が使ってみるのを見て覚えるしかない.
正直こういったことは覚えたから偉いって訳でもなく, ただ便利だよね, てだけなので必要に応じることが大事だと思います. (初心者が学ぶ姿勢ではないか…)
動作中のジョブは
$ jobs [1]+ Stopped gnuplot
のように確認できます. とはいえ, Stoppedでgnuplotは停止中ですね.
Running : 実行中, Killed: 強制終了, Done: 正常終了, Exit: 異常終了などがあります.
フォアグランドジョブというのが, 現在表で実行中のジョブのことですが, 裏で動作する
バックグランドジョブに切り替えることができます.
$ bg %1 [1]+ gnuplot & [1]+ Stopped gnuplotとこのようにbg %ジョブ番号でバックグラウンドになります. (%注意)
逆にしたければ
$ fg %1 gnuplot gnuplot>でフォアグラウンドにできます. ちなみに引数をいれなければデフォルトでStoppedのジョブが選ばれます.
また, プロセス一覧も見ることができます.
$ ps PID TTY TIME CMD 478 ttys000 0:00.04 -bash 995 ttys000 0:00.01 gnuplot 895 ttys001 0:00.01 -bashターミナルを2つ立ち上げていたので, bashが二つプロセスとしてあります.
PIDというのはプロセスを管理するプロセス番号です. 試しに消してみましょう.
$ kill 995 $ ps PID TTY TIME CMD 478 ttys000 0:00.05 -bash 895 ttys001 0:00.01 -bash [1]+ Terminated gnuplot
とまぁgnuplotが終了されました. これはTERMシグナルというものを送っています.
本気で殺したければkill -KILLとKILLシグナルを送ります.
$ kill -KILL 1041 $ ps PID TTY TIME CMD 478 ttys000 0:00.07 -bash 895 ttys001 0:00.01 -bash [1]+ Killed gnuplot
これで無事強制終了されました. なお, Kill PID番号でプロセスを, Kill %ジョブ番号でジョブを殺せます.
シグナルは色々あるらしいので, よくわからんのですが, (kill -lコマンドで確認可能)
とりあえず有名なのはHUPシグナルらしいです.
これはネットワークサービスとして動くデーモンに設定ファイルを再読み込みさせるために使います.
ようするに, 何か設定ファイル変えたときに反映させるためですね.
$ ps -axwで全ユーザプロセスを省略せずに見ることができます. これでプロセス探して,
$ kill -HUP PIDとすることで, 更新させることができます.
なお, 他にkillallコマンドってのがあって, そっちはコマンド名でシグナルを送るそうです.
$ killall gnuplot $ ps PID TTY TIME CMD 478 ttys000 0:00.10 -bash 895 ttys001 0:00.03 -bash [1]+ Terminated gnuplot
ps -axwがでてきたのでついでに書くと, topコマンドを使うと, 色んなシステム状態をリアルタイムで見れます.
アクティビティモニタと同じですね. これも全然知らんかった...
ちなみに, 一緒に書くのがいいかわからんが,
$ df -i -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 298Gi 100Gi 197Gi 34% 26399483 51659343 34% / devfs 107Ki 107Ki 0Bi 100% 610 0 100% /dev map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /homeでディスク使用状況を見れます. -iってのはi-nodeの使用状況も表示, -hってのは
勝手に人が見やすい単位を表示してくれてます.
まぁしかしコマンドってのは死ぬほどあるな. 必要になれば, あるいは人が使ってみるのを見て覚えるしかない.
正直こういったことは覚えたから偉いって訳でもなく, ただ便利だよね, てだけなので必要に応じることが大事だと思います. (初心者が学ぶ姿勢ではないか…)
今更聞けないUNIXコマンド (2) シェル変数について
色々と環境を構築するときにはPATHであったり, なんでもシェル変数がつきまといます.
てわけで簡単な操作をまとめておきます.
代入〜表示〜削除まで
こんなかんじで, スペースなしで変数へ代入する. echo + $変数名で表示.
unset 変数名で削除を行う. なお, 代入の際文字列なら, "文字列"とする.
組み込みシェル変数
と, さっきのは普通のシェルのユーザが定義する変数でした.
特定の変数は現在の設定などのために使用されるそうです.
そういった組み込みシェル変数を見るには
といった具合にsetで見れます.
例えば
環境変数
さっきまでのは普通のシェル変数でして, そのシェル内でのみ有効なのですが, 環境変数という
他のプログラムまで影響を及ぼす特別な変数があります. 例えばさっき出てきたPATHやLANGなどがそれです.
環境変数の定義に仕方は
例えば,
てわけで
こんな初歩的なことも知らなかったとは切ない.
今ある環境変数一覧は,
てわけで簡単な操作をまとめておきます.
代入〜表示〜削除まで
$ age=1 $ echo $age 1 $ unset age $ echo $age
こんなかんじで, スペースなしで変数へ代入する. echo + $変数名で表示.
unset 変数名で削除を行う. なお, 代入の際文字列なら, "文字列"とする.
組み込みシェル変数
と, さっきのは普通のシェルのユーザが定義する変数でした.
特定の変数は現在の設定などのために使用されるそうです.
そういった組み込みシェル変数を見るには
$ set Apple_PubSub_Socket_Render=/tmp/launch-E3SrVT/Render BASH=/bin/bash BASH_ARGC=() BASH_ARGV=() BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="3" [1]="2" [2]="48" [3]="1" [4]="release" [5]="x86_64-apple-darwin10.0") BASH_VERSION='3.2.48(1)-release' CLICOLOR=1 COLUMNS=100 COMMAND_MODE=unix2003 〜省略
といった具合にsetで見れます.
例えば
$ pwd /Users/Shared $ echo $PWD /Users/Sharedとか.
環境変数
さっきまでのは普通のシェル変数でして, そのシェル内でのみ有効なのですが, 環境変数という
他のプログラムまで影響を及ぼす特別な変数があります. 例えばさっき出てきたPATHやLANGなどがそれです.
環境変数の定義に仕方は
$ export ***です. 削除は例によってunset.
例えば,
$ echo $PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin:〜てかんじで中身を見ることができます.
てわけで
$ export PATH=$PATH:/usr/...てやつは, PATHの中身プラス/usr/...てパスを代入する, という意味があるんですね.
こんな初歩的なことも知らなかったとは切ない.
今ある環境変数一覧は,
$ printenv MANPATH=/opt/local/share/man: TERM_PROGRAM=Apple_Terminal TERM=xterm-color SHELL=/bin/bash CLICOLOR=1 TMPDIR=/var/folders/z-/z-li-9WFH48WCuV3k4AIYE+++TI/-Tmp-/ Apple_PubSub_Socket_Render=/tmp/launch-E3SrVT/Render TERM_PROGRAM_VERSION=273 〜省略などで見ることができます.
Carbon Emacs + Wanderlust + IMAP で Gmail
Carbon Emacsが便利すぎますが, メーラとしても使えるということで, 調べてみるとWanderlustというのがありました.
というわけで早速これを導入してみました.
まずはCarbon EmacsのHelpからCarbon Emacs Package > Net Installから選んで終了.
続いて.emacs.elへ設定
そしてルートに.wlというファイルを作り, 下記を書き込み. いろんなサイトを参考にしすぎてよくわかりません.
また, 同様に.foldersを以下の通り作成.
最初設定で色んなページの参照と違ったのは, gnutlsがないと怒られた点. portsでインストールしました.
簡単なwanderlustの使い方
Emacsを立ち上げて,
通常モード
サマリモード
そしてメールを書くときは
ちなみにアドレス帳は~/.addressに書きます. こ
というわけで早速これを導入してみました.
まずはCarbon EmacsのHelpからCarbon Emacs Package > Net Installから選んで終了.
続いて.emacs.elへ設定
;; Wanderlust で Gmail!! (setq ssl-certificate-verification-policy 1) (autoload 'wl "wl" "Wanderlust" t) (autoload 'wl-other-frame "wl" "Wanderlust on new frame." t) (autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
そしてルートに.wlというファイルを作り, 下記を書き込み. いろんなサイトを参考にしすぎてよくわかりません.
;;; Wanderlust 設定ファイル ;; From設定 (setq wl-envelope-from "hogehoge@gmail.com") (setq wl-from "My Name Is...") ;; POP サーバの設定, IMAPなので不使用 ;(setq elmo-pop3-default-server "pop.***.com") ;(setq elmo-pop3-default-port 110) ;(setq elmo-pop3-default-user "hogehoge") ;(setq elmo-default-pop-authenticate-type 'clear) ;; POP3 before SMTP ;(setq wl-draft-send-mail-function 'wl-draft-send-mail-with-pop-before-smtp) ;; IMAP サーバの設定 (setq elmo-imap4-default-server "imap.gmail.com") (setq elmo-imap4-default-user "hogehoge@gmail.com") ; (setq elmo-imap4-default-authenticate-type 'clear) ; (setq elmo-imap4-default-port '993) (setq elmo-imap4-default-stream-type 'ssl) (setq elmo-imap4-use-modified-utf7 t) ; 日本語フォルダ対策 (setq ssl-program-name "openssl") ;; SMTP サーバの設定 (setq wl-smtp-connection-type 'starttls) (setq wl-smtp-posting-port 587) (setq wl-smtp-authenticate-type "plain") (setq wl-smtp-posting-user "hogehoge") (setq wl-smtp-posting-server "smtp.gmail.com") (setq wl-local-domain "gmail.com") ;; デフォルトのフォルダ (setq wl-default-folder "%inbox") ;; 削除をGmail仕様に (setq wl-dispose-folder-alist (cons '("^%inbox" . remove) wl-dispose-folder-alist)) ;; フォルダ名補完時に使用するデフォルトのスペック (setq wl-default-spec "%") (setq wl-draft-folder "%[Gmail]/Drafts") ; Gmail IMAPの仕様に合わせて (setq wl-trash-folder "%[Gmail]/Trash") ;; 画面を普通のメーラみたいな 3ペインに ;(setq wl-stay-folder-window t) ;; 下書きディレクトリをローカルに設定する. (setq wl-draft-folder "+Drafts") (setq wl-folder-check-async t) ; 非同期でチェックするように ;; 大きなメッセージを分割して送信しない(デフォルトはtで分割する) (setq mime-edit-split-message nil) ;; 起動時からオフラインにする ;; (setq wl-plugged nil) ;; サマリモードで日時を英語表示 ;; (setq wl-summary-weekday-name-lang 'en) ;; HTMLファイルは表示しない。 ;;(setq mime-setup-enable-inline-html nil) ;; メールを書くときは見出し画面を残して、フル画面にする (setq wl-draft-reply-buffer-style 'keep) ;; 送信済みIMAPフォルダは送信と同時に既読にする (setq wl-fcc-force-as-read t) ;; 最初からスレッドを開いておかない ;;(setq wl-thread-insert-opened nil) ;; スレッドを分割するしきい値(デフォルト:30) (setq wl-summary-max-thread-depth 30) ;; 警告無しに開けるメールサイズの最大値(デフォルト:30K) (setq elmo-message-fetch-threshold 500000) ;; プリフェッチ時に確認を求めるメールサイズの最大値(デフォルト:30K) (setq wl-prefetch-threshold 500000) ;;;------------------------------------------ (setq wl-dispose-folder-alist (cons '("^%inbox" . remove) wl-dispose-folder-alist)) ;;;------------------------------------------ ;;; from,to のデコード指定。 (mime-set-field-decoder 'From nil 'eword-decode-and-unfold-unstructured-field-body) (mime-set-field-decoder 'To nil 'eword-decode-and-unfold-unstructured-field-body) ;;;------------------------------------------ ;; summary-mode ですべての header を一旦除去 (setq mime-view-ignored-field-list '("^.*")) ;; 表示するヘッダ。 (setq wl-message-visible-field-list (append mime-view-visible-field-list '("^Subject:" "^From:" "^To:" "^Cc:" "^X-Mailer:" "^X-Newsreader:" "^User-Agent:" "^X-Face:" "^X-Mail-Count:" "^X-ML-COUNT:" )))
また, 同様に.foldersを以下の通り作成.
%inbox "受信トレイ" %[Gmail]/Starred "☆" +Drafts "下書き" %work "仕事" %[Gmail]/All Mail "全てのメール" %[Gmail]/Sent Mail "送信済みメール" %[Gmail]/Trash "ゴミ箱" %[Gmail]/Spam "迷惑メール"
最初設定で色んなページの参照と違ったのは, gnutlsがないと怒られた点. portsでインストールしました.
簡単なwanderlustの使い方
Emacsを立ち上げて,
M-x wlで起動. 基本的にspaceかEnterで決定します.
通常モード
- s: 未読メール更新
- Shift+s: サマリ更新
- o: 未読メールフォルダを開く
- [, ]: 全てのフォルダを開く, 閉じる
- Shift+e: ゴミ箱を空にする
- M-t: オンライン/オフラインの切り替え
- q: 終了
- w: メールを書く
サマリモード
- DEL: 読んでいるメールを上にスクロール
- ENTER: 読んでいるメールを一行進める
- -: 読んでいるメールを一行戻す
- n: 次のメール
- p: 一つ上のメール
- Shift+h: ヘッダ表示(. で戻る)
- s: 現在のフォルダの一覧表示
- g: フォルダ移動
- w: メールを書く
- a: 返信
- Shift+a: メールを引用してお返事を書く
- f: 転送
- Shift+e: メールの再編集
- y: メール保存
- Shift+z: ~/.addresses の更新
そしてメールを書くときは
- C-c C-s: メール送信
- C-c C-c: 送信してドラフトバッファ消去
- C-c C-y: メールの引用
- C-c C-k: 破棄
- C-c C-x C-m: 最後に読んだメールを挿入
- C-c C-x C-t: テキスト挿入
- C-c C-x C-i: ファイルをエンコードして挿入
ちなみにアドレス帳は~/.addressに書きます. こ
2010年11月12日金曜日
Mac Portsについて
Mac Portsとは?
UNIX用ソフトウェアを自動的にダウンロードしてくれる非常に便利なパッケージ管理システム。
Mac Ports
からダウンロードして, インストールします. 環境設定は勝手に.bash_profileにPATHが追加されます.
PATHを見ると, 基本的に/opt/localにインストールされることになります.
ただマニュアルの保存先のMANPATHは追加されていないので, これは自分でしましょう.
欲しいものがあれば (例: lessに文字コード認識機能を追加したページャlv)
インストールしているport一覧は
ちょっと整理せねば.
実は定期的に自分でアップデートしないといけないので,
まとめてやりたいなら
有効/無効の切り替え
削除
以上
UNIX用ソフトウェアを自動的にダウンロードしてくれる非常に便利なパッケージ管理システム。
Mac Ports
からダウンロードして, インストールします. 環境設定は勝手に.bash_profileにPATHが追加されます.
PATHを見ると, 基本的に/opt/localにインストールされることになります.
ただマニュアルの保存先のMANPATHは追加されていないので, これは自分でしましょう.
$ export MANPATH=/opt/local/share/man:$MANPATH $ source .bash_profile
欲しいものがあれば (例: lessに文字コード認識機能を追加したページャlv)
$ sudo port install lv Password:でオッケー.
インストールしているport一覧は
$ port installed The following ports are currently installed: atk @1.30.0_0 (active) autoconf @2.67_0 autoconf @2.68_0 (active) automake @1.11.1_0 (active) bzip2 @1.0.5_3 bzip2 @1.0.6_0 (active) cairo @1.10.0_1 (active) cppunit @1.12.1_0 (active) ctags @5.8_0 (active) db46 @4.6.21_6 (active) dbus @1.2.24_1 (active) dirac @1.0.2_0 (active) docbook-xml @5.0_0 (active) docbook-xml-4.1.2 @4.1.2_1 (active) docbook-xml-4.2 @4.2_0 (active) docbook-xml-4.3 @4.3_0 (active) docbook-xml-4.4 @4.4_0 (active) docbook-xml-4.5 @4.5_0 (active) docbook-xml-5.0 @5.0_0 (active) docbook-xsl @1.75.2_0 (active) exo @0.3.107_0 (active) expat @2.0.1_1 (active) faac @1.28_2 (active) faad2 @2.7_0 (active) ffmpeg @0.6_2 (active) 〜省略〜で見れます. けっこうたくさんありますね...どれがどれかわからん...
ちょっと整理せねば.
実は定期的に自分でアップデートしないといけないので,
$ port outdatedで新しいのがあるか調べて,
$ sudo port upgrade ****でアップデート.
まとめてやりたいなら
$ sudo port upgrade outdated Password:で全部やります.
有効/無効の切り替え
$ sudo port deactivate **** $ sudo port activate ****
削除
$ sudo port uninstall ****ただ他のportと連携してたら消せません.
以上
2010年11月11日木曜日
Pythonの初歩
Python を仕事でよく使うので, 休みを利用して速習します.
最初は便利なデータ構造の扱いについて.
リスト
まずは定義の仕方. と簡単な扱い方.
[ ]でくくって定義するのがリスト. どんなもの, 文字列, 数値なども格納可能.
list[: ]のようにして指定箇所のオブジェクトを取り出すことができる. これをスライスという.
基本演算
+[100]でリストへ追加. *を使うとそれを何回も繰り返したものを返す. あくまでlistそのものは変わらない.
del list[ ] で要素削除.
様々なメソッド
ソート
リバース
追加
ディクショナリ
<key, value> によって保持されるデータ型. リストはkeyに使えないことに注意.
こんなかんじで, { }でくくってkey:valueで定義します. あとは["key"]とすればvalueを探せますし,
["new key"]で新たなkey:valueを追加できます.
もちろん欲しいのkeyの一覧
あと, keyが含まれてるかどうか
タプル
長さも変えられないし, 書き換えもできないタプルの紹介. ディクショナリのkeyとして使えば便利かと.
取り出し, 演算は可能. 他のタプルとして定義すればよいよね.
スライスもリストと同じです.
型変換について
もちろん便利な型変換も可能です.
以上, 今回の話をまとめると,
最初は便利なデータ構造の扱いについて.
リスト
まずは定義の仕方. と簡単な扱い方.
>>> list = [1,2,"abc",3,4] >>> list [1, 2, 'abc', 3, 4] >>> list[2] 'abc' >>> list[-2] 3 >>> list[1:] [2, 'abc', 3, 4] >>> list[1:3] [2, 'abc']
[ ]でくくって定義するのがリスト. どんなもの, 文字列, 数値なども格納可能.
list[: ]のようにして指定箇所のオブジェクトを取り出すことができる. これをスライスという.
基本演算
>>> list += [100] >>> list [1, 2, 'abc', 3, 4, 100] >>> list *2 [1, 2, 'abc', 3, 4, 100, 1, 2, 'abc', 3, 4, 100] >>> del list[-1] >>> list [1, 2, 'abc', 3, 4]
+[100]でリストへ追加. *を使うとそれを何回も繰り返したものを返す. あくまでlistそのものは変わらない.
del list[ ] で要素削除.
様々なメソッド
ソート
>>> list [1, 2, 120, 3, 4] >>> list.sort() >>> list [1, 2, 3, 4, 120]
リバース
>>> list2 = list.reverse() >>> list [120, 4, 3, 2, 1]
追加
>>> list.append([9,10]) >>> list [120, 4, 3, 2, 1, [9, 10]] >>> a = list >>> list.extend(a) >>> list [120, 4, 3, 2, 1, [9, 10], 120, 4, 3, 2, 1, [9, 10]]appendで1個のオブジェクト追加. extendでリスト結合.
ディクショナリ
<key, value> によって保持されるデータ型. リストはkeyに使えないことに注意.
>>> dic = {"name" : "K", "addr" : "JPN", "count" : 100} >>> dic {'count': 100, 'name': 'K', 'addr': 'JPN'} >>> dic ["hobby"] = "guitar" >>> dic ["hobby"] 'guitar' >>> dic {'count': 100, 'hobby': 'guitar', 'name': 'K', 'addr': 'JPN'}
こんなかんじで, { }でくくってkey:valueで定義します. あとは["key"]とすればvalueを探せますし,
["new key"]で新たなkey:valueを追加できます.
もちろん欲しいのkeyの一覧
>>> dic.keys() ['count', 'hobby', 'name', 'addr']
あと, keyが含まれてるかどうか
>>> dic.has_key("count") True >>> dic.has_key("hoge") False
タプル
長さも変えられないし, 書き換えもできないタプルの紹介. ディクショナリのkeyとして使えば便利かと.
>>> tup = (192,168,1,1) >>> tup (192, 168, 1, 1)
取り出し, 演算は可能. 他のタプルとして定義すればよいよね.
>>> tup2 = tup + ("abc",11) >>> tup2 (192, 168, 1, 1, 'abc', 11) >>> tup2 [3:] (1, 'abc', 11)
スライスもリストと同じです.
型変換について
もちろん便利な型変換も可能です.
>>> a = list(tup2) >>> a [192, 168, 1, 1, 'abc', 11] >>> a = tuple(a) >>> a (192, 168, 1, 1, 'abc', 11)
以上, 今回の話をまとめると,
シーケンス型の組み込み型: リスト, タプル マップ型の組み込み型: ディクショナリ 変更可能な組み込み型: リスト, ディクショナリ 変更不可能な組み込み型: タプル, (文字列も同じ)
2010年11月7日日曜日
今更聞けないUNIXコマンド (1)
shellの操作も実は素人なもので、覚えたものを随時書いて行きます。
リンク作成
リンクにはディスク内の同じ領域を指し示す「ハードリンク」と元のファイルのパスを記憶する「シンボリックリング」があります。
シンボリックリンクの作成は
のようにlnコマンドに-sオプションをつけて、リンク先、リンク元の順に記述で作成。
注意点としては、相対パスで記述する場合、リンクファイルからの相対パスでできること。
絶対パスで記述すればこういった心配はありませんが...
ハードリンクの場合はオプションをつけずに
のように記述。
圧縮、解凍
ファイル圧縮
gzipファイル解凍
これらはファイルに対しての圧縮。
次はアーカイブに対しての圧縮。
圧縮アーカイブ作成
今度は中身を見る
そして展開
ディレクトリを指定したいなら
のように-Cオプション+展開先を指定できます。
ファイル検索
findコマンド
その他オプションは
-execコマンド
こんな感じで、-exec コマンド {} ¥;とするとfind結果を引数にしてコマンドできる。
上記例はtxtファイルを探して、それはls -lhしたもの。
lacateコマンド
findは検索に時間がかかるので、あらかじめ全てのファイル/ディレクトリのパスを
登録したlacateコマンドデータベースがあって、そこから検索するほうが早いらしい。
まずはこれを使うためにデータベースを更新。
しかし検索は激速
とりあえず一回目はこんな感じで。
おさらい
リンク作成
リンクにはディスク内の同じ領域を指し示す「ハードリンク」と元のファイルのパスを記憶する「シンボリックリング」があります。
シンボリックリンクの作成は
ln -s hoge.txt tmp/hoge_sl.txt
のようにlnコマンドに-sオプションをつけて、リンク先、リンク元の順に記述で作成。
注意点としては、相対パスで記述する場合、リンクファイルからの相対パスでできること。
絶対パスで記述すればこういった心配はありませんが...
ハードリンクの場合はオプションをつけずに
ln hoge.txt tmp/hoge_hl.txt
のように記述。
圧縮、解凍
ファイル圧縮
$ gzip test.txt $ ls drwxr-xr-x 7 tatsuaki staff 238 11 7 14:25 . drwxr-xr-x+ 39 tatsuaki staff 1326 11 6 11:19 .. -rw-r--r--@ 1 tatsuaki staff 6148 11 1 23:36 .DS_Store -rw-r--r-- 1 tatsuaki staff 37 10 11 19:20 test.txt.gz
gzipファイル解凍
gunzip test.txt.gz
これらはファイルに対しての圧縮。
次はアーカイブに対しての圧縮。
圧縮アーカイブ作成
$ tar cvzf test.tgz test a test a test/.test.txt.swp
今度は中身を見る
tar tvzf test.tgz
そして展開
tar xvzf test.tgz
ディレクトリを指定したいなら
tar xvzf test.tgz -C tmp/
のように-Cオプション+展開先を指定できます。
ファイル検索
findコマンド
find Documents -name test -type fDocumentsフォルダ内から、名前がtestを探す。-type fでファイルだけを対象にする。
その他オプションは
- -type: d (ディレクトリ) f (ファイル) l (シンボリックリンク) 等
- -mtime N : 最終修正日 +NでN日前より前, -NでN日前より後
- -mmin N : N分
- -size : +-で以上以下
- -user : ファイルオーナー指定
- -empty : 空ファイルを探す
-execコマンド
$ find ~ -name *.txt -exec ls -lh {} \; -rw-r--r-- 1 tatsuaki staff 134B 10 22 16:19 /Users/tatsuaki/test.txt
こんな感じで、-exec コマンド {} ¥;とするとfind結果を引数にしてコマンドできる。
上記例はtxtファイルを探して、それはls -lhしたもの。
lacateコマンド
findは検索に時間がかかるので、あらかじめ全てのファイル/ディレクトリのパスを
登録したlacateコマンドデータベースがあって、そこから検索するほうが早いらしい。
まずはこれを使うためにデータベースを更新。
$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist com.apple.locate: Already loadedと思ったらすでに更新済み。手動でやるなら
sudo /usr/libexec/locate.updatedb結構時間かかる…
しかし検索は激速
とりあえず一回目はこんな感じで。
おさらい
- ln : リンク作成
- tar : アーカイブ圧縮(cvzf)、解凍(xvzf)コマンド。中身はtvzfで閲覧
- find : 検索。-execオプションで他のコマンドと組み合わせて便利
- locate : 専用データベースから検策
Carbon Emacs の設定
こちらも取り急ぎ備忘録として。
最近webで情報を無理矢理ピックアップしてemacsを使いやすいようにsetupしました。
ここまでがもろもろの設定。
使いやすくするためのコマンド群.
行数を表示するlinum, tab化するElscreen, 補完機能強化のmcomplete, cycle-miniの設定ファイル. いずれも
を置きます。
例によってこれで素人がCarbon Emacsを使える設定となりました。
linumがページを動かすたびに行数表示のため更新されるので少し動作がもっさりするのが不満。
ずぶの素人がなぜemacsかというと、学校でemacsしか使ったことがなく、vimよりも慣れているということです。
ぱっと書く程度のエディタならvimの方が便利そうなので、普通の使い方くらいは覚えます。
それも備忘録としてまた今度。
最近webで情報を無理矢理ピックアップしてemacsを使いやすいようにsetupしました。
;; ロードパス (setq load-path (cons "~/emacs/site-lisp" load-path)) (setq load-path (cons "~/emacs/site-lisp/w3m" load-path)) (add-to-list 'load-path "~/emacs/site-lisp/") ;; 画面の設定 (if window-system (progn ;;ウィンドウサイズでフォルト (setq initial-frame-alist '((width . 200) (height . 52) (top . 0)(left . 0))) ;;文字の色 (add-to-list 'default-frame-alist '(foreground-color . "white")) ;; 背景色 (add-to-list 'default-frame-alist '(background-color . "black")) )) ;; カーソルの色を設定 (add-to-list 'default-frame-alist '(cursor-color . "Gray")) ;; マウスポインタの色を設定します。 (add-to-list 'default-frame-alist '(mouse-color . "SlateBlue2")) ;; モードラインの文字の色を設定します。 (set-face-foreground 'modeline "white") ;; モードラインの背景色を設定します。 (set-face-background 'modeline "MediumPurple2") ;; 選択中のリージョンの色を設定します。 ; (set-face-background 'region "LightSteelBlue1") ;; モードライン(アクティブでないバッファ)の文字色を設定します。 (set-face-foreground 'mode-line-inactive "gray30") ;; モードライン(アクティブでないバッファ)の背景色を設定します。 (set-face-background 'mode-line-inactive "gray85") ;; ビープ音を消す (setq visible-bell t) ;; デフォルトの透明度を設定する (85%) (add-to-list 'default-frame-alist '(alpha . (80 50))) ;; 文字色変更 ;(if window-system (progn; ; ;(set-face-foreground 'font-lock-comment-face "MediumSeaGreen") ;(set-face-foreground 'font-lock-string-face "purple") ;(set-face-foreground 'font-lock-keyword-face "blue") ;(set-face-foreground 'font-lock-function-name-face "blue") ;(set-face-bold-p 'font-lock-function-name-face t) ;(set-face-foreground 'font-lock-variable-name-face "black") ;(set-face-foreground 'font-lock-type-face "LightSeaGreen") ;(set-face-foreground 'font-lock-builtin-face "purple") ;(set-face-foreground 'font-lock-constant-face "gray") ;(set-face-foreground 'font-lock-warning-face "blue") ;(set-face-bold-p 'font-lock-warning-face nil) ; ;)) ;; ファイルパス表示 (setq frame-title-format (format "%%f - Emacs@%s" (system-name))) ;; 行数表示 (line-number-mode t) ;; スタートアップページを表示しない (setq inhibit-startup-message t) ;;バックアップファイルを作らない (setq backup-inhibited t) ;; Macのキーバインドを使う. optionをメタキーにする ;;(mac-key-mode 1) ;(setq mac-option-modifier 'meta) ;; spotlightにとられないためのコード ;(mac-add-ignore-shortcut '(? )) ;(mac-add-ignore-shortcut '(control)) ;;範囲指定 Ctr+Space (setq transient-mark-mode t) ;;シフト + 矢印で範囲選択 (setq pc-select-selection-keys-only t) (pc-selection-mode 1) ;;; タブ文字はスペース4文字分 (setq default-tab-width 4) ;; フォント設定 ;(if (eq window-system 'mac) (require 'carbon-font)) ;(fixed-width-Set-fontset "hirakaku_w3" 10) ;(setq fixed-width-rescale nil) ;;メニューバーを隠す ;(tool-bar-mode -1) ;;対応する括弧を光らせる (show-paren-mode 1) ;; hline 編集行 (defface hlline-face '((((class color) (background dark)) ;;(:background "dark state gray")) (:background "gray10" :underline "gray24")) (((class color) (background light)) (:background "ForestGreen" :underline nil)) (t ())) "*Face used by hl-line.") (setq hl-line-face 'hlline-face) ;;(setq hl-line-face 'underline) ;; 編集行のハイライト (global-hl-line-mode) ;; ウィンドウ分割時に画面外へ出る文章を折り返す (setq truncate-partial-width-windows nil)
ここまでがもろもろの設定。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;; コマンド群 ;;;;;;;;;;;; ;;選択範囲をインデントする (global-set-key "\C-x\C-i" 'indent-region) ;;リターンと改行でインデント (global-set-key "\C-m" 'newline-and-indent) ;;改行 (global-set-key "\C-j" 'newline) ;;範囲指定コメント (global-set-key "\C-c\C-c" 'comment-region) ;;上記解除 (global-set-key "\C-c\C-u" 'uncomment-region)
使いやすくするためのコマンド群.
;;linum 設定 (require 'linum) (global-linum-mode t) ;(setq linum-format "%d5") ;F5キーにON/OFFの切り替えを割り当てる (global-set-key [f5] 'linum-mode) ;; Elscreen ;; ;;tab (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 0~9 : タブの切り替え(番号) ;; C-z n : 次のタブ ;; C-z p : 前のタブ ;; C-z a : 直前のウィンドウ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; tab 一覧表示 ;; ;; (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)) ;; 'mcomplete 他 ;; ミニバッファで M-x時のインクリメンタル補完 (require 'mcomplete) ;; よく使うヒストリを優先させる (load "mcomplete-history") (turn-on-mcomplete-mode) ;; cycle-mini (require 'cycle-mini) (define-key minibuffer-local-map [up] 'previous-history-element) (define-key minibuffer-local-completion-map [up] 'previous-history-element) (define-key minibuffer-local-must-match-map [up] 'previous-history-element) (define-key minibuffer-local-ns-map [up] 'previous-history-element) (define-key minibuffer-local-ns-map [down] 'next-history-element) (define-key minibuffer-local-map [down] 'next-history-element) (define-key minibuffer-local-completion-map [down] 'next-history-element) (define-key minibuffer-local-must-match-map [down] 'next-history-element)
行数を表示するlinum, tab化するElscreen, 補完機能強化のmcomplete, cycle-miniの設定ファイル. いずれも
~/emacs/site-lisp/配下に
- linum.el
- elscreen.el
- mcomplete.el
- mcomplete-history.el
- cycle-mini.el
を置きます。
例によってこれで素人がCarbon Emacsを使える設定となりました。
linumがページを動かすたびに行数表示のため更新されるので少し動作がもっさりするのが不満。
ずぶの素人がなぜemacsかというと、学校でemacsしか使ったことがなく、vimよりも慣れているということです。
ぱっと書く程度のエディタならvimの方が便利そうなので、普通の使い方くらいは覚えます。
それも備忘録としてまた今度。
2010年11月3日水曜日
Terminalの設定
そろそろ会社のmacが到着してしまうので, 備忘録としてせめて家のターミナルの設定を書き出しておきます.
とりあえず取り急ぎexportしたPATHと使っているaliasの設定を。
Terminal.appの設定は以下の通り。
あとはTerminal_colorを入れました。
全体的に素人が色々とこれから始めるための環境は整ったのではないかと。
これから必要に応じて追加していくかんじで。
aliasの設定法
#terminal color export CLICOLOR=1 export LSCOLORS=Exfxcxdxbxegedabagacad # ## # Your previous /Users/tatsuaki/.bash_profile file was backed up as /Users/tatsuaki/.bash_profile.macports-saved_2010-09-20_at_22:04:26 ## # # MacPorts Installer addition on 2010-09-20_at_22:04:26: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. # # # #Hadoop Path export HADOOP_INSTALL=/Users/tatsuaki/workspace/hadoop-0.21.0 export PATH=$PATH:$HADOOP_INSTALL/bin # # # Carbon Emacs = cemacs alias cemacs='open -a Emacs' # #alias# alias ls="ls -al" # # application alias # alias firefox="open -a Firefox" alias prev="open -a Preview" alias itunes="open -a iTunes" alias texs="open -a TexShop"
とりあえず取り急ぎexportしたPATHと使っているaliasの設定を。
Terminal.appの設定は以下の通り。
テキスト: Monaco 14pt テキストをアンチエイリアス処理 ANSIカラーを表示 詳細: 非ASIⅡ文字をエスケープ 文字エンコーディング=Unicode (UTF-8) ウィンドウ: Proをデフォルトに. 透明度は75%を指定
あとはTerminal_colorを入れました。
全体的に素人が色々とこれから始めるための環境は整ったのではないかと。
これから必要に応じて追加していくかんじで。
aliasの設定法
alias COMMAND=" command_1"でCOMMAND_1の内容をCOMMANDで実行できるようになる。
2010年10月23日土曜日
新Mac Book Air
とりあえずblog充実のための閑話休題.
新Mac Book Airが出たらしいですね.
新Mac Book Air HP:
http://www.apple.com/jp/macbookair/
色々見た感じの変化の大きな特徴は
くらいだろうか. 興味があるので以下のスペックで早速購入へ向けて動くことに. (そっちは仕事用)
11inchも興味があったが, さすがにPCとしては小さいかなと.
やっぱある程度大きい方が好きなので.
ま, でも購入はまだ先かな...またレビューします.
エセマッカーへ向け驀進中
新Mac Book Airが出たらしいですね.
新Mac Book Air HP:
http://www.apple.com/jp/macbookair/
色々見た感じの変化の大きな特徴は
・フラッシュストレージ ・iLife' 11がプリインストール ・なんだか斜めに持てる (?) ・USB端子の蓋がなくなった ・安い ・ディスプレイもユニボディ, アルミ削りだし
くらいだろうか. 興味があるので以下のスペックで早速購入へ向けて動くことに. (そっちは仕事用)
Mac Book Air 13inch 2.13GHz Intel Core 2 Duo 4GB 1066MHz DDR3 SDRAM 256GBのフラッシュストレージ
11inchも興味があったが, さすがにPCとしては小さいかなと.
やっぱある程度大きい方が好きなので.
ま, でも購入はまだ先かな...またレビューします.
エセマッカーへ向け驀進中
Mac Book Pro 導入時にインストールしたソフト
今年6月くらいに慣れ親しんだwindowsを離れ, Mac Book Proを購入しました.
スペックは下記の通り.
最初にインストールしたソフトを色々列挙:
WEB, COMMUNICATION
・Firefox
http://mozilla.jp/firefox/
Webブラウザ. 一番慣れているので
・Google Chrome
http://www.google.com/chrome?hl=ja
複数Gmailアカウント持ってるのでそれに合わせてもう一個ブラウザを. あまりカスタマイズしてない.
・Skype
http://www.skype.com/intl/ja/home/
電話用
・Microsoft Messenger
メッセ用. 同時購入のMacOffice 2008からインストール
Music
・VLC player
http://www.videolan.org/vlc/
とりあえず一通り再生可能. 昔とったライブの映像なんかはこれで再生
・Flip 4 Mac WMV
http://www.microsoft.com/mac/products/flip4mac.mspx
windows の再生ファイルを再生できるようになる. たまにバグるらしいがまぁ気休め程度に
・Perican
http://perian.org/
強力なコーデック.
・Quick Time 7
耳コピ環境が乏しすぎるので, とりあえず音速下げられるプレイヤとして.
付属DVDからインストール.
・MuseScore
http://musescore.org/ja
Midi音源を譜面に, 譜面をMidiにしてくれる. 使う必要があったのでいれてみた.
けっこう綺麗で, finale macがなくなったらしい今はこれが一番便利かな?
・Transcribe!
耳コピ特化ソフト. おそらくこれはすごいんだろうけどフリーはトライアルだったので
恐ろしくて使っていない...
DVD
・MacTheRipper
http://www.macupdate.com/info.php/id/14414/mactheripper
リッピングソフト. もちろん自分のDVDバックアップ用.
・HandBrake
http://handbrake.fr/
上記リッピングした内容を焼いたりmp4化できる. ?ていうかまだ使ってない...
Development
・Tex環境
一度失敗してしまって再度入れる羽目になった. しかしどうやったか覚えていない.
簡単ダウンロードツール(?)を使った気がする. CUIから作業するのが嫌いなので,
TexShop.app を丸ごとspaces一画面に割り当てることで, 論文作成作業はそちらで
全て別でやることにしている.
・CarbonEmacs
http://homepage.mac.com/zenitani/emacs-j.html
vimはあんまり使ったこと無くてEmacsに慣れてる. しかしこんなエディタがあるとは...
勉強しがいがあります. 今後設定, 学びなども書いていきます.
・Xcode
DVDからインストール. これはとりあえず重要.
・MacPorts
http://www.macports.org/
UNIX環境を構築するためのportをインストール. 色々いれたけどまたそれは今度.
FONT
・M+2VM+IPAG circle
http://mix-mplus-ipa.sourceforge.jp/
入れてみた. 縦に長い気がするので, 今は結局monacoにしてる. でもまた変えるかも.
Other
・AlbumArt
iTunesとくっついて動作し, アートワークをamazonなどから取ってきて複数候補を
示し, ワンクリックで追加することができる. iTunesのアートワークがスカスカだったので, 保管するためにいれた. なぜか結局駄目だったのでamazonを一回ずつ開きながら入れることに...
・StuffitExpander
http://www.stuffit.com/mac-expander.html
とりあえず解凍やら圧縮をGUIでD&Dでやるために. 便利.
・MicrosoftOffice
word, excel, powerpoint, entourage(なにこれ?) をOffice for Macから.
同時購入しておいて良かった.
てな具合です. 必要になったら追加していくかんじなのでまだあまり多くないですね.
Terminal, Emacsの設定や, portsでインストールしたものも今度書いておくことにします.
スペックは下記の通り.
Mac Book Pro 15inch 2.4GHz Intel Core i5 4GB 1066MHz DDR3 SDRAM - 2x2GB 320GB Serial ATA Drive @ 5400 rpm
最初にインストールしたソフトを色々列挙:
WEB, COMMUNICATION
・Firefox
http://mozilla.jp/firefox/
Webブラウザ. 一番慣れているので
・Google Chrome
http://www.google.com/chrome?hl=ja
複数Gmailアカウント持ってるのでそれに合わせてもう一個ブラウザを. あまりカスタマイズしてない.
・Skype
http://www.skype.com/intl/ja/home/
電話用
・Microsoft Messenger
メッセ用. 同時購入のMacOffice 2008からインストール
Music
・VLC player
http://www.videolan.org/vlc/
とりあえず一通り再生可能. 昔とったライブの映像なんかはこれで再生
・Flip 4 Mac WMV
http://www.microsoft.com/mac/products/flip4mac.mspx
windows の再生ファイルを再生できるようになる. たまにバグるらしいがまぁ気休め程度に
・Perican
http://perian.org/
強力なコーデック.
・Quick Time 7
耳コピ環境が乏しすぎるので, とりあえず音速下げられるプレイヤとして.
付属DVDからインストール.
・MuseScore
http://musescore.org/ja
Midi音源を譜面に, 譜面をMidiにしてくれる. 使う必要があったのでいれてみた.
けっこう綺麗で, finale macがなくなったらしい今はこれが一番便利かな?
・Transcribe!
耳コピ特化ソフト. おそらくこれはすごいんだろうけどフリーはトライアルだったので
恐ろしくて使っていない...
DVD
・MacTheRipper
http://www.macupdate.com/info.php/id/14414/mactheripper
リッピングソフト. もちろん自分のDVDバックアップ用.
・HandBrake
http://handbrake.fr/
上記リッピングした内容を焼いたりmp4化できる. ?ていうかまだ使ってない...
Development
・Tex環境
一度失敗してしまって再度入れる羽目になった. しかしどうやったか覚えていない.
簡単ダウンロードツール(?)を使った気がする. CUIから作業するのが嫌いなので,
TexShop.app を丸ごとspaces一画面に割り当てることで, 論文作成作業はそちらで
全て別でやることにしている.
・CarbonEmacs
http://homepage.mac.com/zenitani/emacs-j.html
vimはあんまり使ったこと無くてEmacsに慣れてる. しかしこんなエディタがあるとは...
勉強しがいがあります. 今後設定, 学びなども書いていきます.
・Xcode
DVDからインストール. これはとりあえず重要.
・MacPorts
http://www.macports.org/
UNIX環境を構築するためのportをインストール. 色々いれたけどまたそれは今度.
FONT
・M+2VM+IPAG circle
http://mix-mplus-ipa.sourceforge.jp/
入れてみた. 縦に長い気がするので, 今は結局monacoにしてる. でもまた変えるかも.
Other
・AlbumArt
iTunesとくっついて動作し, アートワークをamazonなどから取ってきて複数候補を
示し, ワンクリックで追加することができる. iTunesのアートワークがスカスカだったので, 保管するためにいれた. なぜか結局駄目だったのでamazonを一回ずつ開きながら入れることに...
・StuffitExpander
http://www.stuffit.com/mac-expander.html
とりあえず解凍やら圧縮をGUIでD&Dでやるために. 便利.
・MicrosoftOffice
word, excel, powerpoint, entourage(なにこれ?) をOffice for Macから.
同時購入しておいて良かった.
てな具合です. 必要になったら追加していくかんじなのでまだあまり多くないですね.
Terminal, Emacsの設定や, portsでインストールしたものも今度書いておくことにします.
2010年10月22日金曜日
登録:
投稿 (Atom)