開発環境勉強会資料 (シェル環境、Xdebug、WinSCP etc)

No Photo

先週の金曜日に社内勉強会を行いましたのでその資料を公開します。開発環境というのは同じ職場で働いていても一人一人で異なっていくのが常です。最近はWEB+DB PRESS vol.40の特集の影響もあったのか、毎日使うツールの設定などをウェブログで見たらすぐに試すようになりました。(そして自分しか操作できないコンソールへ…)(最近はGNU Screenとかに設定項目を追加しています)

資料は社内Wikiに書きなぐっただけの手抜きのものですので、ほぼそのままの状態で転載いたします。参考になれば幸いです。

シェル環境:mysqlクライアント

~/.my.cnfをこんな風にすると、mysqlインタラクティブシェルの情報が豊かになります。

また、ページャを設定すると、結果セットをカーソルキーで動かして見ることができます。(これはあんまり重宝してないです)
[mysql]
prompt=(\u@\h)[\d]>\_
pager=jless -N -S
すると、
(root@localhost)[(none)]> use c-brains
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
(root@localhost)[c-brains]>

シェル環境:zsh

補完がすごい!
  • apt-get install php5<tab> →パッケージ名が補完されるよ
  • chown <tab> →ユーザー名とグループ名が補完されるよ
  • svn <tab> →サブコマンドが補完されるよ
  • cd -<tab> ディレクトリ移動履歴がスタックで表示されるので、数字を打ち込めば過去の場所にいどうできるよ
  • 他にもサブコマンド系はだいたい補完できる
  • コマンド履歴インクリメンタル検索がすごい
  • Ctrl+R <文字列> 前方一致じゃなくてもいいよ

~/.zshrc 設定の例

autoload -U compinit
compinit
setopt auto_pushd
setopt correct
## 補完候補のカーソル選択を有効に
zstyle ':completion:*:default' menu select=1

## 補完候補の色づけ
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}


alias ls='ls --color=auto'

#allow tab completion in the middle of a word
setopt COMPLETE_IN_WORD

#japanese setting (ktanaka)
LANG="ja_JP.euc-jp"
export LANG

#http://journal.mycom.co.jp/column/zsh/003/index.html
HISTFILE=~/.zsh-history
HISTSIZE=100000
SAVEHIST=100000
setopt hist_ignore_dups     # ignore duplication command history list
setopt share_history        # share command history data

#履歴検索機能のショートカット設定
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end
bindkey "^R" history-incremental-search-backward
bindkey "^S" history-incremental-search-forward

シェルを変えたくなったら

% cat /etc/shells #シェルの一覧
% chsh -s /bin/zsh

そして再ログインするとzshがログインシェルになります。

GNU Screen - 仮想端末を制覇するよ

vimでhttpd.confをいじりながら、apacheをリスタートとかできます。

まずは、エスケープキャラクタを選ぶ(エディタなどとバッティングしないように選ぶ)

~/.screenrc

## エスケープキーの設定
escape ^Tt

エスケープキーをtにしました。

起動

% screen

新しい仮想端末

Ctrl+T c

もちろん、エディタで編集中にもシェルが開く

仮想端末をとじたり、screenを終了する

exitコマンド、Ctrl+d

端末間の移動

Ctrl+T n(Ctrl+T p),Ctrl+T 端末番号

直前の端末と切り替える

Ctrl+T Ctrl+T

現在の~/.screenrc

## エスケープキーの設定
escape ^Tt

## ビジュアルベルを無効
vbell off

## ステータス行の設定
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"

## スタートアップ時メッセージ無効
startup_message off

## 自動でデタッチする
autodetach on

## スクロール行を 10,240行
defscrollback 10240

## ^T U で UTF-8 / ^T E で EUC-JP を切り替え
bind U eval "encoding utf-8" "!!!echo 'export LANG=ja_JP.UTF-8'"
bind E eval "encoding euc" "!!!echo 'export LANG=ja_JP.EUC-JP'"

Xdebug

Yahoo! Japanでも使われている極まったデバッグツール

PHPのエラーメッセージはブラウザ出力を考慮してあるためかえらい不親切だと思います。Xdebugは関数呼び出しのスタックトレースを表示してくれる

ためしにエラーを発生させてみよう

インストール&設定

% sudo pecl install xdebug

php.iniの設定

extension_dirをコメントアウトしないと動かなかった??とりあえず以下のように設定しています。

; extension_dir = "./"

;...........中略.....................

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; for Xdebug
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
extension="xdebug.so"
xdebug.manual_url = "http://jp2.php.net"
xdebug.collect_params = On
xdebug.collect_return = On
xdebug.dump.GET=*
xdebug.dump.POST=*

Firefoxカスタマイズ

  • AutoPagerize --自動次ページロード グリースモンキースクリプト
    • 各種検索エンジン、twitter,tumblr,はてなダイアリー
    • Googleは1ページ10件しか表示しない設定にするとすごく軽い
  • グリースモンキースクリプト作った
    • 本番環境でラベル表示
    • var_dumpを必ず左寄せ
  • Firebug
    • シェル実行できる
    • デバッグ用関数など
    • コマンド行で「debugger」って実行すると…SUGEEE(ry
    • WEB+DB PRESS vol.39のamachangの連載
  • WinMerge
    • コミットの前に、コードを削れないか確認しよう。
    • Eclipseも差分表示ツールあるよ
    • TortoiseSVNとの連携
      • TortoiseSVNの設定→diff viewerで「C:\Program Files\WinMerge\WinMergeU.exe -e -x -ub -dl %bname -dr %yname %base %mine」

WinSCP3

  • SFTP/SCPクライアント
  • ディレクトリ同時移動
  • サーバのファイルを直接編集
  • subversion管理フォルダをアップロードしない設定(除外マスク: */.svn/*;*/.svn/)
  • そのセッションでputtyも開く

普段vimを使わない人のための.vimrc

役に立つ設定を絞り込んでみました。

"タブ設定
set expandtab tabstop=4 shiftwidth=4 softtabstop=4
"puttyで範囲選択、カーソル移動にマウスがつかえる。ホイールも!(WindowsでのコピペがしたいときはShiftを押しながらで。)
set mouse=a
set ttymouse=xterm2
"行番号表示
set number
"シンタックスハイライト
syntax on
"色テーマ
colorscheme torte

.htaccessでもphp.iniでも色表示できる

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