cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

2013-01-01から1年間の記事一覧

yankround.vimがunite.vimでの履歴の閲覧に対応しました。

vim

LeafCage/yankround.vim :Unite yankround これでShougo/unite.vimでレジスタの履歴を閲覧できます。 出来ることはunite-source-history/yankとほぼ同じです。(参考にさせていただきました。Shougoさんありがとうございます。) kien/ctrlp.vimと比較すると…

yankround.vimにリージョンハイライト機能が付きました

vim

LeafCage/yankround.vim let g:yankround_use_region_hl = 1 で有効になります。*1 有効にするとyankroundが有効な間、貼り付けたテキストがハイライトされるようになります。 <C-p> <C-n> で回したテキストもです。 g:yankround_region_hl_groupname でハイライトに使</c-n></c-p>…

Vimの:highlight定義の流儀

vim

colorschemeが先頭で:hl clearをしてくるので、カラースキーム以前に定義された:highlightは軒並み吹っ飛ばされるという問題。 結論を言うと、:highlightの定義はautocmd ColorScheme *でするか、使う直前その場でやるべき。 hl clear つけるのが流儀という…

複数ウィンドウを開いているときneosnippetのスニペットを発動させると他のウィンドウのfoldingが閉じてしまう現象

vim

一番最後のウィンドウで発動させるとこの現象は発生しない。 自分のウィンドウよりも後のウィンドウにのみ発生する模様。

些末なるVim scriptのTips

vim

実際に使った、役に立ったもの あるechoの表示で一時停止させてユーザに確認を促したい echo の直後で call getchar() する インプットメソッドを強制的にオフにしたい 'imdisable'で一時的にIMをオフにする。 let save_imd = &imd set imdisable let &imd =…

Vimコマンドラインのキーマッピングを改造するプラグイン作りました。

vim

LeafCage/cmdlineplus.vim 提供している機能は、単語単位の移動、Emacsライクなキル、特定キャラクタのエスケープ、レジスタやクリップボードに現在のコマンドラインの内容をセットする、以上になります。

lastmess.vimで表示されるメッセージのハイライトをいろいろ定義できるようにした。

vim

LeafCage/lastmess.vimについて メッセージの開始と、メッセージの中身の色を定義できるようにした g:lastmess_highlight_errstartとg:lastmess_highlight_errcontentsを指定することで、 エラーの開始点と内容が色分けされてこのようにエラーメッセージが見…

Vimにパッチが当てられるまでの間、Windowsでとりあえず外部grepを使えるようにする

vim

mattnjvgrepの問題、vimを直すしか方法ない vimがCreateProcessWを使えば解決 たしかパッチは出してあってtodoに入ってたと思う http://lingr.com/room/vim/archives/2013/12/05#message-17742024 とのことなので、それまでは我慢と工夫で乗り切るしかないの…

最新版のjvgrepをコンパイルするにはgo言語とMercurialが必要だった

vim

# go get github.com/mattn/jvgrepというコマンドを実行するにはThe Go Programming Languageが必要だった。 しかも$GOROOT $GOPATHという意味不明な環境変数を設定しなければいけなかった。さらに、それに使われているmahonia - Mahonia—a character-set co…

コマンドラインで :b を実行するときにバッファリストを表示する

vim

Vim - hjklマスターに薦める意外と便利な機能 - Qiita [キータ] の バッファを選択する際に、同時にリストを表示する nnoremap B :ls<CR>:b という設定を見て閃いた。 cnoreabb <expr>b getcmdtype()==':' && getcmdline()=='b' ? 'ls<CR>:b' : 'b' こうすればコマンドライ</cr></expr></cr>…

nebula.vimを使ってneobundle#tap()をより高速に書く

vim

Shougo/neobundle.vim に ももんが流NeoBundle管理術 | かなりすごいブログ から機能が取り込まれneobundle#tap() neobundle#untap()が使えるようになりました。 新・ももんが流NeoBundle管理術(あたらしい) | かなりすごいブログ これを利用するとだいた…

コマンドラインからシームレスにover.vimの全体置き換えを使う

vim

私は今まで:sについて以下の設定をしていた。 cnoreabb <expr>s getcmdtype()==':' && getcmdline()=~'^s' ? '%s/<C-r>=Eat_whitespace(''\s\\|;\\|:'')<CR>' : 's' function! Eat_whitespace(pat) "{{{ let c = nr2char(getchar(0)) if c=~a:pat return '' elseif c=~'\r' </cr></c-r></expr>…

'nobuflisted' なバッファの作り方

vim

Vim Advent Calendar 2012 356日目の記事です。 バッファをバッファリストに登録したくないときがあります。 バッファリストに登録されていないバッファは:lsでは表示されず、:bnext :bpreviousでのバッファ切換の対象になりません。 また、Vim終了時に次回…

Vimスクリプトのファイル先頭にscriptencodingを書く意味

vim

LeafCage ファイルの先頭でscriptencoding を書くのはどういった利点があるのでしょうか?今までscriptencodingを書いてこなかったのですが、書いておくとVimがencodingを調べることがなくなって読み込み速度がアップするのでしょうか? thinca マルチバイト…

README.mdをVimのヘルプファイルから生成する

vim

この記事はVim Advent Calendar 2012の341日目の記事です。 前回(84日前)Vimプラグインのスクリプトファイルからヘルプファイルを生成するというのをやりました。 Vimプラグインのヘルプドキュメントを自動生成する - cafegale しかしGitHubではREADME.md…

throw "ERROR"のチェックの簡潔な記述

