2006 09 09
■ Developer Enviroments Conference の発表資料
9/8 に開かれた DEcon で windows enviroments and vim という内容で発表してきました。主に自分が使ってる windows の開発に便利なツールと、vim についてプレゼンしてきました。時間大幅に押してしまいましてスイマセン…。
また、スピーカと参加者のみなさん、お疲れ様でした。他の方の開発環境やポリシーが聴けて大変参考になりました。あとカンジマン(id:tnx)には毎度の事ながら様々な準備お疲れ様でした。
自分のプレゼンには自作のはてな記法つかったプレゼンツールを使ったのですが、よくよく考えるとそれをエントリーに貼り付ければいいじゃん!ということに気づいたので、以下に発表資料を貼り付けておきます。
windows environments and vim
発表内容
自己紹介
開発環境
windows environments
というわけで、利用している便利なソフトウェアの紹介
fub
fuckin uni$ys browser
http://www.geocities.co.jp/SiliconValley-Bay/6049/
- IE コンポーネントブラウザ
- migemo
- 軽快な本文検索
- ブックマークレット起動
- グループタブと横タブ機能
- 200タブぐらい開いても無理なく管理できる
- JavaScript の DebugConsole も(開発版だと)アルヨ
- 作者さんのポリシーに合ってる
窓使いの憂鬱 (mayu)
bluewind
http://cspace.s2.xrea.com/software/bluewind/
Avesta
http://lamoo.s53.xrea.com/app/
パスをコピー
http://www.vector.co.jp/soft/win95/util/se065538.html
Eijiro
英和・和英のインクリメンタルサーチ可能な辞書
- 安価(2000円代)
- 出版社/メーカー: アルク
- 発売日: 2005/03/04
- メディア: CD-ROM
- クリック: 7回
- この商品を含むブログ (10件) を見る
- 変数考えるときに…
シフトムーブ
http://www.forest.impress.co.jp/article/2005/05/18/shiftmove.html
kbdacc
http://www.jsdlab.co.jp/~kamei/
migemize explorer
でも今見たらサイトが消えてる!ライセンスが明記されてないため再配布できないみたい。
putty
- 安定してる
- 多岐な設定
- Pageant (keychain)
- WinSCP や TortoiseSVN で
- ctrl + tab で putty window だけ切り替え
- ini ファイルで設定持ち運びも簡単
フォントの話
ちょっと寄り道
アンチエイリアスは小さいフォントで可視性が下がるので、プログラミングには向かない
Alt-Tab Replacement
Microsoft PowerToys for Windows XP
alt+tab 拡張
htmlhelp
- windows ユーザは使うべき!!
- 無いと Ruby や JavaScript, PHP 書けないよ(マジ
- インクリメンタルなインデックスサーチ
- IE コンポネントでわりと軽快
- 自分で自動生成するのわりと簡単
Linux な環境
coLinux
うれしいところ
cofs0:/ /mnt/win_c cofs user,noexec,dmask=0777,fmask=0666 0 0
zsh
- PROMPT="%{^32m%}[$WINDOW]%{^m%}\$ "
- RPROMPT='%{^34m%}[%5~]%{^00m%}'
[1]$ [~/.zsh]
- dabbrev による screen の buffer 補完
- 端末に表示されてる文字列を補完
- C-x C-o C-o
- screen の hardcopy を取得して利用
- http://d.hatena.ne.jp/secondlife/20060108/1136650653
screen
- ステータスライン
hardstatus alwayslastline "%H %`%-w%{=b bw}%n %t%{-}%+w"
autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | silent! exe '!echo -n "^[k%^[\\"' | endif
dotfiles の svn 管理
- linux環境の同一化
- .zsh* や .vim* などなどの subversion での管理
[2]$ ls ~/svn/dotfiles ctags irb screen ssh subversion symlink.rb vim zsh [2]$ ls -a ~/svn/dotfiles/vim . .. .gvimrc .svn .vim .vimrc
- symlink.rb で適当に管理
#!/usr/bin/env ruby
d = Dir.glob('*/.*').reject{|n| n =~ %r!/((\.svn)|(\.{1,2}))$! }
d.each do |f|
file = Dir.pwd + '/' + f
`ln -s #{file} ~/`
end
vim
ホントにそんなに使ってるの?
250 名にアンケートとってみた
http://q.hatena.ne.jp/1157680174
| その他 | 102 |
| 秀丸 | 40 |
| emacs(含むmeadow) | 27 |
| vim | 15 |
| Em Editor | 12 |
| メモ帳 | 12 |
| eclipse | 10 |
| visual studio | 9 |
| サクラエディタ | 8 |
| xyzzy | 8 |
| vim 以外の vi clone | 4 |
| 萌ディタ | 3 |
アンケート結果考察
Emacs派 と vim(vi)派の確執
モードがあるか無いかが一番の違い
vim の好きなところ
vim のモード
主に四つ
- normal
- insert
- visual
- cmdline
基本的にはモードがあると意味不明になってユーザビリティ的によろしくない
- どうやって保存するんだ!終了するんだ!
- 慣れると便利
パズル的な操作
- ここの部分を選択するには一番どうすれば早い?
- あの文字に飛ぶにはどうすれば?
詰めvi
詰めvim
// i を ix に変更 for(int i=0; i<100; ++i) sum += value[ix];
j:s/i/ix/gc^Mna
詰めvim
何通りも解き方がある
vim での移動
主に /,?,*,# を使った移動
- / や ? で前方、後方検索
- 移動に使いまくります
- *, # でカーソル下の単語を順に移動
- 使いまくります
- 移動した後に s//foo/g でその単語置換も
- vi 例で良く紹介されている 5w とかは使わない
- 使うとしても wwwww
- ものぐさ
- fX,FX で前方、後方のマッチするXへ移動
- 自分は使ってない
- /X, ?X での移動がメイン
/ ? の検索
- incsearch 派
- noincsearch 派
- hlsearch 派
- nohlsearch 派
自分は
- noincsearch 派
- nohlsearch 派
なんで vim じゃインクリメンタルサーチしないの?
- ほいほい移動されると疲れるし
- たぶん好みの問題
vim って一つしかファイル開けないの?
間違いです
でも使いにくいのでプログラミングには minibufexp が個人的には必須
スキームを開く
デフォルトでこんなことも
- vi http://www.hatnea.ne.jp/
- vi scp://username@example.com/
- vi ftp://...
ctrl+a, ctrl+x
数値のアップダウン
- ちょっとの調整が楽
- true/false などもプラギン使えば可能
ctags
tag を使うと…
マクロ
- q で操作記録できる
- qz で記録すると例えば
:register z --- レジスタ --- "z /mini^MndwuGgg
で見れる
マクロをキー割り当て
キーボード操作を書くだけでキー割り当てができる
nmap si=j:s/i/ix/gc^Mna
すべてキー割り当てが可能
map " すべて nmap " normal vmap " visual
などなど。よく使うのは割り当てよう。
nmap <silent> eu :set fenc=utf-8<CR>
hook
" cofs's fsync autocmd BufNewFile,BufRead /mnt/c/* set nofsync
vim のさわりなのに多すぎた!
shibuya.vim 開きたい!(半分じょうだん
最後に二つ
help の使い方
:help でひけるhelp超便利
:h autocmd " 組み込み関数とか :h v_at " visual で at のヘルプ :h gv " normal で gv のヘルプ
操作方法はtagと一緒
vim の各種コマンドは意味がある
などなど
vim7 の新機能
とくにコレ便利!というのを紹介!
earlier, later
指定時間前の状態に戻る
:earlier 3m " 三分前の状態に
tab
- みんな大好きタブがついたよ!
- 使ってません
- buffer と window の保存
- buffer だけで自分は十分
キーワード補完のすごい表示
- cui で ncurses ってがりがり描画
- かなり便利
- 重い
vimscript の拡張
より python ぽく
- dict 型(hash)
- list 型
の導入
omnifunc
インテリジェンスな補完
<script t補完
<script t
type=" *ContentType
charset=" LangCode
などなど、場合に応じた補完と候補の説明などが表示される
text-objects
何が便利なの?
def method(foo, bar, baz)
- di(
- delete inner (
を押すと
def method()
となる
何が便利なの?
コード続く… def method() # ... end
のdef〜end のどこでもいいので
- vip
- visual inner paragraph
def〜endを範囲選択
- 似るなり焼くなりお好きなように
何が便利なの?
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
- vatd
- visual a tag delete
でタグを選択して削除
text-objects まとめ
text-objects を理解しておけば、思い通りの文字列選択が可能
:h text-objects
慣れたら自分で text-objects みたいな物をつくっちゃおう
nmap vac $?\%(.*#.*class\)\@!class<CR>%V%0oj nmap vic $?\%(.*#.*class\)\@!class<CR>%V%0o
vac で class〜end が選択される text-objects
まとめ
みなさんの開発の手助けになれば幸いです
- http://d.hatena.ne.jp/kanbayashi/20060911
- http://d.hatena.ne.jp/osho_the_big/20060911
- DECON に影響されて開発環境改善
- http://d.hatena.ne.jp/rsyudou/20060916
- http://d.hatena.ne.jp/ysano2005/20061118
- Clips
- [linux]$HOME以下の.ファイルをsubversionで管理したい!
- http://d.hatena.ne.jp/n246/20070117
- 【再販権付き・特典40本付き】 Web Colour Wizard
- bookmark
- dotfiles を svn 管理する
- http://d.hatena.ne.jp/niraikanaibird/20070313
- http://d.hatena.ne.jp/akkt/20070414
- http://d.hatena.ne.jp/ispopopo/20070426
- http://d.hatena.ne.jp/xcezx/20070913
- Lism.in * blog - Shift+ドラッグとかでウィンドウ移動できる「シフ...
- (’q’) log - インターネット環境にない複数PCのWindowsとcoLinux...
- 365日誓約マラソン - vimまとめ
- Drone Memo - Vim関連リンク
- 美容整形でキレイに

