cafegale(LeafCage備忘録)

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

vim

グローバル変数などでディレクトリを指定する時には末尾に「/」を付けない

vim

Vim script plugin作成時において、ディレクトリをユーザに指定させる変数を用意する時に、 let g:foo_dir = '~/foo/bar/' これは良くない。 なぜなら、mkdir(expand(g:foo_dir), 'p')をするとエラーになるからである。 mkdir()に通すなら、実行時に末尾の「…

uptodate.vimでもっとお手軽にオレオレライブラリ

vim

この記事は Vim Advent Calendar 2012 223日目の記事になります。 222日目はもぷりさんのもぷろぐ: あなたの Vim は もっと Smart に Input できるでした。 224日目は@BOXPさんのVimでClojureする時のあれこれ - はこのLINUXです。Vim scriptを作り続けてい…

折り畳み嫌いの男が一夜でFolding freakにまでなった話2

vim

この記事はVim Advent Calendar 2012の144日目の記事です。前日はujihisaさんによる動画Gitのログをいい感じに読むGitLogViewerを用いてneosnippetやneocomplcacheの更新を追うなどする (vim's podcast)でした。ごぶさたしておりますVimmerのみなさまいかが…

exeを使わずにコマンド内で変数などを展開する方法

vim

よく忘れるのでメモ :edit `=var` exe 'edit' varではない http://lingr.com/room/vim/archives/2013/03/04#message-14188875ただしwildignoreが適用されるので、結局exe使った方がいい。 くやしいのぅ。

zj zk を少しは使える子にする

vim

折り畳みコマンドの中で、使えるか使えないか微妙な位置にあるバインドにzj zk (次の折り畳み・前の折り畳みへジャンプ)がある。 どの辺が微妙かというと、移動コマンドにやがあって、それで十分だからだ。 折り畳みのブラウジングに取り立ててzj zk を使う…

vimコマンドラインに表示されるものをクリップボードに収める方法

vim

今のところ、 :redir @* してから、目当てのコマンドを実行し、最後に :redir END する方法しか知らない。 もう少し簡潔に出来る方法を知りたい。

'iskeyword'とは何なのか

vim

Vimには'iskeyword'というオプションがあり、バインドw b eなどでのカーソルの動きや* ^]でのジャンプの際の単語の認識に利用されている。 個人的にはw b eでのカーソル移動と* ^]でのキーワードジャンプは全く用途が違うので別のオプションに分けておいてほ…

zkで折り畳みを移動する時、折り畳み尻ではなく折り畳み頭にジャンプする関数

vim

Vimのバインドzj zkで次の折り畳み、前の折り畳みにジャンプすることができるが、zjはまだ良いとして、zkは折り畳みの末尾にジャンプする。 これではもし移動先の折り畳みが折り畳まれていた場合、一体どこにジャンプしたのか分からない。 尻ではなく頭にジ…

arpeggio.vimの設定例

vim

kana/vim-arpeggio · GitHub は同時押しをサポートするプラグイン。 設定するには arpeggio#map()関数を使うか、Arpeggiomap コマンドを使う。 ただし、Arpeggiomapコマンドをvimrc内で使うためには、その前に以下の関数を呼ばなければいけない。 call arpeg…

veek.vimという、変数などの値記録プラグインを作った

vim

Advent Calendar の時期なのにもかかわらず、平常エントリですよこんばんは。こんなん作った。 LeafCage/veek.vim · GitHub簡単に言うとデバッグの時に使う、変数とかechomsgみたいなもの。 以前、専用関数で記録するタイプの同じようなプラグインを作って大…

:global をもっと使おう! :Re Vimらしい操作性について

vim

極論を言うとVimに対話性はほとんどないと思われます。Vimは「最初からやりたいことが明確である場合」には強力な道具が揃っています冒頭のKoRoNさんも「:global使って全体に繰り返し操作(.)すればだいたい事足りそう」と言っているように最終的なアウトプッ…

operator-replaceとビジュアルモードpの使い分け

vim

kana/vim-operator-replace はオペレータ選択した範囲をレジスタ文字列に置き換えるプラグイン。 一つ単語を別の単語に置き換える時に重宝するが、置き換えられる時に代わりに削除された文字列はレジスタには残らないという特徴がある。一方、ビジュアルモー…

いわゆるキーマクロ機能を名前を付けてコレクションして管理するunite-source作りました

vim

(※この文章はバージョン0.1.0です。後に加筆修正される可能性があります。) Vimにはq{0-9a-zA-Z"}で開始して再びqを押すと終了し、@{0-9a-z".*=}で再生するRecordingという機能があります。これは連番の入力や複数行の整形などを行う時などに役立ちます。 Vi…

最近作ったVimプラグインrevolver, win-shujuukankei, textsquash

vim

3つくらいVimの新しいプラグインを作りましたのですごく適当に紹介します。 詳細は各プラグインのヘルプファイルにて。 LeafCage/revolver.vim 新しくマークやレジスタを変更する度に古い内容を一つずつずらして記録し直したり、使う文字を一つずつずらして…

vimのcolについて

vim

colは1から始まる インサートモードではcolはそのままカーソルの位置を表す aiue|oの場合(|がカーソル位置)、colは5である。ノーマルモードの場合 colはカーソル■の左辺を表す。 aiu■oの場合(eと■が重なっている)、colは4である

