alcをロケーションバーで!!

マウスオーバーの翻訳が貧弱でやっぱりalcで検索したい!!
って思うときもありますよね。マウスオーバーしてカタカナで表示されたときの虚しさといったら....

そんな時のためにいい方法があります。
なんとロケーションバー(urlが表示されてるやつ)に
alc hogehoge』enter↓
としただけで検索できるようにできます。

  • alcのサイトにいく
  • 検索窓で右クリック -> この検索にキーワードを設定
  • キーワードにalc(好きな文字)を入れ、保存。

このままだとうまく動かないので、URLを変更しなければいけません。

これでロケーションバーに
alc hogehoge』enter↓
とすればいきなりhogehogeの検索結果に飛ぶはず。

ちなみにctrl + lでロケーションバーをアクティブにすることができます。(macではcmd + l)

マウスオーバー翻訳は使いたいが、GoogleToolbarはいらね。

題名のことを思った人はけっこういるはず!

GoogleToolBarは、Googleの各種サービスを利用しやすくするためのFirefoxのアドオンです。
このGoogleToolBarにおけるマウスオーバー翻訳がとても便利!!
マウスオーバーするだけで、英語の日本語訳を表示してくれるのです!!!

しかし、この機能を利用するためには、GoogleToolBarを表示していなければいけません。
このために、今まで他の機能は利用しないのにGoogleToolBarが1ライン占有していました。
これでは残念すぎると思い、試行錯誤した結果、いい方法を思いつきました!!!!

  • 表示 -> ツールバー -> カスタマイズをクリック。
  • GoogleToolBarのいらないものをドラックアンドドロップでポップアップの中へ。
  • ブックマークツールバーをGoogleToolBarの一要素として配置。
  • 表示 -> ツールバー -> ブックマークツールバーのレ点をはずします。

これで翻訳機能を残しつつ、1ラインにおさめることができたはず!!

正規表現

iphone正規表現を使う機会があったのでまとめ。

まず正規表現って何?って方はこちら

objcで正規表現を使って特定の文字列を取得するには二つのアプローチがある模様。

  • NSStringに対してrangeOfStringを使う。
  • NSRegularExpressionにNSStringのオブジェクトを渡す。

NSStringに対してrangeOfStringを使う。

rangeOFStringの引数optionsにNSRegularExpressionSearchを渡してやると正規表現を使ってNSRangeを得る事ができるようになります。rangeOfStringを使って正規表現にマッチする範囲をmatchに渡し、後で使うときはmatchの範囲の文をsubstringWithRangeで得ています。

NSString *string = @"東京は寒い。カナダはもっと寒い。";
NSRange match = [string rangeOfString:@"カナダはもっと.+" options:NSRegularExpressionSearch];
if (match.location != NSNotFound) {
  NSLog(@"Found: %@",[string substringWithRange:match]);
} else {
  NSLog(@"Not Found");
}

NSRegularExpressionにNSStringのオブジェクトを渡す。

NSRegularExpressionにNSStringのオブジェクトを渡し、正規表現にマッチした箇所をmatchに渡しています。
どうやら0番目に正規表現に該当する箇所全体。1番目以降に正規表現において()でくくられた箇所に該当するものがmatchに入るようです。

NSString *string = @"@Peeei iphoneアプリの開発ワクワク from @penpen";
NSError *error   = nil;
NSRegularExpression *regexp =
[NSRegularExpression regularExpressionWithPattern:@"@([0-9a-zA-Z]{1,15}).+"
					 options:0
					  error:&error];
if (error != nil) {
	NSLog(@"%@", error);
} else {
	NSTextCheckingResult *match =
	[regexp firstMatchInString:string options:0 range:NSMakeRange(0, [string length])];
	NSLog(@"%d", match.numberOfRanges); 
	NSLog(@"%@", [string substringWithRange:[match rangeAtIndex:0]]);
	NSLog(@"%@", [string substringWithRange:[match rangeAtIndex:1]]);
}

場合に応じてメソッドを帰る必要がありそうです。

最初にマッチングする箇所がほしい場合 => firstMatchInString options: range:
マッチングする箇所すべてがほしい場合 => matchesInString options: range:
マッチングしたら逐次処理を行いたい場合 => enumerateMatchesInString:options:range:usingBlock:

vimの使い方

友達にvimの基本的な使い方を教えてもらいました。
まずはチュートリアルで基本的な動作を確認しました。
ターミナルで
vimtutor [enter]
と入力してください。

基本的な設定はhomeディレクトリの.vimrcに書き込みます。
ターミナル上で以下のコマンドを入力し設定ファイルを作成してください。
vim .vimrc [enter]

内容は例えば以下のようになります。

 set fileencodings=utf-8,euc-jp,cp932,iso-2022-jp,latin1
set ffs=unix,dos
set nocompatible
set backspace=indent,eol,start
set backup
set viminfo='20,\"50
set history=50
set ruler
set wildmenu
set showmode
set number
set numberwidth=4
set tabstop=4
set shiftwidth=4
set showmatch
set laststatus=2
set showcmd
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
syntax on
set nohlsearch
filetype plugin indent on
set autoindent
set showmatch
これからvimを使いこなせるように頑張りたいです。