2010 年 8 月 31 日 | カテゴリー: Viva!!emacs!!, 未分類

随分久しぶりの更新になってしまいましたが…(^^;

Emacs特集が載っているのを目にして初めてWEB+DB PRESSを購入してみましたが、この雑誌イイですね!!Emacs特集はもちろんながら、全体的に興味のある記事が非常に多くて気に入りました。もっと早くから購入しておくべきだったな〜、などと反省しつつ定期購読を検討中。

さて、Emacsは家でコードを書く際に使うようにしているのですが、最近めっきりプライベートでコードを書いておらず、いつの間にやら使い方をどんどん忘れていく始末。特集を読むとやはり1%も使いこなせていない事が身に沁みました。

そんな折、職場のWindowsでコードを書くのにいいエディタは無いかとずっと探していたのですが、シックリ来るエディタがなかなか見つからず、思い切ってEmacsを導入。WEB+DB PRESSの特集のお陰で忘却の彼方にあったキーバインドも頭に入れる事が出来たので、これからは公私ともにEmacsでバリバリコードを書いていきます。

で、あまりにも豊富なEmacsのキーバインド、全て覚えるのは至難の技なので、カンニング的に少しずつ書き留めていきたいと思います。

本来ならば、「バッファ」や「リージョン」といった専門用語を使った方がカッコいい感じがしますが、そこはそれ。自分のスキルに応じてという事で。

Emacsのキーバインド(基礎の基礎)
C-x C-f新規作成/ファイルを開く
C-x C-cEmacsを終了
C-x C-sファイル保存
C-x C-w別名保存
C-x h全選択
C-x kファイルを閉じる
C-n次の行に移動
C-p前の行に移動
C-fカーソルを1つ右に移動
C-bカーソルを1つ左に移動
C-v1ページ分下に移動
M-v1ページ分上に移動
M-<ファイルの先頭に移動
M->ファイルの末尾に移動
C-s前方検索
C-r後方検索
C-w選択範囲を切り取り
M-w選択範囲をコピー

職場ではSVNでソース管理をしているのですが、コッソリgitを導入してgit越しにSVNをゴニョゴニョ…なんて不届きな事も考えているので、その辺もEmacsと連携させられるように学習したいですね!!

今日はここまで。

2010 年 7 月 27 日 | カテゴリー: LAMP奮闘記, Linux, 当たって砕けろFedora

久しぶりに「これはスゴイ!!」というソフトウェアを見つけたのでご紹介。

Linuxマスターになるには避けて通れない「ソースコードからのビルド」。作業自体は非常に楽しくて好きなのですが、問題は「インストール後の管理」ですよね。大抵のソフトウェアは、make uninstallでモキュッとアンインストール出来ると思い込んでいたのですが、実際はその逆で、make uninstall出来ないものがほとんどだそうです。

そうなると管理が大変なので、ソースからビルドはしたくとも、ついつい.rpmや.debのパッケージを探してしまうという体たらく(^^;

そこで役立つのがこの「Paco」。何とmake installなどで生成されたファイルをログ管理してくれるうえに、アンインストールまでコマンド一発で出来てしまうとの事!!

“make install”したソフトウェアを管理できる超便利ツール「Paco」

「Paco」の便利な機能や使い方は上記でとても丁寧に解説されていますので、早速Fedoraにインストールしてみました。もちろん、うまくゆけばサーバのCentOSにインストールするつもりです^^

まずは、SourceForgeからPacoの最新版(2.0.9)を取ってきます。後は./configure, make, make installでOKですが、Fedoraにインストールするには以下のパッケージを追加する必要がありました。

  • gtkmm24,gtkmm24-devel(GUIを利用しないなら不要)
  • gcc-c++(面倒だったのでgcc*でアレコレ一気にいってみました)

上記URLのコメント欄にも書かれていますが、「GUIなんて無用だぜ!!」という人は、./configureのオプションに「–disable-gpaco」を付けましょう。

後は、展開したPacoのディレクトリ内で

;; su - でrootになってから
# make logme

で、Paco自身も管理下に入るようです。sudoだとエラーになってしまったので、su -でrootになるとうまく行きました。PATHの問題でしょうかね??

さて、無事にインストールが終わったら試さずにはいられませんので、PHPの5.2.14のソースを下記の手順でビルドしてみました。

$ ./configure --prefix=/opt
$ make
# paco -D make install

これで、Paco経由で管理状況を見てみると…

;; man pacoが結構分かりやすいです
# paco -1a
paco-2.0.9
php-5.2.14

;; make installで生成されたファイル群
# paco -f php-5.2.14
php-5.2.14:
/opt/bin/pear
/opt/bin/peardev
/opt/bin/pecl
/opt/bin/php
/opt/bin/php-cgi
/opt/bin/php-config
〜 中略 〜
/opt/man/man1/php-config.1
/opt/man/man1/php.1
/opt/man/man1/phpize.1

これで、アンインストールしたい時にはどのファイルを削除すれば良いか一目瞭然ですね^^

しかし、そんなまどろっこしい事をしなくても、

;; 削除確認があるのもありがたいですね
# paco -r php-5.2.14
Remove package php-5.2.14 (y/N) ?

で関連ファイルを全て削除してくれます。

オープンソースの世界はまだまだ広い事を思い知らされる大発見でした。次はサーバに早速設置したいと思います。

今日はここまで。

2010 年 7 月 20 日 | カテゴリー: LAMP奮闘記, Linux, Ubuntuで行こう!!

先日ちょっとした手違いで、PC稼働中に自宅のブレーカーを落としてしまい、それ以来デスクトップのUbuntuでGNOMEパネルがうまく表示されなくなってしまいました。

具体的には、時刻や天気の表示がされなくなり、パネル上のアイコンの移動も変な位置から動かせない、という状況に陥りました。

で、GNOMEだしGUIで設定があるだろう、とメニューを片っ端から見てもそれらしきものを発見出来ず困っていましたが、Google先生で検索したらアッサリ解決。

;; バックアップを取ってから!!
rm -rf $HOME/.gconf

これをやると他の諸々の設定も初期化されてしまいますが、そんなにヘビーカスタマイズしているわけでもないのでチョコッとイジって元通り^^

誤ってブレーカー落とすのは論外ですが、これからの時期、皆様熱暴走には気を付けましょう!!

ブレーカー落ちてサーバマシンのメモリが1枚死んだのですが、それはまた別のお話…。

今日はここまで。

2010 年 7 月 20 日 | カテゴリー: LAMP奮闘記, Linux

先日久しぶりにシェルスクリプトを書いたら、文法やら特殊変数やらが頭の中からrm -fされていたようで、結果30行程度のスクリプトを完成させるのに小一時間かかってしまいました…(^^;

という事で、次回のために覚え書き。

シェルスクリプトも、他のスクリプト言語と同じく関数を定義する事が出来るのですが、引数の取扱いがちょっと特殊です。

#!/bin/bash

func_ name() {
  # 色んな処理
}

上記の「func_name」が関数名となるので、パッと見PHPやC言語の関数定義とほぼ同じですね。なので、引数を扱いたい時はついつい()の中に書きたくなりますが、それでは動きません。

シェルスクリプトの関数定義で引数を扱う時は、()内には何も書かず、特殊変数「$[数字]」を使います。さらに、関数呼び出し時にも()は使わずに、普通にコマンドで引数を渡すのと同じ要領で引数を指定します。こんな感じ。

#!/bin/bash

make_file() {
  cd $1
  touch $2
}

make_file '/tmp/' 'test.txt'

慣れればどうという事は無いのでしょうが、絶対また忘れる自信があるので、メモしておきます。ちなみに、シェルスクリプトはPHPとは違って純粋な逐次実行型(??)のようなので、ソース上で関数定義が先に無いと実行時にエラーで怒られてしまいます。

今日はここまで。

2010 年 6 月 23 日 | カテゴリー: LAMP奮闘記, Linux, Viva!!emacs!!

WordPress3.0にアップグレードしたついでのエントリ。

(勝手に決めた)ライバル・pazサンがどんどん立派なVimmerになっていくのを見ていて、負けてはならじとgedit → Emacsへの移行を進めている最中です(職場のWindowsにも入れてみました)。

さて、Emacsでは C-x C-f の後にミニバッファにパスを入力してファイルやディレクトリを開くわけですが、デフォルトではEmacsを起動したディレクトリのパスが自動的に補完されています。これはこれでありがたいのですが、Webアプリをちまちま作っている時などは/var/wwwや/var/www/html下にあるファイルを触る事が多く、そんな時にホームディレクトリのパスが補完されていると逆に不便だったりします。

そこで、Emacsに標準で搭載されている「ブックマーク」機能を活用すれば、よく開くファイルやディレクトリにパッとアクセスする事が出来ちゃいます。覚えるべきコマンドは以下の3つ。

C-x r m
まず、C-x C-f でブックマークしたいファイルやディレクトリを開いた後、このコマンドでブックマークを作成出来ます。ブックマーク名を指定する事も出来ます(デフォルトは開いているファイル名やディレクトリ名)
C-x r b
ブックマークを指定してそこにジャンプします。ブックマークが複数ある場合は、もちろんTab補完で候補一覧が表示されます。
C-x r l
ブックマークの一覧を表示します。ここから目的のブックマークの行でenterキーを押してジャンプする事も可能です。「D」キーで削除マークを付けて、「x」で削除マークのついたものを削除する事が出来ます。

端末開いてそこまで移動してからEmacs起動する、とか、シンボリックリンク作っておく、という方法も良いでしょうが、やっぱりエディタを超えて「環境」とまで言われるEmacsの機能は存分に使いたいですよね!!(まるで使いこなせていませんが)

今日はここまで。