一日中、Vimをいじってる気がします。
ブログを更新する際にVimpressを使って更新していこうと思ったのですが、
あまり自分の好みの動作ではなかったので、「blogit.vim」というプラグインを使うことにしました。もともとこのプラグインを使おうとしていたのですが、Macで使おうとするとエラーがでてしまって使えなかったのです。そんなわけでプラグインに手を加えて動くようにしました。
変更点は以下
- .vim/plugin/blogit.vimを開く
- :%s/getpreferredencoding()/’utf-8′/g と置換の処理をする。
以上です。
getpreferredencoding()で文字コードの判別をしているのですが、Macの場合だとうまく判定できないようだったので強制的にutf-8をいれるだけです。これだけで動くならもっと早くやればよかった。。。。
というわけで、
あとは:Blogit new して :Blogit push したり、
:Blogit ls して記事を選んでenter → 編集して :Blogit push したりするだけ。
キーマップを定義してもいいかもしれないですね。
ShellはVimShellをつかって、
TwitterはVimShellからTermtter、
LingrはLinger.vim。
Xcodeはcocoa.vim + neocomplcache。
ますますVimから離れられなくなってしまいそうです。
ではでは、たかともでした。
日本語入力のオンオフで悩まされるのはもうごめんですっ!!
Vimを使っているとノーマルモードで日本語入力がオンになっていて、誤作動。
「ふがぁ〜」となることが多いので、Insert-modeを抜けたらすぐに日本語入力をOFFにする設定をしてみました。ついでにVimを起動したときにも日本語の入力をオフにするようにしています
autocmd VimEnter,GUIEnter,BufEnter,BufNew,InsertLeave * call g:changeToUS()
function! g:changeToUS()
call system ("osascript -e \'"
\ ."tell application \"MacVim\" to activate \n"
\ ."tell application \"System Events\" \n"
\ ."tell application process \"MacVim\" \n"
\ ."key code 102 \n"
\ ."end tell \n"
\ ."end tell \n\'")
endfunction
Vimの中からosascriptを呼び出して、AppleScriptで英数キーをたたいているだけなのでたいしたことはしていません。
この設定ですが、いくつか問題があります。
1つ目は
タイミングの関係でATOK、ことえりの英字入力は使えません。
言語環境設定からATOK、ことえりの英字入力をオフにしてUSモードをオンにしてください。
2つ目は
またインサートモードを抜けたタイミングでUSに切り替えをしてしまうので、
inoremap <C-e> <C-o>$ と設定してC-eした場合USモードへの切替が行われます。
まぁ、副作用はあるものの、ノーマルモードで日本語入力がオンになるよりは、使い勝手がよくなると思います。かなり便利な設定だと思うので、使ってみてください。
でわでわ、たかともでした。
ほんとはBlot_itというVimプラグインを使いたかったのですが、どうしてもエラーがでてしまうので(python関係?)VimPressを使うことに。
ローカルの画像を挿入すると自動でアップロードしてリンクに変換してくれるという機能が便利で「ecto」というアプリケーションを使っていました。
変更した理由はただVimを常時起動していることが多いので、Vimをつかってそのまま編集できたほうが、別のアプリケーションを起動する手間が省けていいかなぁというだけのことだったりします。
それに編集の機能だけならVimの方がectoよりも数段上というのもpoint。
Vimのノーマルモードで日本語入力がオンになっているとかなり誤作動してしまうので、挿入モードを抜けたときやコマンドモードに入ったときに日本語入力をOFFにしてくれるような設定はしなければなぁ〜とは思っています。
これができないとectoに戻ってしまうかも。。。
というわけでテストがてらの投稿でした。
タグのテスト
ほげほげ
ふがふが
ぴよぴよ
まんたん
test
とうとうXcode4のプレビュー版がWWDCに行けなかった開発者にも公開されました。
たかとももさっそくDLして使ってみましたが、いままでのXcodeからかなり進化していてびっくりしてしまいました。慣れるまではちょっと大変そうですが、使いこなせたらものすごい簡単に開発ができそうな気がします。
Xcode4が正式版になったときに Vim + cocoa.vim に修正が必要になったりしないといいのですが。。。。
ということで、今日はちょっとした設定の紹介です。
VimでC言語やらを書いているときに include “hogehoge” と書かれているところの上で gf とするとincludeされたファイルにジャンプできる機能があります。ただObjective-Cの場合だと include “hogehoge” ではなくて import “fugafuga” とか import <UIKit/UIKit.h> だったりしてうまくジャンプできません。
おすすめの使い方
- 編集しているファイルを :vsplit して画面分割する。
- import “hogehoge” の上で gf する
- ジャンプした先のファイルから、さらに gf もできます。
- ジャンプしすぎたときは C-o で戻る。
ウィンドウを分割することで、ジャンプした先のファイルを参考にしながら編集ができるので楽ちんですよね。
ということで以下が設定になります。
autocmd FileType objc setlocal path=.;,/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks,/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks,,
autocmd FileType objc setlocal include=^\s*#\s*import
autocmd FileType objc setlocal includeexpr=substitute(v:fname,'\/','\.framework/Headers/','g')
まず1行目はファイルを探すためディレクトリを指定してあります。SDKのバージョンが変わったときにはここを適宜 変更してください。。次に2行目でimport “” と import <> の間に書かれているところがincludeされたファイルだと指定します。最後の行は Import <UIKit/UIKit.h>の「UIKit/UIKit.h」の部分を「UIKit.framework/Headers/UIKit.h」に書き換えをしています。
この3つを設定してあげると Import <UIKit/UIKit.h> と書かれたところで gf したときに、pathで設定したディレクトリ ・ includeexprの設定が組み合わさって/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk\
/System/Library/Frameworks/UIKit.framework/Header/UIKit.h にジャンプできるようになります。ジャンプしたところから戻るには C-o を使ってくださいね。
意外と便利なのでぜひ設定してくださいね♪
でわでわ、たかともでした。
autocmd は augroup MyObjcCmd 〜 augtoup END でくくってあげて、先頭に augroup MyObjcCmd の次の行には autocmd! なんてしてあげるのもいいかと。
最近はVimばっかりつかってEmacsを起動することが少なくなってしまったのですが、anything.elの作者さんが本を出す。とのことで復習がてらEmacsの設定ファイルをいじっています。
Emacsで一つだけプラグインを入れろと言われたら、まちがいなく選ぶのがこのanything.elというElisp。バッファを切り替えたりファイルを開いたりするだけじゃなくって、 imenuとかとの連携もできたりgrepの結果を絞り込んだり、なんだかものすごい多機能なプラグインになってます。
本は8/3に発売のようですが、それを前に作者のrubikitchさんのエントリー。
■[anything][emacs]anything導入のeverything ~3分で使えるanything.el~
気になったのが下の方にある「anything-sourcesとM-x anythingは非推奨」の部分。
おもいっきり設定していますが、なにか? なんて強がってみようと思ったのですが、さくさくっと該当する部分を直してみました。
;; anything-mydefaut()にキーバインドを割り当てる
(define-key global-map (kbd "C-;") 'anything-my-default)
;; - anything-my-default() を設定する
(defun anything-my-default()
(interactive)
(anything-other-buffer '(anything-c-source-ffap-line
anything-c-source-ffap-guesser
anything-c-source-buffers+
anything-c-source-recentf
anything-c-source-files-in-current-dir+)
"*anything defalut*"))
anythingのソース(anything-c-source-なんちゃら〜)が用意されていれば、
(defun hogehoge() ;hogehogeという関数を定義
(interactive) ;おまじない
(anything-other-buffer ; anything-other-bufferを呼び出す
'(anything-c-source-hogehoge anything-c-source-fugafuga) ;ソースを書いていく '()はリスト
"*anything default*")) ;ソースを表示するバッファの名前を"*waiwai*"みたいに書く
上記のような関数を自分の用途に合わせて作ってあげれば、用途に合わせてanythingのソースを切り替えて使えるようになるわけです。便利〜♪
みなさんもぜひぜひ使ってみてください☆
でわでわ、たかともでした。
anything-c-sourceの作り方も書いてみたいけど、いまいち理解できてない。。。。