vim

vital.vim 近況

vim

vital.vim について、近況をつらつらと書きます。 vitalizer の追加 vital.vim をプラグインへ組み込むことを vitalize と言い、これを行うものを vitalizer と呼ぶことにしています。 以前は vitalize.rb と言うのがあったのですが、この度 pure Vim script…

editvar.vim に unite-variable を追加した

vim

そのうちやろうと思っていたんだけど、最近こんなものを見付けたので、触発されてやってみた。https://github.com/thinca/vim-editvarついでにあれもこれもとやってたらなんか色々おかしなことに…。 unite-variable 追加。 edit はもちろん、delete(:unletす…

$this-> をラクに入力する

PHP 書いてると、$this-> をよく書く割に Shift を 2 回も使わないといけなくてすごく書きづらい。 あまりに書きづらいので @ で $this-> を出すようにした。確か PHPer って @ は滅多なことがないと使わない*1んだよね。 " after/ftplugin/php.vim inoremap <buffer></buffer>…

singleton.vim 作った

vim

Vim を 1 つのインスタンスだけで使うためのプラグイン、singleton.vim ってのを作った。 初期版を書いたのはずーっと前だったんだけど、整理しきれてなかったのを最近になってようやく公開できそうな感じにした。 多重起動を避けるって意味では、--remote-t…

Re: listchars=trail:$してたら気持ち悪いのでbuffer保存時に行末スペースを削除するようにした

vim

コメント書こうかと思ったけど長くなりそうなのでこっちに。listchars=trail:$してたら気持ち悪いのでbuffer保存時に行末スペースを削除するようにした - 日々是鍛錬コード転載。 command! -bang -bar -complete=file -nargs=0 DeleteSpaceEachLine \ execut…

Vital.DateTime 書いた

vim

前々から、あったらいいなーと思ってたので、vital に DateTime ってモジュールを書いた。名前の通り、日時を扱うライブラリ。 日付の取り扱いは面倒なことは容易に想像できたけど、やはりすごく面倒だった…てかまだあちこち未完成。 とりあえず簡単に使い方…

スクリプトローカルな関数を手軽に呼び出す

vim

この記事は Vim Advent Calendar 2011 の 28 日目の代打です。 急遽代打をやることになった*1けどネタが浮かばなかったので、適当に vimrc の中から便利かもしれない関数を晒すことにします。 スクリプトローカルな関数を呼び出したい Vim script を書いてる…

opener.vim と言うのを作ろうとして諦めた話

vim

昨日の続き。 Vimperator に opener.js と言うプラグインがある。タブを開こうとした際に、すでに開いていたらそちらに切り替えるプラグインだ。 Vim で、これと似たようなことをする :Opener みたいなコマンドを作ろうと思った。想定する用途として、 :Open…

ユーザ定義コマンドのスコープ

vim

問題: 以下のVim scriptを実行すると何が表示されるか。 command! -nargs=+ MyEcho echo <args> let g:var = 'global' function s:f() let l:var = 'local' MyEcho var endfunction call s:f() 答え: "local" そう。ユーザ定義コマンドは関数内で実行された場合そ</args>…

'tabline' を活用しよう

Vim Advent Calendar 2011 の 4 日目の記事です。 タブページ Vim 7 から追加されたタブページ(いわゆるタブ機能)、使っていますか? これによって複数の画面を扱うことが容易になりましたが、タブページの恩恵はこれだけではありません。それが今回紹介する …

editvar.vim 作った

vim

昨日諸事情があって editvar.vim と言うのを作った。 で、せっかく作ったのであの後体裁を整えてちゃんとプラグインとしてリリースした。https://github.com/thinca/vim-editvarEmacsテクニックバイブルで edit-list.el なるものがあることを知って、同じも…

ujihisa.vim #2 に行ってきた

恐らく過去合わせて国内最大のVimイベント、ujihisa.vim #2 に行って来たよ。 私は完全にただの参加者のつもりで行ったんだけど、なぜか発表することに。どうしてこうなった。 まったく準備していなかったので、その場で editvar.vim って言うプラグイン作り…

partedit.vim 作った

vim

遥か昔に partedit.vim というバッファの一部分を別のバッファで編集するためのプラグインを密かに作っていたのだけど、色々あって作ったまま放置されていた。 で、作ったのはいいけど自分ですら使ってなくて正直使い道あるのかとか思ってたんだけど、世の中…

auto_source.vim 作った

vim

auto_source.js っていう vimp プラグインがあるんだけど、これの Vim 版が前から欲しいと思ってたので作ってみた。https://github.com/thinca/vim-auto_source指定したファイルが更新されてたら自動的に :source する。ただそれだけ。実際には CursorHold …

yokahama.vim #2 に行ってきた

性懲りもなく yokohama.vim #2 に行ってきたよ。 @tsukkee さんの発表「キーマッピングを考える」(資料) 発表は Vim。さすがです。 キーマッピングのお話。こういう help に載っていないようなノウハウはもっと必要なんだろうなぁと感じた。 Shougo さんのフ…