vim

t9md: if Check1() throw "ERROR" endifこういうチェックをいっぱいやる場合に Check1() && throw "ERROR" Check2() && throw "ERROR" をやりたんですが、出来ない。 http://lingr.com/room/vim/archives/2013/11/03#message-17268337 manga_osyo: function!…

isは型の違いも見る

vim

manga_osyo echo 0 ==# "homu" => 1 になってつらぽよ… http://lingr.com/room/vim/archives/2013/11/03#message-17267099 Lindan リストで包んで,[0] ==# ["homu"] ならちゃんと型チェックされます(バッドノウハウ) http://lingr.com/room/vim/archives/…

ウィンドウを分割させて新しいバッファを表示させる系のコマンドを含む関数内での:echoは一瞬だけしか表示されない

vim

WarningMsgを表示させてから新窓で開こうとしたら、新窓が開かれた後の画面更新でechoが消されてしまった。関数内で、順番を、[新窓を開く→:echo]の順にしても無駄。関数が終了して初めて画面更新が行われるので、それで:echoが消されてしまう。 しょうがな…

複数ハイライトサーチ系Vimプラグイン

vim

daisuzu/rainbowcyclone.vim t9md/vim-quickhl MultipleSearch - Highlight multiple searches at the same time, each with a different color. : vim online MultipleSearchは操作性的に論外

ctrlp.vimの拡張作成は想像以上に自由がなかった

vim

実際拡張を作ろうとすると、想像以上に自由がないことが分かる。 複数選択が出来ない(標準プラグインでは出来るのに) 入力パターンマッチの種類が少ない(前方一致が欲しい) ページ送り・戻し機能がないから画面にない候補を選択することが出来ない(何と…

副作用の少ないYankRing.vimみたいなのができました

vim

Vimmerにハロウィンがアドベントしましたね。 Vim Advent Calendar 2012 335日目の記事です。 Vimのレジスタの履歴を取って再利用するプラグインにYankRing.vimというものがあります。間違えてp(テキストを貼り付け)してしまっても<C-p>で即座に履歴を遡(さか</c-p>…

ユーザに入力をさせるinput()のインターフェイスが不満すぎて仕方がないならctrlp.vim風の入力インターフェイスalti.vimを使おう

vim

Vim Advent Calendar 2012 333日目の記事です。alti.vimはctrlp.vim風の操作感を持つ入力インターフェイスです。 LeafCage/alti.vim もしもユーザに多少複雑めの入力を要求したい場合は、Vimの組み込み関数input()でそれを実現するのが苦しいことがあります…

俺が見たいのはメッセージの最後なんだ!:messagesを便利にするVimプラグイン

vim

Vim Advent Calendar 2012 330日目の記事です。Vimでエラーが発生した時にメッセージが表示されます。 そのメッセージを後から確認したい場合は:messagesでメッセージ履歴を表示します。 しかし:messagesにはVimが起動してからのメッセージが蓄積されている…

lightline.vimをカスタマイズする

vim

Vim Advent Calendar 2012 の325日目の記事です。 少し長めになりますので、お時間があるときにお読みください。Vimのステータスラインを改造するプラグインが、powerline、airlineに続いてlightlineが登場しました。 私は今までステータスラインやタブライ…

ctrlp.vimの拡張を作るときにVim7.3.1170以前ではスクリプトローカル関数をFuncrefで渡すことが出来ない

vim

こういうのは無理。 スクリプトローカル関数のFuncrefはそのスクリプト内でのみしか有効でないから。 let s:ctrlp_ext_var let s:ctrlp_ext_var.accept = function('s:accept') グローバル関数や、オートロード関数を使おう。もしかしたらこういうことをした…

将来使うかも知れないVimの正規表現

vim

コマンドの引数を空白で分割(ただし「\」でエスケープされている空白を考慮) for arg in split(a:args, '\%(\\\@

ctrlp.vimのExtensionを書くときに:NeoBundleLazy autoloadを考慮してg:ctrlp_builtinsをそのまま使わない

vim

ctrlp拡張を作ったら、最後にctrlpからid番号を取得してctrlpに登録することになるが、 このとき、ctrlpがNeoBundleLazy状態であるのなら、 command! CtrlPExtension call ctrlp#init(ctrlp#{extension-name}#id()) let s:id = g:ctrlp_builtins + len(g:ctr…

ctrlp.vim起動時にステータスラインをlightline.vimのものに上書きされるのを防ぐ方法

vim

以下のautocmdをvimrcに定義しておくと、lightline.vimがctrlp.vimのステータスラインを上書きするのを防ぐことが出来ます。 autocmd CursorMoved ControlP let w:lightline = 0 [注意] このautocmdはplugin/lightline.vimが読まれるより先に定義されていな…

GVimのハイライトで使える色名を色見本付きで一覧するunite-source-gvimrgb

vim

この記事は Vim Advent Calendar 2012 299日目の記事です。GVimで:highlightコマンドのguifg=guibg=引数に渡すことが出来る色名を一覧するunite-sourceを作りました。 $VIMRUNTIMEディレクトリの、rgb.txtの中にある色名リストを元にしています。:h rgb.txt …

半自動でNeoBundleLazy autoloadの設定をするプラグイン作りました

vim

この記事は Vim Advent Calendar 2012 286日目の記事です。:NeoBundleLazy に autoload機能が搭載されたのは、このAdventCalendarが始まって間もなくのことでした。 「立て!立つんだビムー!」 - sorry, unimplemented neobundle.vim の遅延処理で Vim の起…