Tagged: vim RSS

  • fifnel 19:37:57 on 2009/12/17 Thursday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , vim   

    最近vimで覚えた便利な操作 

    へっぽこvimmer丸出しですが、vim歴1年未満ということでご勘弁ください。

    コマンドモードにコピーした文字を貼り付け

    :を叩いてコマンドモードにしたら、 CTRL+rを押して、「"」(ダブルクォーテーション)を押すと、ペーストできます。

    不便だなぁと思いつつも、今まで手打ちしてました。
     
     

    カーソル下の文字を手軽に検索

    検索したい単語(多分wとかbでジャンプ出来るワード単位)の上にカーソルを持っていって、前方検索なら「#」、後方検索なら「*」を叩くと、即座に次に見つかった単語にジャンプされます。

    今までは、.vimrcに以下のような設定をしておいて、ビジュアルモードで選択してから検索していました。

    TEXT:
    1. vnoremap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>

    まぁこれはこれで便利なんですけど、1単語なら「*」って叩いたほうが圧倒的にキーストロークが少なく済みますね。
     
     

    markした場所をどこまでもいつまでも覚えておく

    任意の行で「ma」とか叩くと「a」にそのカーソル位置がマークされ、「'a」と叩くとマーク位置にジャンプ出来る機能がviにはあります。
    この機能は同一セッション(要するに現在編集中のファイル)に限ったマークらしいのですが、これがvimだと拡張されているそうです。

    マークとして使うアルファベットを大文字にするか、数字にすると、どのファイルでマークされたのかまで記録してくれます。

    例えば「m1」とマークした後に別のファイルを開いても、「'1」と叩けば先ほどマークしたファイルにジャンプします。
    ファイルをクローズしてしまったりvimを一度終了させてしまっても、マークした場所を覚えててきっちりジャンプしてくれるので超便利です。

    ということで、詳しくは「:help mark」で!
     
     

    簡易電卓機能

    インサートモードでテキスト編集中に、「CTRL+r」を押して、「=」(イコール)を入力すると、コマンドモードのように下の方で入力待ち状態になります。
    ここで数式を入れてenterを叩くと、テキストに計算結果が挿入されます。

    正確には電卓機能じゃなくて、いわゆるeval()的な、vim内部関数を直接呼び出して、出力結果をテキストに挿入するものみたいです。
    なので、sin()とかlog10()とかも使えます。

     
  • fifnel 12:08:15 on 2009/12/8 Tuesday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: vim   

    非プログラマにも欠かせない3つのvimプラグイン 

    vimに欠かせない3つのプラグイン : tech.kayac.com - KAYAC engineers' blog
    上記エントリーにインスパイアされたので、プログラマじゃなくても便利なvimプラグインを3つ紹介します。
    まぁタイトル通り「欠かせない」ってくらいなので、有名なものばかりですけど。

    YankRing.vim

    YankRing.vim : ヤンクの履歴を管理し、順々に参照、出力できるようにする?名無しのvim使い

    ヤンクというvimが持ってるクリップボード的なものに履歴機能を追加できます。
    pで貼り付けてからC-p、C-nで履歴をたぐれるのが、いわゆる一般的なクリップボード管理アプリの操作とは大きく異なります。
    コピペ界隈の機能が充実しているvimですので、是非入れておきたいですね。
     
     

    QuickBuf

    QuickBuf - Very small, clean but quick and powerful buffer manager! : vim online
    20091208qbuf.jpg

    超軽量バッファマネージャプラグインです。
    FuzzyFinder.vimはファイルを探すときには便利なんですけど、バッファ切り替えにはちょっと重たいと感じることがあります。
    QuickBufはバッファの切り替えや削除等の基本的な管理しか機能はありませんし、FuzzyFinder.vimのようにバッファ名で絞り込んだりもできません。
    しかし、その分動作はとてもキビキビしています。
    バッファ切り替えは良く使うので、できれば軽いほうが嬉しいですよね。

    ちなみに私はスペースキー2回叩くと出てくるように設定しています。

    TEXT:
    1. let g:qb_hotkey="<space><space>"

     
     

    monday.vim

    monday.vim : Ctrl-a、Ctrl-xで曜日、月をループ (+他の用途への応用)?名無しのvim使い

    数字の書かれたところでC-aを叩くと数字が+1され、C-xを叩くと-1されます。
    もともとは曜日や月を加算減算するためのプラグインなので、mondayと書かれたところでC-aを叩くとtuesdayに書き換わったりもします。
    今までこのような機能を使ったことのない人にとっては驚きの新感覚機能だと思います。(大げさ?

    また、他にも何か追加したければプラグインをちょちょっと改造すればどうにでもなります。
    私は数値以外だと、trueとfalseの切り替えに良く使っています。

     
  • fifnel 13:38:03 on 2009/9/27 Sunday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , vim   

    vimにしてからとても調子が良いです。
    Twitter / ふぃふねる: vimにしてからというもの、腱鞘炎というか左小指痛が ...

    というわけで、腱鞘炎から指を守るプロジェクト(たった今、命名)第二弾としてAquaSKKへの乗り換えにチャレンジしたのですが、私の環境でSandSがうまく動かず(Synergy経由だったので)、それを利用せずShiftキーを多用するようになったら元の木阿弥ですからこれは一旦諦めました。

    そして、今(というかさっき)検討を始めたのがDvorak配列への移行です。
    ホームポジションの列に母音が並んでいるのでとてもよさげに思えたのです。

    しかし、
    Dvorak配列 - Wikipedia

    Dvorak普及への問題点
    (中略)
    こうした特殊キー入力はたとえば、Mac OS X や Windowsではアンドゥ、カット、コピー、ペーストが、それぞれQWERTY配列の左下の「z」「x」「c」「v」に割り当てられているように、QWERTY配列を前提にしているものが多い。また、Unix系OSで使用される基本的なエディタであるviとそのクローンでは、QWERTY配列の右手ホームポジションをほとんど動かすことなく作業できるよう「h」「j」「k」「l」にカーソル移動キーが割り当てられている

    この問題が非常に大きく思えます。
    まぁvimはキーマップを変えれば済む話なんですけど、他のアプリとかどうなんだろう‥‥ということで、追々調べてみます。

     
  • fifnel 18:10:40 on 2009/9/5 Saturday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: vim   

    fuzzyfinder.vimの3.0がリリースされたようです。
    fuzzyfinder.vim 3.0 - ns9log

    なにやらいろいろと変わっているらしいのですが、レスポンスの改善はとてもうれしいです。
    追々差し替えて動作や設定を確認してみたいと思います。

     
  • fifnel 13:45:43 on 2009/8/24 Monday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , vim   

    MacVim KayroYaの20090823がリリースされました。
    splhack: MacVim KaoriYa 20090823

    事情があって今回は自動アップデート配信がされていないようですが、今のところウチでは問題はでていません。
    といっても、アップデートしてから触ったのはhowmとfuzzyfinderくらいですけど。

    今までは日本語入力で変換確定前の文字が長くなってくると表示上ちょっとした不具合があった気がするんですけど(さほど実害が無いのでスルーしてました‥‥)、それが直っている気がします。

     
  • fifnel 12:01:29 on 2009/7/9 Thursday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: vim   

    pukivimを入れました。

    オリジナル版に手を加えているものを公開している方がいらっしゃったので、こちらを使わせてもらいました。
    pukivim私家版0.0.4

    今まではvimで書いてブラウザにコピペしてたんですが、その手間が省けました。
    特に難しい設定もなくあっさり動きますし、これは便利です。

    追記:PukiWikiをvimから直接編集するためのプラグインです。

     
  • fifnel 16:30:27 on 2009/6/3 Wednesday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: vim   

    monday-custom.vimが便利すぎて椅子から転げ落ちそうになりました。
    monday.vim : Ctrl-a、Ctrl-xで曜日、月をループ (+他の用途への応用) ? 名無しのvim使い
    上記ページの下の方にカスタマイズされたmonday-custom.vimがあるので、それを使っています。

    Ctrl+Aを叩くとカーソルの下のtrueがfalseに、falseがtrueに書き換わるんですよ。
    なにこれすごい。すごい!!!
    デバッグとかで設定をころころ変えるときにめちゃくちゃ便利です。

     
  • fifnel 23:53:05 on 2009/5/22 Friday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , vim   

    SKKに再チャレンジ! 

    あまりにも早い挫折で悔しいので、再度SKKにチャレンジしてみました。

    今度はAquaSKKではなく、skk.vimにしてみました。
    これで前述した欠点のうち、Javaアプリで使えないという問題がクリアされました。
    (というかvimでしか使えませんけどね・・・)

    skk.vim - Japanese SKK : vim online
    SKK辞書 - FreeStyleWiki

    あと、以下のパッチをあててsticky shiftを使えるようにして、左手の小指の負担を減らしました。
    これはかなり便利な機能で、AquaSKKにもあればいいのにと思いました。

    SKKをVimで使えるようにするプラグインskk.vim、を改悪してみた ( skk.vim 狙え版の公開と、ここまでの変更点のまとめ ) - くふんを狙え(vimグループ) - vimグループ

    漢字の送り仮名に関しては私自身が頑張るしかないので、ひとまずこんなところですかね。

    上記サイトの設定を切り貼りしただけですが、一応skk.vimに関するvimrcの内容をメモっておきます。
    ちなみに、カーソルの色が私の環境だと反映されませんでした。

    " skk.vim
    let skk_jisyo = '~/.vim/skk-jisyo'
    let skk_large_jisyo = '~/.vim/dict/skk/SKK-JISYO.L'
    let skk_auto_save_jisyo = 1
    let skk_keep_state = 0
    let skk_egg_like_newline = 1
    let skk_show_annotation = 1
    let skk_use_face = 1

    let g:skk_sticky_key = ';'
    let g:skk_kakutei_key = '.'
    let g:skk_use_color_cursor = 1
    let g:skk_cursor_hiragana_color = '#ff0000' " かなモード
    let g:skk_cursor_katakana_color = '#00ff00' " カナモード
    let g:skk_cursor_jisx0208_color = '#ffcc00' " 全英モード
    let g:skk_cursor_latin_color = '#000000' " アスキーモード
    let g:skk_cursor_abbrev_color = '#0000ff' " SKK abbrevモード
    let g:skk_latin_mode_string = 'SKK' " アスキーモード ( SKK:aA )
    let g:skk_hiragana_mode_string = 'かな' " かなモード ( SKK:あ )
    let g:skk_katakana_mode_string = 'カナ' " カナモード ( SKK:ア )
    let g:skk_jisx0208_latin_mode_string = '全英' " 全英モード ( SKK:A )
    let g:skk_abbrev_mode_string = 'aあ' " SKK abbrevモード ( SKK:aあ )

     
  • fifnel 13:01:16 on 2009/5/19 Tuesday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , vim   

    vimのvbaファイルのインストールは、そのファイルをvimで開いてから

    :source %

    いつも忘れちゃうのでメモ。

    ってことで、twitterで教えてもらったTwitVimを入れてみました。
    TwitVim - Twitter client for Vim : vim online

     
  • fifnel 19:24:22 on 2009/5/11 Monday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , , , , , vim,   

    Macを使い始めてから変わったこと 

    Macを買ってから早3ヶ月強。
    買う前から変わったことをつらつら書き留めておきます。

    ちなみに、何でそうなったのかの考察は特にしていません。
    Macが関係あるかもしれないし、全く関係ないかもしれませんのであしからず。
     

    Webサービスはクライアントアプリを利用するようになった

    Windowsの時はブラウザで使っていたメール、カレンダー、Todoといったものを、専用クライアントで使うようになりました。

    Gmail → Mail.app
    Googleカレンダー → iCal
    Toodledo → OmniFocus

     
     

    Evernoteを使うようになった

    Windowsの時はほとんど使っていなかったんですけど、なぜか最近はよく使います。
    たぶん前述の専用クライアント志向の影響です。
     
     

    GTDを実践するようになった

    「ストレスフリーの整理術」という本を読んで、本格的にGTDを実践するようにしました。
    ストレスがフリーになったかどうかはあまり実感はありませんが、急に思い出して慌てて仕事をすることは全く無くなりました。
    これも、その本とOmniFocusのおかげです。
    本とアプリの購入代金として1万円ほどかかりましたが、安い投資でした。

     
     

    エディタがvimになった

    元々emacs派(xyzzy)でしたが、CarbonEmacsよりMacVimの方が使い勝手が良いのでは?と何となく思って乗り換えました。
    今のところ、乗り換えて良かったと思っています。
    macvim-kaoriya - Google Code
     
     

    paypalに登録した

    Macのアプリはシェアウェアばっかりなので、いい加減登録しました。
    カード番号などいちいち入れなくて済むのでお手軽です。
     
     

    Subversionのプライベートリポジトリを利用するようになった

    いわゆる「dotfiles」置き場として使っています。
    シンボリックリンクが普通に使えるのは楽で良いです。
    当初はさくらインターネットに環境を構築していましたが、今は以下のフリーサービスを利用しています。
    XP-Dev.com - Free Subversion Hosting (SVN Hosting), Version Control, Project Tracking - Home
     
     

    Twitterを利用するようになった

    かっこいいTwitterクライアントが多いせいもあって、結構使うようになりました。
    以前はPwitterを使っていましたが、TLが取得できないことが多々あるので今ではTweetieとpocket*を使っています。
    atebits - Tweetie for Mac
    pocket*
     
     

    Windows vs Macのdisりあいが馬鹿馬鹿しく思えるようになった

    今やどちらのOSも基本的な機能はそろっているので、もはや好みの問題であると断言出来るようになりました。

     
  • fifnel 12:48:50 on 2009/5/11 Monday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , , vim   

    OSXのクリップボードマネージャとして、ClipMenuというアプリを導入してみました。
    vimを使っていると、思わぬところでクリップボードを上書きしてしまうことがあるので、結構不便に思っていたんですよね。
    vim単体ならyankring.vimで良いんですけど。

    ClipMenu - naotaka.com

     
  • fifnel 13:52:51 on 2009/4/30 Thursday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: vim   

    QFixHowmとfuzzyfinderとneocomplcacheが更新されていたので、手元の環境をそれぞれ最新版に入れ替えました。
    作者の方々には本当に頭が下がる思いです。

    それぞれ機能追加があるようなので、後で詳しくチェキします。

    fuzzyfinder.vim - Fuzzy/Partial pattern explorer for buffer/file/MRU/command/bookmark/tag/etc. : vim online

    QFixHowm - vim用howmプラグイン ?(fudist)?

    Shougo's neocomplcache at master - GitHub

     
  • fifnel 0:35:01 on 2009/4/28 Tuesday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: vim   

    vimのneocomplcacheがどうも重いなーと思っていたのですが、最新版にしたら超軽くなっていました。
    重いとカーソルの移動がぎこちなくなるので、ちょっとストレスフルだったのですよね。
    ちなみに、重いなーと思ったバージョンは2.33で、現在2.36でした。

    Shougo's neocomplcache at master - GitHub

     
    • Shougo 9:34:42 on 2009/4/28 火曜日 パーマリンク | ログインして返信する

      作者のShougoです。確かにneocomplcacheは時々そういう症状が起こりますよね。できるだけ修正したいと考えています。
      また何かありましたらご連絡ください。

  • fifnel 22:57:02 on 2009/4/26 Sunday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , vim   

    macvim-kaoriyaの最新版きたー!
    25日の更新でIMコントロールに対応したんですが、どうもいくつかのmapが効かなくなっていて、それが本日修正された模様。

    日本語環境で使う限り、これが現時点で最強だと思います。
    macvim-kaoriya - Google Code

     
  • fifnel 23:56:14 on 2009/4/7 Tuesday パーマリンク | hatena button hatena count | retweet buttonReTweet
    Tags: , vim   

    春なのでemacsからvimに乗り換えてみました 

    20090407vim
    春です。
    何か新しいことがしたくなるこの季節。
    ついにemacsからvimに乗り換えてみました。

    というわけで、ここ一週間ほどゲームもtwitterもろくにせず、ひたすら.vimrcをカスタマイズしまくっていました。
    正しくはカスタマイズすべくググりまくっていたんですけど‥‥。

    その甲斐あってかなり満足するものが出来たので、思い切って晒してみます。

    まず最初に私がインストールしたvimですが、いくつか試して最終的に以下のCocoa版に落ち着きました。

    PrivatePortfile/Vim72 - MacPortsWiki-JP

    最初はMacVimなどを使っていたのですが、他のはiminsert=0が使えませんでした。

    それでは、.vimrcをぺたりんこ。


    .vimrcにあるウィンドウ周りの設定が効いていなかったので.gvimrcに移動しました。
    あと、vcscommandプラグインを使い始めたのでruntimepathに追加しました。

    TEXT:
    1. "-------------------------------------------------------------------------------
    2. set nocompatible       " vimですよ
    3.  
    4. "-------------------------------------------------------------------------------
    5. " ステータスライン
    6. set laststatus=2 " 常にステータスラインを表示
    7. set statusline=%<%F\ %r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%4v(ASCII=%03.3b,HEX=%02.2B)\ %l/%L(%P)%m
    8.  
    9.  
    10. "-------------------------------------------------------------------------------
    11. " 基本設定
    12. let mapleader = ","            " キーマップリーダー
    13. set scrolloff=5                " スクロール時の余白確保
    14. set textwidth=0                " 一行に長い文章を書いていても自動折り返しをしない
    15. set nobackup                   " バックアップ取らない
    16. set autoread                   " 他で書き換えられたら自動で読み直す
    17. set noswapfile                 " スワップファイル作らない
    18. set hidden                     " 編集中でも他のファイルを開けるようにする
    19. set backspace=indent,eol,start " バックスペースでなんでも消せるように
    20. set formatoptions=lmoq         " テキスト整形オプション,マルチバイト系を追加
    21. set vb t_vb=                   " ビープをならさない
    22. set browsedir=buffer           " Exploreの初期ディレクトリ
    23. set whichwrap=b,s,h,l,<,>,[,]  " カーソルを行頭、行末で止まらないようにする
    24. set showcmd                    " コマンドをステータス行に表示
    25.  
    26. filetype indent off            " ファイルタイプによるインデント
    27. filetype plugin off            " ファイルタイプごとのプラグイン
    28.  
    29. "-------------------------------------------------------------------------------
    30. " 表示
    31. set showmatch         " 括弧の対応をハイライト
    32. set showcmd           " 入力中のコマンドを表示
    33. set number            " 行番号表示
    34. set list              " 不可視文字表示
    35. set listchars=tab:>.,trail:_,extends:>,precedes:<" 不可視文字の表示形式
    36. set display=uhex      " 印字不可能文字を16進数で表示
    37.  
    38. " 全角スペースをハイライト
    39. if has("syntax")
    40.     syntax on
    41.     function! ActivateInvisibleIndicator()
    42.         syntax match InvisibleJISX0208Space " " display containedin=ALL
    43.         highlight InvisibleJISX0208Space term=underline ctermbg=Cyan guibg=Cyan
    44. "        syntax match InvisibleTrailedSpace "[ \t]\+$" display containedin=ALL
    45. "        highlight InvisibleTrailedSpace term=underline ctermbg=Red guibg=Red
    46. "        syntax match InvisibleTab "\t" display containedin=ALL
    47. "        highlight InvisibleTab term=underline ctermbg=Cyan guibg=Cyan
    48.     endf
    49.     augroup invisible
    50.         autocmd! invisible
    51.         autocmd BufNew,BufRead * call ActivateInvisibleIndicator()
    52.     augroup END
    53. endif
    54.  
    55. " カレントウィンドウにのみ罫線を引く
    56. augroup cch
    57.   autocmd! cch
    58.   autocmd WinLeave * set nocursorline
    59.   autocmd WinEnter,BufRead * set cursorline
    60. augroup END
    61.  
    62.  
    63. "-------------------------------------------------------------------------------
    64. " インデント
    65. set autoindent
    66. set smartindent
    67. set cindent
    68. " softtabstopはTabキー押し下げ時の挿入される空白の量,0の場合はtabstopと同じ,BSにも影響する
    69. set tabstop=4 shiftwidth=4 softtabstop=0
    70. set noexpandtab " タブをスペースに展開しない
    71.  
    72.  
    73. "-------------------------------------------------------------------------------
    74. " 補完・履歴
    75. set wildmenu           " コマンド補完を強化
    76. set wildchar=<tab>     " コマンド補完を開始するキー
    77. set wildmode=list:full " リスト表示,最長マッチ
    78. set history=1000       " コマンド・検索パターンの履歴数
    79. set complete+=k        " 補完に辞書ファイル追加
    80.  
    81.  
    82. "-------------------------------------------------------------------------------
    83. " 検索設定
    84. set wrapscan   " 最後まで検索したら先頭へ戻る
    85. set ignorecase " 大文字小文字無視
    86. set smartcase  " 大文字ではじめたら大文字小文字無視しない
    87. set incsearch  " インクリメンタルサーチ
    88. set hlsearch   " 検索文字をハイライト
    89.  
    90. "選択した文字列を検索
    91. vnoremap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>
    92. "選択した文字列を置換
    93. vnoremap /r "xy:%s/<C-R>=escape(@x, '\\/.*$^~[]')<CR>//gc<Left><Left><Left>
    94.  
    95.  
    96. "-------------------------------------------------------------------------------
    97. " エンコーディング関連
    98.  
    99. " 改行文字
    100. set ffs=unix,dos,mac
    101.  
    102. " デフォルトエンコーディング
    103. set   encoding=utf-8
    104.  
    105. if has('win32') && has('kaoriya')
    106.   set   ambiwidth=auto
    107. else
    108.   set   ambiwidth=double
    109. endif
    110.  
    111. if has('iconv')
    112.   let s:enc_euc = 'euc-jp'
    113.   let s:enc_jis = 'iso-2022-jp'
    114.  
    115.   if iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
    116.     let s:enc_euc = 'euc-jisx0213,euc-jp'
    117.     let s:enc_jis = 'iso-2022-jp-3'
    118.   endif
    119.  
    120.   set   fileencodings&
    121.   let &fileencodings = &fileencodings.','.s:enc_jis.',cp932,'.s:enc_euc
    122.  
    123.   unlet s:enc_euc
    124.   unlet s:enc_jis
    125. endif
    126.  
    127. if has('win32unix')
    128.   set   termencoding=cp932
    129. elseif !has('macunix')
    130.   set   termencoding=euc-jp
    131. endif
    132.  
    133.  
    134. "-------------------------------------------------------------------------------
    135. " キーバインド関係
    136.  
    137. " 行単位で移動(1行が長い場合に便利)
    138. nnoremap j gj
    139. nnoremap k gk
    140.  
    141. " バッファ周り
    142. nmap <silent> <C-l> :bnext<CR>
    143. nmap <silent> <C-h> :bprevious<CR>
    144. nmap <silent> ,l    :BufExplorer<CR>
    145.  
    146. " 検索などで飛んだらそこを真ん中に
    147. nmap n nzz
    148. nmap N Nzz
    149. nmap * *zz
    150. nmap # #zz
    151. nmap g* g*zz
    152. nmap g# g#zz
    153. nmap G Gzz
    154.  
    155. "usキーボードで使いやすく
    156. nmap ; :
    157.  
    158.  
    159. "-------------------------------------------------------------------------------
    160. " プラグインごとの設定
    161.  
    162. " migemo.vim
    163. if has('migemo')
    164.   set migemo
    165.   set migemodict=/opt/local/share/migemo/utf-8/migemo-dict
    166. endif
    167.  
    168. " YankRing.vim
    169. nmap ,y :YRShow<CR>
    170.  
    171. " qfixhowm.vim
    172. set runtimepath+=~/.vim/plugin/qfixapp
    173. let QFixHowm_Key                   = ','
    174. let howm_dir                       = '~/Documents/howm-vim/'
    175. let howm_filename                  = '%Y/%m/%Y-%m-%d-%H%M%S.howm'
    176. let howm_keywordfile               = '~/Documents/howm-vim/.howm-keys'
    177. let howm_fileencoding              = 'utf-8'
    178. let howm_fileformat                = 'unix'
    179. let mygrepprg                      = 'grep'
    180. let MyGrep_ShellEncoding           = 'utf-8'
    181. let QFixHowm_RecentDays            = 10
    182. let QFixHowm_SaveTime              = 2
    183. let QFixHowm_RecentMode            = 2
    184. let QFixHowm_Replace_Title_Pattern = '^=\s*\(\[[:a-zA-Z0-9 ]*\]\s*\)\=$'
    185. let QFixHowm_Replace_Title_Len     = 64
    186. let QFixHowm_MruFile               = '~/Documents/howm-vim/.howm-mru'
    187. let QFixHowm_MruFileMax            = 20
    188. let QFixHowm_ShowTodoOnMenu        = 1
    189. let QFixHowm_ShowSchedule          = 10
    190. let QFixHowm_ShowScheduleTodo      = 10
    191. let QFix_CloseOnJump               = 1
    192. let QFix_Height                    = 25
    193. let QFix_SearchPathEnable          = 1
    194. let QFix_SearchPath                = '~/Documents/howm-vim/'
    195. "if has('mac')
    196. "  let MyOpenURI_cmd = "call system('/usr/bin/browser %s &')"
    197. "endif
    198.  
    199. " vcscommand.vim
    200. set runtimepath+=~/.vim/plugin/vcscommand
    201.  
    202.  
    203. "-------------------------------------------------------------------------------
    204. " ユーティリティ
    205.  
    206. " 現在開いているファイルのある場所に常にcdする
    207. au   BufEnter *      exec ":lcd " . expand("%:p:h")

    次に.gvimrc。完全にOSX用です。
    タブを便利に使えないか、いろいろと試行中です。

    TEXT:
    1. "-------------------------------------------------------------------------------
    2. " デザイン
    3. colorscheme desert         " カラースキーム
    4. set guifont=Osaka-Mono:h14 " フォント
    5. set antialias              " アンチエイリアシング
    6. set transparency=230       " 半透明
    7. set guioptions-=T          " ツールバー削除
    8.  
    9. highlight CursorLine ctermbg=black guibg=gray10  " カーソル行の色
    10.  
    11. " 挿入モード・検索モードでのデフォルトのIME状態設定
    12. set iminsert=0 imsearch=0
    13.  
    14. "日本語入力中のカーソルの色
    15. "highlight Cursor guifg=NONE guibg=Green
    16. highlight CursorIM guifg=NONE guibg=Red
    17.  
    18. " メニューを英語に戻す
    19. source $VIMRUNTIME/delmenu.vim
    20. set langmenu=none
    21. source $VIMRUNTIME/menu.vim
    22.  
    23. " 様々な箇所を英語に戻す
    24. lang en_gb
    25.  
    26.  
    27. "-------------------------------------------------------------------------------
    28. " ウィンドウ
    29. set sessionoptions+=resize " 行・列を設定する
    30. set lines=48               " 行数
    31. set columns=160            " 横幅
    32. set cmdheight=1            " コマンドラインの高さ
    33. set previewheight=5        " プレビューウィンドウの高さ
    34.  
    35. set splitbelow             " 横分割したら新しいウィンドウは下に
    36. set splitright             " 縦分割したら新しいウィンドウは右に
    37.  
    38.  
    39. "-------------------------------------------------------------------------------
    40. " タブを使う
    41. "nnoremap <C-h>  gT
    42. "nnoremap <C-l>  gt
    43. "nnoremap <Leader>1 1gt
    44. "nnoremap <Leader>2 2gt
    45. "nnoremap <Leader>3 3gt
    46. "nnoremap <Leader>4 4gt
    47. "nnoremap <Leader>5 5gt
    48. "nnoremap <Leader>6 6gt
    49. "nnoremap <Leader>7 7gt
    50. "nnoremap <Leader>8 8gt
    51. "nnoremap <Leader>9 9gt

    入れてるプラグインは以下の通り。

    • Align
    • migemo
    • qfixhowm
    • changed
    • grep
    • mru
    • surround
    • project
    • yankring
    • incbufswitch
    • commentout
    • bufexplorer
    • vcscommand

    Alignとsurroundとcommentoutはマジで最強というか、無いと死にます。
    使い始めて4日で死ぬとか大げさかもしれませんが、マジで死にます。超便利。

    emacsからの移行で一番悩んだのがhowmなんですが、QFixHowmのおかげで完全移行出来ました。
    QFixHowm - vim用howmプラグイン ?(fudist)?

    ただ3点ほど悩んだことがあって、一つ目はメニューページの文字化けです。
    こちらはvimrcで日本語のエンコード判定処理をちゃんとしたものを入れたら直りました。

    二つ目はautocmdを使って開いているファイルの場所を常にcdするようにしているのですが、その設定との相性の悪さです。
    QFixHowmはファイルを開くときに絶対パス指定していないので、適当にcdをされるとファイルが開けなくなるようです。

    仕方ないのでmyqfix.vim925行目あたりを以下のようにしました。

    TEXT:
    1. if g:QFix_FileOpenMode == 0
    2.       CloseQFixWin
    3.       " 絶対パスにする
    4.       exec 'edit ' . expand(g:howm_dir) . a:fname
    5.       silent! wincmd o
    6.       OpenQFixWin
    7.       silent! wincmd p

    三つ目はminibufexpl.vimとの相性の悪さです。
    いずれもウィンドウを分割して情報表示するので、一緒に使うとウィンドウがめちゃくちゃになります。
    結局minibufexpl.vimを使うのをやめ、bufexplorer.vimの方にしました。
    結果的にこちらの方が性に合っているようで、かえって良かったです。

    emacsからの乗り換えは完全に「なんとなく」ってだけなんですが、CTRLキー押しまくりで左の小指が痛くなることが無くなったのが思いの外大きな収穫でした。
    こんなことならもっと早く乗り換えておくべきだったかな?

    最後になりましたが、あちこちで.vimrcを晒してくださった方々、プラグインを公開してくださった方々、vim本体やパッチを公開してくださった方々、そして私がvimに触れるきっかけとなったVimperatorの作者とその界隈の方々、本当にありがとうございます。
    そしてこれからもよろしくお願いいたします!

     
    • 匿名 21:58:52 on 2009/4/8 水曜日 パーマリンク | ログインして返信する

      はじめまして、QFixHowmの作者です。
      ご使用ありがとうございます。
      最新版で autocmd でディレクトリ移動している際の挙動に関しては、改善されたと思いますので試してみていただけないでしょうか。
      また当方ではMacOSXでの動作確認は出来ないもので、少しお伺いしたいこともあります。
      もし気が向いたらメール等でご連絡ください。
      コメント欄を汚すつもりはないので、お読みになりましたらこのコメントは削除してください。

    • ozaki 22:53:38 on 2009/4/9 木曜日 パーマリンク | ログインして返信する

      やっぱりvimだよなw

c
新規投稿作成
j
次の投稿 / 次のコメント
k
前の投稿 / 前のコメント
r
返信
e
編集
o
コメントを表示する / 隠す
t
トップへ移動
l
go to login
h
show/hide help
esc
キャンセル