Vim の本が出るらしいです

vim

タイトルが完全に他人事な感じの thinca ですこんばんは。 さて、件の Vim の本、もとい、Vim テクニックバイブルですが、いよいよ来週の 23 日金曜日に発売のようです。なんかすでに先行販売とやらで一部の方はすでに手に取って頂いているようで発売日の意…

Vim の日本語 help のリポジトリが github へ移った

vim

先日Vim の日本語 help のリポジトリ構成を変更したわけですが、その後、今回の変更を受けてかどうかはわかりませんが @mattn_jp さんの提案でリポジトリを github へ移すことになりました。https://github.com/vim-jp/vimdoc-ja最近 mattn さんが作った git…

Vim の日本語 help のリポジトリ構成を変更した

vim

実は私は Vim の日本語のヘルプのメンテナンスのお手伝いをしていたりするわけですが(と言っても翻訳はほぼ終わってるので typo 修正とかがメインですが)、この度 help のリポジトリの構成を変更しました。 以前はリポジトリのデータを使うのに make とか必…

logcat.vim 作った

vim

logcat は、Android のログを出力するためのツール。実行すると接続した Android 端末のログをもりもり吐く。もちろんファイルに保存もできる。Android 開発のデバッグのお供だ。 で、このログなんだけど、ログは重要度でレベル分けされてて、標準の GUI の…

Vim プラグインのヘルプを書く人がするべき設定

vim

Vim の help は通常 modeline などによって閲覧に最適なようにオプションが設定される。しかし編集したい時には困ることがある。というわけで全ての Vim プラグイン作者*1は以下のような設定を入れるといいと思うよ! " after/ftplugin/help.vim if &l:bufty…

ambicmd.vim をリリースした

vim

去る2010年4月。私の手元で燻ってた ambicmd.vim ってプラグインをとある経緯で gist に貼ったんだけど、その時は何人かでちょっとだけ触ってそのまま放置。 しかし私自身は今でもこのプラグイン使ってるし、埋もれたままなのももったいないので整理してちゃ…

quickrun.vim の隠し機能

vim

help には載ってない quickrun.vim の隠し機能について説明してみます。 ちなみに help に載ってないのには一応理由があって、面倒くさいから正式な機能として公開する予定がないからです。つまり、今後予告なく変更される可能性があります。今のところその…

私の開発している Vim プラグインの名前

vim

多分ブログでは1度も書いていなかった気がするので、ここらで明言しておきます。 私の開発しているプラグインの正式名称は、xxx.vim の形式です。つまり、 quickrun.vim ref.vim localrc.vim visualstar.vim rtputil.vim scouter.vim prettyprint.vim など。…

ユーザ定義コマンドで [range] が与えられたかどうかを調べる方法

vim

最近発見した方法。 基礎知識 ユーザ定義コマンドを定義する際、-range= 引数を使うことで :[range]Command のように [range] を受け取ることができるようになる。 指定の仕方で無指定の場合のデフォルト値が変わり、-range で現在行、-range=% でファイル全…

第4回 sugamo.vim に行ってきた

第4回 sugamo.vim に行ってまったりしてきた。@sigwyg さんによる vimrc と入れているプラグイン紹介。以下走り書き。いろいろ端折ってるので注意。 surround.vim どこまでが組み込みの textobj でどこからが surround.vim の機能かわからなくなる。 snipMat…

quickrun v0.5.0dev 公開した

vim

ずっと裏でごそごそやってた quickrun v0.5.0 の dev バージョンをようやく公開したよ!変更点多すぎるので別ブランチで。 互換性のない変更が多々あります。注意。さらに、とりあえずベース部分が落ち着いたので公開したけど今後もリリースまでに非互換の変…

foldmethod=expr が重い場合の対処法

vim

この前vim_fold.vim 作ったんだけど、これが結構重い。 foldmethod=expr ではその性質上折り畳みレベルを計算するために該当関数が全行に対して呼ばれる。行数が多ければ当然重くなる。呼び出されるタイミングについては help に明記されていないのだけれど…

vim_fold.vim 作った

vim

Vim script には今まで fold marker を埋め込んでいたのだけど、毎回埋め込むの面倒だし、見た目もあまりイケてないので foldexpr で折り畳むことにした。https://github.com/thinca/vim-ft-vim_fold 折り畳まれる箇所 function 〜 endfunction augroup 〜 a…

ujihisa.vim に行ってきた

ujihisa.vim に行ってきた。以下てきとーなハイライト。発表タイトルは覚えてないのでこれまたてきとーです。 shadow.vim - ujihisa @ujm shadow.vim の紹介。 vimrc を disる - @kana1 @_udonchan before: https://gist.github.com/971916 @sora_h before: …

Vim のバグっぽい挙動

vim

私が今のところ把握している Vim のバグっぽい挙動。本当は vim_dev に投げるべきなんだろうけど英語書く気力とか能力とかもろもろがないのでメモ代わりにとりあえずここにまとめておく。 buftype=acwrite なバッファでの undo 通常のバッファで undo を行う…