Vimの起動にかかる時間は本来すごく短い。しかし使い方によっては長く(遅く)なってしまう。そうなる原因と対策を紹介する。 Vimは起動にかかる時間が短いソフトウェアです。この言葉に納得できない人はこの文章の残りをちょっと読んで行きませんか? 「Vimの起動、長い(遅い)なぁ」と感じているあなた、その原因が何か調べたことはあるでしょうか。Vimが遅くなる原因の95%はスクリプトの読み込み&実行にあります。「autoload化する」「–startuptimeを使ったことがある」?なかなかやりますね。でもautoloadは単に遅延させるだけで結局かかる総時間はかわりませんし、startuptimeで主にわかるのは各スクリプトの読み込みにかかった時間です。そのスクリプトがなぜ遅くなっているのか、どうすると速くなるのかを紹介しましょう。 遅くなる原因 回りくどいのはここまでです。遅くなる原因を列挙し
vim script では、次のように {} 内を評価して変数名を定義することが出来ます。 let s:hoge = "foo" let s:foo{s:hoge} = "foofoo" echo s:foo{s:hoge} " => foofoo echo s:foofoo " => foofoo これは変数名だけではなく、関数名にも適用することが出来ます。 let s:hoge = "foo" function! s:func_{s:hoge}() echo "func_foo" endfunction call s:func_foo() " => func_foo で、これを応用して、関数のオーバーロードのような定義を書いてみました。 [ソース] let int = type(0) let string = type("") " int のみ function! s:disp{int
実は私は Vim の日本語のヘルプのメンテナンスのお手伝いをしていたりするわけですが(と言っても翻訳はほぼ終わってるので typo 修正とかがメインですが)、この度 help のリポジトリの構成を変更しました。 以前はリポジトリのデータを使うのに make とか必要だったわけなんですが、pathogen.vim 全盛期ではそれも不便だろうということで、リポジトリのデータを直接使えるようにしました。 てわけで、pathogen.vim とか Vundle とか rtputil.vim とかを使ってる人はおもむろに svn checkout http://vimdoc-ja.googlecode.com/svn/trunk/runtime ~/.vim/bundle/vimdoc-jaとかするといいです。以後は svn update で更新できます。 あ、あと日本語 help に間違いを見付け
ライツアウトっていうのはパズルゲームです.なんじゃそれって思うかもしれませんがおそらくこの説明読めば多くの人は知ってるんじゃないでしょうか. ここ最近全然vimに触ってないなーとか思ってたのですが,@thinca さんが game.vim とか発言しててたのでついカッっとなって作りました.正直できると思ってませんでしたが普通にできましたw GitHub - mmisono/lightsout.vim: Lights Out on vim iterm2上のMacVimでの写真です.Vimのシンタックスハイライトは優秀ですね♪ 操作方法は, :LightsOut で開始, hjkl で移動 x で反転 です. 別にとくにたいしたことはしてませんが反転処理はかなりキモイw まぁなんか普通にもっといろいろ作れそうですね. というか今死ぬ程忙しいのに何してるんだろう…
A. 喧嘩すんな 僕自身,Vim も Emacs も両方使ってる人なので,どちらかを本尊として奉る行為がどうにも理解できないところがあります.(そして両方の宗派から殺されるのだろう,およよ…) 自分の場合, Emacs - 「白紙からファイルやテキストを書きあげる時とか Lisp/Scheme を書く時」 Vim - 「既にあるていど書かれたファイルを編集する時,{HTML CSS JavaScript} や,.elisp よりもシンタックスハイライトやインデント処理が良い .vim がある場合」 とかで使い分けてます.Emacs はライター,Vim はエディター,って感覚. 新規でモノを書く時って,Vim における Insert mode でいる時間が長い上にちょくちょく hjkl したくてかったるい時あるし,既にファイル書いてサーバ上で動いてる conf や xml を弄る
Posted on September 6th, 2011. A while ago I wrote a post about switching back to Vim. Since then I've written two plugins for Vim, one of which has been officially "released". A couple of people have asked me if I'd write a guide to creating Vim plugins. I don't feel confident enough to write an official "guide", but I do have some advice for Vim plugin authors that might be useful. Other People
どんなソフトにもバグあって、ユーザからの報告によって直って行くんだけど バグ報告したいけど英語が苦手 解析出来ない 再現が難しい といった問題がバグ報告への足枷になっている事実は否めません。 そこでgithub上にvim-users-jpというorganizationを作成しました。 vim-jp/issues - GitHub 有識者で既知のバグを管理しオフィシャルへのマージを検討します https://github.com/vim-jp/issues/issues issuesを開放していますので ぜひ日本語でバグ報告 して下さい。 githubのアカウントは必要になりますが、少しはバグ報告への障壁が減るかと思います。 誰かが解析してvim-devにバグ報告してくれるかもしれませんし、patch付きで報告されて瞬時に直るかもしれません。 既に幾らかissuesに登録されています。これを
はてなには「はてなアイデア」という要望を提案する機能があると知ったので,幾つか要望を出してみました. はてなアイデア はてなアイデア 前者は C++ のシンタックスハイライトを C++11 に対応させてほしい,という要望, 後者は <code>some_function();</code> という記述を ``some_function();`` と書けるようにして欲しい,という要望です. どちらも,普段から「こんな機能があるといいな」と思っていたものなので,是非とも採用してもらいたい所. とはいえ, はてなアイデア日記 を見ると,どうやら はてなアイデアはロクに機能していないようなので, 実際に要望が通るかどうかは,あまり期待できそうにないです….
logcat は、Android のログを出力するためのツール。実行すると接続した Android 端末のログをもりもり吐く。もちろんファイルに保存もできる。Android 開発のデバッグのお供だ。 で、このログなんだけど、ログは重要度でレベル分けされてて、標準の GUI のログビューアなんかでは色分けされて表示される。見やすい。 でも GUI だと検索もあまり柔軟にできないし、logcat コマンドはテキストで出力するわけなんだからテキストで見たいわけです。てか GUI のビューア立ち上げるとかめんどい。 そこで登場するのが logcat.vim。要は syntax ファイルです。 https://github.com/thinca/vim-logcat 機能 各種ログフォーマットに対応 brief process tag thread time long rawはない。てか無理。 フォ
Vim の help は通常 modeline などによって閲覧に最適なようにオプションが設定される。しかし編集したい時には困ることがある。というわけで全ての Vim プラグイン作者*1は以下のような設定を入れるといいと思うよ! " after/ftplugin/help.vim if &l:buftype !=# 'help' setlocal list tabstop=8 shiftwidth=8 softtabstop=8 noexpandtab textwidth=78 if exists('+colorcolumn') setlocal colorcolumn=+1 endif if has('conceal') setlocal conceallevel=0 endif endif 以前もちらっと書いたのだけど、'buftype' の値を見て編集中なのか :help で閲覧中な
### 問題 ある程度 Vim を常用していると、それなりの頻度で以下のような問題に遭遇します: * HEAD を追いかけていたら手ひどいミスに遭遇した。少し昔のパッチレベルにまで巻き戻したい。 * [最近のバージョンに更新したらプラグインの動作が変わった](https://github.com/kana/vim-textobj-user/pull/3)。どのパッチレベルで問題が起きたか調べたい。 * そもそも最近のバージョンに更新するのが何だか面倒。 * 複数のバージョンを並行して利用できるようにしたい。 しかしこのようなことを手動で管理するのは面倒です。 どうにかしてこのような作業を簡単に行えないものでしょうか。 ### 解決 [Vim Version Manager](https://github.com/kana/vim-version-manager) (以下 VVM)を使います
ref.vim に標準添付の alc.vim を参考に、オンラインの英英辞典を引く source をいくつか作ってみました↓ ▲ ref-answers Answers.com: Wiki Q&A combined with free online dictionary, thesaurus, and encyclopedias ▲ ref-hyperdict Online Dictionary - HyperDictionary.com 英語でドキュメントを書くときは Google翻訳かエキサイト翻訳、ref-alc のお世話になりっぱなしで、実のところ英英辞典など使ったことなかったりするのですが、もっとマシな英語を書けるようになるためにも、Vim で英英辞典をさくっと引けた方がカッコいいと思い、ちょっと背伸びしてみました(笑) 正直なところ、英英辞典の良し悪しなどわからなかったりするの
This is Joey (I know, ugly dude, right?) Joey DO YOU? If so, would you be interested in participating in an online, live streamed conference with other Vim geeks? Is this something you'd want to join and/or help out with organizing? Some ideas: Vim 101 sessions for those new or interested in Vim Sessions on various Vim techniques for beginner/intermediate alike Workflow sessions showing what a da
前回の内容より続きです。 vimshellで実際にプログラムを実行する vimshellの基本機能を理解したところで、実際にコードを書いて実行してみましょう。 今回使用するコードは特に意味はないC言語のコードです。内容には一切の突っ込み禁止です。 とりあえず以下のようなテストコードを用意しました。 #include <stdio.h> int main () { int i = 0; i = 3; if (i == 3) { i = 4; } i *= 2; for (i = 0; i < 5; ++i) { printf("i = %d \n", i); } } なんの変哲もないただのC言語プログラムです。 別に必要ないけどMakefileを書いておいてgccでmakeしましょう。 おもむろにvimshellを呼び出し、makeと入力してビルドを確認します。 MinGWのgccを使ってビ
vimshellとはVimプラグインのひとつであり、Vim上でその名の通りshellを使えるようにするプラグインである。 作者はneocomplcacheでも有名なVimmerのShougoさんであり、その他にもとても優秀なプラグインを開発されております。 今回はvimshellを使うことにより、何が素晴しいのかを焦点にあてて説明したいと思います。 vimshellを使用するために 当然プラグインをインストールする必要があります。 ここでは細かい説明は省くとするのでインストールは各自で調べてみてください。 vimshell また、vimshellの動作にはvimprocが必須です。こちらも合わせて導入してください。 vimproc vimshellと連携するプラグイン vimshellはそれ単体でも非常に有用ですが、今回はそれだけではなくneocomplcacheとunite.vimもイン
去る2010年4月。私の手元で燻ってた ambicmd.vim ってプラグインをとある経緯で gist に貼ったんだけど、その時は何人かでちょっとだけ触ってそのまま放置。 しかし私自身は今でもこのプラグイン使ってるし、埋もれたままなのももったいないので整理してちゃんと公開することにした。 https://github.com/thinca/vim-ambicmd 何をするプラグインか 長いコマンド名を個別の設定なしで入力するためのプラグインです。例えば vimrc には以下のように設定します。 cnoremap <expr> <Space> ambicmd#expand("\<Space>") cnoremap <expr> <CR> ambicmd#expand("\<CR>") こうすると、<Space> や <CR> を押したときに直前のコマンドを特定のルールに従って展開しようとしま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く