ぼちぼち散歩

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-)

ページの先頭へ

PythonでVim scriptの関数を定義する

Vim Advent Calendar 18日目!

こんにちは!Vim Advent Calendar 18日目担当のtsukkeeです。以前にも、vim-users.jpにて、Hack #132: Pythonインタフェースを使う(1)Hack #136: Pythonインタフェースを使う(2)を書かせていただきましたが、今回はさらに面白い?Pythonインタフェースの使い方を紹介したいと思います。

Pythonインタフェース内でVim scriptの関数を定義する

いきなりですが、vim_bridgeというものが既にあります。これに気づかず再発明してしまったのですが、自分が作ったものの方が自由に関数名を決めれるのでまぁいいことにします^^; サンプルコードは以下のとおりです。

PythonのデコレータでPythonの関数をVim scriptの関数に変換するところはvim_bridgeと同じですが、今回はデコレータの引数で関数名を指定できるようにしてみました。これによってs:fuga()のようなスクリプトローカスな関数や、例にはありませんが、hoge#fuga#piyo()のようなaudoload関数も定義可能です。

まとめ

PythonインタフェースはVimによってあったりなかったりするために、あまり広くは使われていません。また、はじめはPythonインタフェースを用いて実装していたものを、ピュアVim scriptにする人もいます。ですが、私はあえてPythonインタフェースを使うことも推奨したいです。逆にVim scriptゼロでVimプラグインを実装するというのも面白いのではないでしょうか?というわけで、18日目終わります!

スポンサーサイト

2011/12/18 00:00 | Vim | トラックバック(0) | コメント(3)

ページの先頭へ

関西Vim勉強会 #7? #8?に参加してきました

lingr.vimとその中身の簡単な紹介を発表してきた。かなりざっとして説明だったのでどれぐらいの方に分かって頂いたかわからないけど、興味を持って頂ければと。最近は、VimのPythonインタフェース用ライブラリみたいなものも微妙に作り出しているので、将来的にはvitalに仲間入りさせてもらっても良いのかも。それぐらい洗練させれたらいいな。

他の方々の発表としては、ujihisaさんによるいくつかのプラグインの紹介とvitalの紹介、Sixeightさんによるrails.vimの紹介、kozo-niさんによるVundleの紹介があった。特に、Vundleは自分も最近つかいはじめて、超適当なhgおよびsvn対応版も勝手につくっているので、参考になった。作者がいい人っぽいというのは、自分も感じていて、GitHubにはマメにコメントしてくれるし、lingrのvim-users.jp部屋にも遊びにきてくれるしで、すごい親しみやすい人だとおもう。hgとsvnサポートも本家が近いうちにやってくれそうな感じなので期待している。

というわけで、主催してくださったujihisaさんをはじめ、参加者の皆様お疲れ様でした!

2011/05/07 19:10 | Vim | トラックバック(0) | コメント(0)

ページの先頭へ

iTerm2が(当初に比べて)むちゃくちゃ速くなったのでurxvtとかいらなくなった

これまで理想の(?)ターミナル環境を求めてMacでurxvtをいろいろゴニョゴニョしてきたけど,iTerm2がr176でかなり速くなり,r191でさらに速くなって,十分実用的になった.iTerm2なら256色表示できて,普通にコピペできて,Ambiguous Widthな文字をdoubleで表示するオプションもあって, 半透明表示もできて,なんというかもうこれでいいです.

たぶん,次のalphaバージョンでこの高速化が入るけど,待ち切れない人は,Xcode入れて,svn checkoutして,make Deploymentすれば簡単にビルドできます.

2010/9/30 追記: r196で64bit化したせいかわからないけど,もうちょい速くなってた.これがr176あたりで自分が試したやつやけど,r196では同じベンチマークスクリプトが0.7?0.8秒ぐらいで走るようになってる.単純計算で当初の6倍速か.Appleなら6x fasterとか宣伝できるレベルw

2010/10/1 さらに追記: ちょっと気になったのでTerminal.appやurxvtでのベンチもついでに.やってみた.それぞれMacBook Pro 15"(MacOS X 10.6.4, 2.4 GHz Core i5, 8 GB Memory)上で150x55,フォントはMenloの13ptに設定し,/bin/bash上で以下のスクリプトをtime ./scroll_bench 100000として3回走らせた結果の平均である.さすがにTerminal.appよりかは少し遅いけどurxvtよりも速くなっている.