vital.vimで勝手ライブラリを管理する

vim

http://lingr.com/room/vim/archives/2012/07/15#message-10711008手順 vital.vim/autoload/vital/__latest__/以下にlclibディレクトリを作った lclib/以下にvital.vim のモジュールの作り方 - 永遠に未完成を参考になんか色々置いた vital.vim 近況 - 永遠…

Vitalizer利用記録

vim

lingrのログData.Listモジュールをインストールしたい :Vitalize $VIM/vimfiles/bundle/syster Data.Listlet s:Vital = vital#of('syster') let s:Vital_Data_List = g:syster_vital.import('Data.List') echo s:Vital_Data_List.uniq([1,2,3,4,3,2,1]) また…

Vimのsign機能を活用してバッファにsignを簡単に置けるプラグイン作りました

vim

以前作って頓挫したマークプラグインAltMarksの改良版です。 signを主体に使います。動作イメージ このようにファイルに数種類のsignを置くことが出来ます。 (ハイライトされているのがsign。) 想定シーン デバッグ時の目印や、プレゼン時の重要部分強調に…

Vim用の簡易デバッグツール(変数覗き見ツール)lcpeek作りました

vim

VimScript書く人にしか意味がないです。ある時点の変数の値を記録して、変動の様子を調べるときに使います。 変数を覗き見するしょぼいことしかできません。 Step IntoとかStep OverとかStep Returnとかそんな高度なこと出来ません。 ていうか本当はデバッグ…

Vimコメントアウトプラグイン

vim

tyru/caw.vim scrooloose/nerdcommenter tomtom/tcomment_vim

'tabline'を活用してみた

vim

'tabline' を活用しよう - 永遠に未完成 を見て、前々からやろうとしていたtablineの改修を、昨日終わらせた。 左に各タブ、右にカレントフォールディング、カレントディレクトリを表示。 set guioptions-=e "tablineを使う set tabline=%!MakeTabLine() fun…

折り畳み嫌いの男が一夜でFolding freakにまでなった話

vim

続編→折り畳み嫌いの男が一夜でFolding freakにまでなった話2 - cafegale Vim Advent Calendar 2011 23日目天皇誕生日担当は私@LeafCageです。 みなさん折り畳み(Fording)は使ってるでしょうか? 私は折り畳みが嫌いでした。折り畳みがダメな理由は大きく2…

Markdown形式ファイルをquickrun.vimで確認する

vim

参考 Vim-users.jp - Hack #230: Markdown形式の文書を書く2 (quickrun0.5.0対応版)環境 WindowsXP sp3 今回はパーサに高速なkramdownを使うことにする。 RubyForge: kramdown: ファイルリスト 1.kramdown-0.13.3.gemをダウンロードする 2. gem install kram…

vimのcolorschemeを変更したときの不満点とその解消の計画

:colorschemeやUnite-colorschemeやGUIメニューでcolorschemeを変更したときに生じる不満 不満点 補完がしばしばvimデフォルトのショッキングピンク IMEがオンになるとカーソルの色を変更する設定がリセットされる ビジュアルモードの選択の色が気に入らない…

neobundeを入れると日本語ヘルプが読めなくなる

vim

※追記:この問題は7.3.336で修正されているようです。 vim-jp » タグ検索でハングしていた問題が修正されました。私の環境では以下のプラグインをNeoBundleで管理すると日本語ヘルプが読めなくなります。 これらのプラグインの共通点は日本語ヘルプが充実し…

neobundleを使うことに挑戦

vim

Vim#10にてneobundleが紹介されていた。 私はpathogenで満足していたので、特に必要性を感じなかったし、なんだかややこしそうだったので敬遠していたが、どうやらGitHubと連携できるようなので、これを機会に試してみることにした。今までのインストール/ア…

Windowsでref.vimを使えるようにする。

vim

Windowsの場合 Lynx for Win32から「Lynx286rel4THjp.exe 日本語環境用設定版 インストーラ」をダウンロードして、適当なディレクトリにインストールする ここでのインストール場所ではLynxを使わないのでどこでもおk インストール完了後、一度Lynxを起動し…

削除したバッファを候補とするunite-source

vim

LeafCage/accessories_in_Vim - GitHub :Unite buffer_deleted で動く。 g:unite_source_buffer_deleted_ignore_patternsリストに無視したいbufferを正規表現で指定する (初期値:['\[unite]','lingr-rooms','lingr-say','\[vimshell]']) 課題 vimを終了す…

textobj-indentはインデント使い必携

vim

個人的にこのやり方を使わない理由しかしはoperatorなので、ヴィジュアルモードでしか使わないのはもったいないです。 よって自分はヴィジュアルモード以外で>を使うことが多いのであまり使いません。 たとえば、textobj-indentをインストールしていれば >ii…

vimのレジスタ履歴機能unite-history/yank

vim

先日vimのレジスタが使いづらい事について嘆いていたが*1、 unite.vimの標準sourceにhistory/yankという、ヤンクされたテキストの履歴を取ってくれるものがあることに気付いた。これで、.vimrcに let g:unite_source_history_yank_enable =1 "history/yankの…