春なのでemacsとvimと二股かけてみました
春なのでemacsからvimに乗り換えてみました
http://fifnel.com/2009/04/07/2300/
にいんすぱいやされました。
emacsのせいなのかどうかわからないけど、小指っていうか左肩ばかりやたら凝るようになって、viへの乗り換えを検討中にこれを発見。
vimperatorでviぽい操作に慣れてきたっていうのも大きいのかもしれない。
いんすぱいやされて、さっそく試してみようと思ったら、cocoa版vimを配布してくれている
http://lapangan.net/darwinports/index.php?PrivatePortfile%2FVim72
のサーバが昨日辺りから死んでるぽいので、macvim-kaoriya(http://code.google.com/p/macvim-kaoriya/)を使ってみることにした。
ここ最近、すごい勢いでupdateが繰り返されてるので、インストールも簡単だし、長い目で見てこっちの方が期待できるのではないかと考えることにした。
早速いくつかプラグインを試してみたり、実際にファイルの編集してみたりしてみた。
とにかくなによりも surround.vim がもの凄く凄くて本当にすごくてかなり感動。
http://d.hatena.ne.jp/secondlife/20061225/1167032528
↑surround.vimについて色々
xml,htmlなんかの編集はもうこいつに任せろ。任せておけ。
こいつがとても面白くて、ひたすらhtmlを触り続けてしまった。
vimでperl触ってないからわからないけど、多分perlとかでも便利に使えると思う。
と、ここまで色々感動しながらも、なんだかんだ完全な乗り換えはもう少し先になりそうです。
macvim-kaoriya自体、もの凄い勢いで更新されてて、作者の方には本当に頭が下がる思いなのですが、まだまだイマイチな部分もいくつか。
インサートモードから抜けるときにIMEがOFFに出来ないぽく、手動でIMEをOFFにしないといけなかったり(そもそも日本語でvimを使うときの宿命なのかもしれない)、
今現在migemoがうまく動かなかったり。
そして、これは自分のせいだと思うけど、yankring.vimが機能しません。
vimだと、xやらdで削除したものが、とにかくレジスタに入ってくれてしまうようで、
コピー→貼り付け→ちょろっと修正→同じの貼り付け
とかよくあるんだけど、こんなときにどうしても過去のクリップボード履歴を参照したくなる。
これがうまく動かないのはイタイ。
このあたり、もう少し時間をかけて試してみたい。
が、いつまでも環境設定だけしまくるのもどうかと思うし、出来るならばプラグインでゴテゴテになることも避けたいので、
ひたすらカスタマイズは少しだけ我慢して、(バッファ周りのプラグインとかは特に色々と試してみたいが)、とりあえず現状のvimrc,gvimrcを載せておこうと思います。
vimrc
"---------------------------------------------------------- " 文字コードの指定 "---------------------------------------------------------- set enc=utf-8 set fenc=utf-8 set fencs=iso-2022-jp,utf-8,euc-jp,cp932 "---------------------------------------------------------- "ステータスライン "---------------------------------------------------------- set laststatus=2 " 常にステータスラインを表示 set statusline=%<%F\ %r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v\ %l/%L(%P)%m "---------------------------------------------------------- "基本設定 "---------------------------------------------------------- set autoread " 他で書き換えられたら自動で読み直す set backup set backupdir=~/Dropbox/bak set noswapfile " スワップファイル作らない set hidden " 編集中でも他のファイルを開けるようにする set backspace=indent,eol,start " バックスペースでなんでも消せるように set vb t_vb= " ビープをならさない set whichwrap=b,s,h,l,<,>,[,] " カーソルを行頭、行末で止まらないようにする set showcmd " コマンドをステータス行に表示 "---------------------------------------------------------- "表示 "---------------------------------------------------------- "タブの画面上での幅 set tabstop=2 " タブをスペースに展開(expandtab:展開する) set expandtab " 行数表示 set nu " タブや改行を表示 (list:表示) set nolist set showmatch " 括弧の対応をハイライト set showcmd " 入力中のコマンドを表示 set number " 行番号表示 "--------------------------------------------------------- " 補完・履歴 "---------------------------------------------------------- set wildmenu " コマンド補完を強化 set wildchar=<tab> " コマンド補完を開始するキー set wildmode=list:full " リスト表示,最長マッチ set history=1000 " コマンド・検索パターンの履歴数 set complete+=k " 補完に辞書ファイル追加 "------------------------------------------------------------------------------- " 検索設定 "---------------------------------------------------------- set wrapscan " 最後まで検索したら先頭へ戻る set ignorecase " 大文字小文字無視 set smartcase " 大文字ではじめたら大文字小文字無視しない set incsearch " インクリメンタルサーチ set hlsearch " 検索文字をハイライト "選択した文字列を検索 vnoremap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR> "選択した文字列を置換 vnoremap /r "xy:%s/<C-R>=escape(@x, '\\/.*$^~[]')<CR>//gc<Left><Left><Left> "--------------------------------------------------------- "その他 "---------------------------------------------------------- " 自動的にインデントする (noautoindent:インデントしない) set noautoindent " バックスペースでインデントや改行を削除できるようにする set backspace=2 " 検索時にファイルの最後まで行ったら最初に戻る (nowrapscan:戻らない) set wrapscan " テキスト挿入中の自動折り返しを日本語に対応させる set formatoptions+=mM " 日本語整形スクリプト(by. 西岡拓洋さん)用の設定 let format_allow_over_tw = 1 " ぶら下り可能幅 " コマンドをステータス行に表示 set showcmd "esc連打で検索ハイライトを消す set hlsearch nmap <Esc><Esc> :nohlsearch<CR><Esc> "------------------------------------------------------------------------------- " キーバインド関係 "------------------------------------------------------------------------------- " 行単位で移動(1行が長い場合に便利) nnoremap j gj nnoremap k gk " バッファ周り nmap <silent> <C-l> :bnext<CR> nmap <silent> <C-h> :bprevious<CR> nmap <silent> ,l :BufExplorer<CR> " 検索などで飛んだらそこを真ん中に nmap n nzz nmap N Nzz nmap * *zz nmap # #zz nmap g* g*zz nmap g# g#zz nmap G Gzz "usキーボードで使いやすく nmap ; : "無名レジスタに入るデータを、*レジスタにも入れる。 :set clipboard+=unnamed "ビジュアルモードの選択テキストをクリップボードに :set clipboard+=autoselect "------------------------------------------------------------------------------- "プラグイン "------------------------------------------------------------------------------- "YankRing動かない? :helptags ~/.vim/doc
gvimrc
"------------------------------------------------------------------------------- " デザイン colorscheme desert " カラースキーム set guifont=Monaco:h14 "font set antialias " アンチエイリアシング if has('gui_macvim') set transparency=5 " 半透明 endif set guioptions-=T " ツールバー削除 highlight CursorLine ctermbg=black guibg=gray10 " カーソル行の色 " 挿入モード・検索モードでのデフォルトのIME状態設定 if has('gui_macvim') set imdisable endif set iminsert=0 imsearch=0 "日本語入力中のカーソルの色 "highlight Cursor guifg=NONE guibg=Green highlight CursorIM guifg=NONE guibg=Red " メニューを英語に戻す "source $VIMRUNTIME/delmenu.vim "set langmenu=none "source $VIMRUNTIME/menu.vim " 様々な箇所を英語に戻す lang en_gb "---------------------------------------------------------- " ウィンドウ set sessionoptions+=resize " 行・列を設定する set lines=48 " 行数 set columns=160 " 横幅 set cmdheight=1 " コマンドラインの高さ set previewheight=5 " プレビューウィンドウの高さ set splitbelow " 横分割したら新しいウィンドウは下に set splitright " 縦分割したら新しいウィンドウは右に "---------------------------------------------------------- " タブ set showtabline=0 "タブを常に非表示 map <silent> gw :macaction selectNextWindow: map <silent> gW :macaction selectPreviousWindow: "ビジュアルモードの選択テキストをクリップボードにfor gvim :set guioptions+=a
まだまだ全然満足にはほど遠い状況ではあるけれど、ひとまずここで一区切り。
左肩だけ肩凝りっていう状況を脱するためにも、早く二股をやめて本命一人に絞りたい。
なんだけど、この記事自体をemacsで書いているというこの悲しさ。
まだまだemacsの方が使い心地がいいのは間違いない状態です。
anything.elみたいな方法でファイルを開けるプラグインがあったら、もう迷うことなくvimvim言えるんだけどなぁ。
オレオレdot fileはgithubにも上げてます。
http://github.com/goryugo/my-dot-files/tree/master
自動セルフブックマーク
LivedoorClipのfeedをPlaggerではてブにコピー
のついでに、Plaggerで自分の記事もブックマークするようにした。
LivedoorClipのfeedをPlaggerではてブにコピー(自動タグ付け機能付き
なんかふと、RSSリーダーを乗り換えたくなってGoogleReaderからLDRに変更。
既に乗り換えは何回も行っているが、LDRの一発クリップ機能はなかなか便利。
問題はLivedoorClip自体をあんまり使わないこと。
はてブが全文検索を導入して以来、ソーシャルブックマークは完全にはてブ。
しかも、つい最近ベータリリースされたはてブFirefoxアドオンがまた超絶便利。
ということで、とりあえずはLDRでクリップしておいてあとははてブで探せばいいじゃん用にPlaggerを使うことにした。
global: assets_path: ASSETS_PATH timezone: Asia/Tokyo plugins: - module: Subscription::Config config: feed: - url: http://clip.livedoor.com/rss/clips/goryugo - module: Filter::HatenaBookmarkTag - module: Aggregator::Simple - module: Filter::Rule rule: module: Deduped compare_body: 1 - module: Publish::HatenaBookmark config: username: username password: password interval: 8 post_body: 1
Plaggerプラグインとかのソースを色々調べたりして、ようやく、やっと、Plaggerで出来ることが想像できるようになってきた。
お気に入りミュージシャンのライブ情報を自動で入手したい
今年は充実した音楽人生を歩むために、月一でライブ見に行くことが目標。
とはいっても無理して興味がないものまで見に行こうとは当然思わない。
そうすると、自然と色んなライブの情報が欲しくなる訳なんだけど、一般的にあんまり知名度が高くないミュージシャンが好きだったりするので、情報が集めづらい。
ネットで情報を集めようとするんだけど、ミュージシャンのサイトを逐一チェックするなんて面倒でやってられない。
そんなときこそPlagger、とかも考えたけど、いい方法が思いつかない。(各ミュージシャンのライブ情報ページの更新取得、とかなら出来そうだけど、それらを手動で登録するってのも手間。ていうか、書いてて自分のものぐさっぷりに呆れてきた
その辺をふまえて、ちょっと前から、Googleアラートとか試してみてるんだけど、結構ノイズが多い上に、都合良くライブ情報が引っ掛かるわけでもない。(たとえば、「Galactic」ってバンドをキーワードで登録してみたら、100%ノイズ。宇宙の話ばっかりだorz
とりあえず今日色々と考えたり試したりして出た結論は「Last.fm」
iTunesで聴いた曲をLast.fmに送信すれば、お気に入りミュージシャンを登録してくれる。(自動
で、http://www.lastfm.jp/homeにある「Last.fm からのおすすめのイベント」ってのが登録したミュージシャンのライブ情報を教えてくれる。(自動
んで、このページがRSSを吐き出してくれるので、これをRSSリーダーに登録。(あとは自動で情報取得可能
イベント情報自体がLast.fmユーザーの人力入力みたいなので、たっぷりともれがありそうだけど(ユニコーンのライブとか予定がすかすかだったし、EGO-WRAPPIN'調べたらライブ情報自体見つからない。邦楽は駄目かもしんない)それでもこれが現状のベストではないかと。
ひとまずの問題は、この方法だと特定の都市のライブ情報しか表示できないこと。
これは地方都市にすんでいる人間にはかなりイタイ。
- 名古屋在住なんで、まず野外イベントみたいなものは基本的に東京or大阪まで出かける
- だけどもし間違って名古屋とかでイベントがあるのならそれは是非見に行きたい
- もし名古屋でライブあるならそらぁ近くの方がいいですよ
- なんていうか外タレは名古屋を飛ばす確率が高い
- 名古屋設定では好きなミュージシャンが来日しても気づかない可能性高し
- 東京とか大阪設定では地元の貴重なイベントが発見できない可能性高し
- ていうか来日したらちゃんと名古屋来いよ(Rage Against The Machine
- ちゃんと名古屋来てくれるミュージシャンは尊敬します(Jeff Beck
まぁこの辺りはある程度割り切って、設定を東京にして、来日が掴めたらサイト行って調べてみることにする。そして、大阪方面は諦める。
邦楽ミュージシャンはまた色々と考える。
ということで、明日EGO-WRAPPIN'のライブ行ってくる。
git branch関連コマンドまとめ
ようやくgitのブランチとかが少しわかってきた。
もの凄く手軽にブランチ作って、消してってのが出来るみたいだ。
ためしに色々とブランチ作ったりマージしたりして遊んでみた。
コンフリクトが起きたときに便利に修正できるツールが欲しい。
手動で自分の目で見ながら、一個一個直すとかかなり大変。
#まずはブランチ作成 git branch branch_name #作ったブランチに作業を移行 git checkout branch_name #修正を加えてコミットしてから git commit -a #修正を本体にマージする git checkout master git merge branch_name #いらなくなったブランチを消す git branch -d branch_name #マージしてないブランチは、無理矢理消す(-dでは消えない) git branch -D branch_name
このあたりが基本みたいだ。
branch , checkoutだけで直ぐにカレントフォルダ以下がブランチになってくれる。
便利なのは、いくつブランチを作ろうが
git checkout branch_name
をすれば、そのディレクトリの中身がすぐそのブランチの状態になってくれるところ。
http://learn.github.com/
を読んだところ、とりあえずブランチを作ってから作業、コミットを繰り返して、
一区切りついたら本体にマージする、っていうやり方の人もいるらしい。
svnに比べて、そのくらいブランチが手軽に作って、消せる。
一区切りごとのログを残して、後々見やすく、って考えたらいい方法なのかもしれない。
あとは、マージにちょっと似た機能として git rebase ってのがある。
ブランチを本流に合体させるもの。
言葉よりも絵を見るとわかりやすい。
http://learn.github.com/p/rebasing.html
これでようなく、なんとなくgitの操作に慣れてきた。
http://learn.github.com/
のundoing、その他作成中の項目が書かれたらまた読むことにする。