ターミナルreal [sec]user [sec]sys [sec]
iTerm2 r1754.4360.2090.205
iTerm2 r1761.8520.2110.202
iTerm2 r1960.8030.2100.211
Terminal.app0.6290.1920.165
urxvt 9.07 on XQuartz 2.5.32.4270.1770.142

2010/09/29 17:02 | Mac | トラックバック(0) | コメント(0)

ページの先頭へ

MacのX11でurxvtとMozcを使う設定とか

前回からもう少し環境を整えたので.それについて書いていく.前回同様,X11やらMacPortsやらの環境は整っている前提です.

urxvtのインストール

MacPortsで入れてもいいけど,新しい物好きなのでCVSの最新を持ってくる(多分MacPortsので問題なし).適当なフォルダで以下を実行.

cvs -z3 -d :pserver:anonymous@cvs.schmorp.de/schmorpforge co rxvt-unicode
cd rxvt-unicode
./autogen.sh
./configure --enable-everything --with-codesets=all --enable-256-color 
make
cd src
sudo make install
cd ../doc
sudo make install

.Xdefaultsは前回からいろいろ変更してみた.まず,フォントはInconsolataにしていて,ターミナルでC-,やC-.に割り当てたい、rxvt-unicodeで。 - hchbaw記を参考に<C-,>や<C-.>を擬似的に使えるように設定している.

あと,Command-CとCommand-VでMacのクリップボードを使ったコピペできるように設定している.これには,もともとmacosx-clipboardというPerlモジュールがurxvtに付属しているものの,日本語が文字化けすることがあったので,#17434 (rxvt-unicode 9.06 macosx-clipboard module doesn't work) – MacPortsで見つけてきたのを少し改変したものを使っている.以下の内容でmacosx-clipboard-pbocpyという名前で/usr/local/lib/urxvt/perl(MacPortsで入れた場合は/opt/local/lib/urxvt/perl)に配置すればOK.

MacUIMでMozc

最近のMacUIMではMozcを使えるので利用する..xinitrcの該当箇所を以下のように変更.

/Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim --engine=mozc &

ここで,システム環境設定.appのMacUIM→uim→全体設定→使用可能にする入力方式でMozcを有効にしておかないとMozcを使えないので注意.古いバージョンからアップデートすると前の設定が残っていせいで有効になっていないことがあるみたい(自分はここでだいぶはまった^^;).

Mozc自体の設定はMacUIMの設定や/Library/Mozc/MozcTools.appから行うことができる.辞書ツールはMacUIM 0.6.8-5 « ekato’s noteにある通りパッケージをひらいて中身を直接実行する必要がある.その他,かな/英数キーでのon/offなど前回と同じように設定する.

Mozcが素晴らしいところは,このようにGUIで設定したものをちゃんとX11の環境で使える上に,Google日本語入力と辞書を共有できるところである.自分は普段Google日本語入力を使っているので,これのおかげで,X11環境でもだいぶ違和感なく日本語を入力できるようになった.

まとめ

日本語入力やコピペをだいぶ通常の環境に近づけられたので,プログラムを各環境としては不満はなくなりつつある.現状困るのは,Eastern Asian Ambiguous Widthな文字(◯とか■とか)が正しく表示されないことと,背景透過は今のところ無理っぽいところぐらいである.背景透過はどうでもいいっちゃいいので,Ambiguous Widthの問題だけなんとか解決できないものか.

urxvt以外では,最近はiTerm2.appも出てきてそっちも気になるけどここらへんとかが解決しない限り使い物にならない.Terminal.appもyoshimasa niwa - TerminalColoreopard LeopardのターミナルのANSI配色を変えるツールワタタツのウィッ記 - TerminalEastAsianAmbiguousClearerApribase » Visor + tmux + vim のための8色カラースキーマ ap_dark8 公開を使えばいいけど,個人的には256色欲しいのでやっぱり当分はurxvtの予感.

あと,最近はscreenの代わりにtmuxを使ってみているけど,それについてはまたそのうち.

2010/09/16 03:12 | Mac | トラックバック(0) | コメント(0)

ページの先頭へ

del.icio.us IncSearch用のスクリプトを更新した

またもや久々のブログ更新.以前に書いてたやつをリファクタリングして,tweetbuzzもくっつけてみた.

del.icio.us IncSearchは,今回みたいに勝手に拡張したり,Vimperatorと組み合わせたり,個人的には最強に重宝しています.

2010/06/24 19:15 | Mac | トラックバック(0) | コメント(0)

ページの先頭へ

トップページへ >> 次のページへ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。