タグ

ブックマーク / thinca.hatenablog.com (21)

  • Vim Short Tips Advent Calendar を開催しました - 永遠に未完成

    全然ブログを更新しない thinca です。 さて、今年も Advent Calendar の季節がやってきました。あちこちで大量の知見が出回っていますね。 記事が増えるのはいいことなんですが、一方で私はこの流れにあるつらみも感じていました。 書くのがつらい 長編記事は書くのが大変です。いや、別に誰も長編記事を書いてくれ、とは言っていません。 しかし上がってくる記事はどれも力作。こんな流れの中、しょぼい記事は上げづらい、なんて感じたことはないでしょうか。 特に日人は空気を読むように訓練されている節があるので、ハードルが高いと感じてしまう人もいそうな気がします。というか私は大作記事は大変なのでできれば書きたくないです…。 読むのがつらい 特にこの時期に大量の記事が出回ることになるので、楽しみな反面、読むのが大変です。 途中で挫折して読むのをやめてしまったカレンダー、ありませんか。 試験的な

    Vim Short Tips Advent Calendar を開催しました - 永遠に未完成
  • vimproc に Windows の DLL ダウンロード機能を入れた - 永遠に未完成

    tl;dr 以下を vimrc の最初の方に書く。 let g:vimproc#download_windows_dll = 1 vimproc は外部プロセスを非同期実行するのに必要な Vim のライブラリ。これを利用しているプラグインも結構ある。 これはとても便利なのだけど、動的ライブラリを別途ビルドする必要がある。 LinuxMac OS X なんかの環境では、標準でビルド環境が整備されているのもあり、ここで苦労することはあまりないと思う。しかし、Windows だと標準ではビルド環境がないため、ビルドすること自体が難しい。 kaoriya 版の Vim に同梱されている vimproc には DLL も含まれているので、これを利用している人もいるのではないだろうか。 ただ、最新版が使いたかったり、複数 OS で同じ設定を使いたいという理由でプラグインマネージャで vim

    vimproc に Windows の DLL ダウンロード機能を入れた - 永遠に未完成
    homaju
    homaju 2016/08/15
    makeせずに自動ダウンロードできる
  • 'tabline' を活用しよう - 永遠に未完成

    Vim Advent Calendar 2011 の 4 日目の記事です。 タブページ Vim 7 から追加されたタブページ(いわゆるタブ機能)、使っていますか? これによって複数の画面を扱うことが容易になりましたが、タブページの恩恵はこれだけではありません。それが今回紹介する 'tabline' です。 Vim の最上部にタブの情報を表示するための領域がありますが、実はこの部分は任意に設定することが可能です。これを利用すれば、最上部に任意の情報を表示することが可能になります。 始めの一歩 - タブページを表示する まずはタブページを表示する必要があります。デフォルトでは、タブページは複数のタブがあるときのみ表示するようになっています。追加の情報を表示するのなら、常に表示されていた方が良いでしょう。 また、gVimの場合はデフォルトだと GUI でタブが表示されます。これだと 'tabli

    homaju
    homaju 2015/03/22
    vimrc読書会で知った。実施してみる
  • Vim で C# を書くなら OmniSharp で決まり! - 永遠に未完成

    Vim Advent Calendar 2012 の 173 日目の記事です。 今回は C# を書くのに便利な OmniSharp と言うツールを紹介します。これさえあれば、エディタとしての Visual Studio はもう必要ありません! 経緯 (興味ない人はここは飛ばしてインストールのところから読むと良いです) 先日、OmniSharp なるものの存在を教えてもらいました。 @thinca これってでどうなんでしょう URL 2013-05-09 23:47:26 via YoruFukurou to @thinca @mizchi お、面白そうですね!私は知らなかったです。明日あたり見てみますー。ありがとうございます。 2013-05-09 23:51:36 via tweetvim to @mizchi と言うわけで調査してみることにしました。 様々な罠にかかりつつ、ソースコード

  • Google の Vim script Guide について言っておきたいこと - 永遠に未完成

    この記事は Vim Advent Calendar 2014 の 25 日目の記事です。 Google が、様々な言語に対する自社内でのスタイルガイドを公開しているのはご存知でしょうか。C++ のものや JavaScript のものなどがあり、この辺りは割と有名かと思います。 では、Vim script のものがあるのはご存知でしょうか? Google は、Vim script について、2 つのガイドを公開しています。 Google Vimscript Style Guide Google Vimscript Guide 前者がカジュアルユーザー向け、後者がヘビーユーザー向け、といった位置付けのようです。さすが、Google がまとめているだけあって、なかなかポイントを抑えています。 ただ、これはあくまで Google が社内向けに作ったもの。鵜呑みにしてはいけない、もしくは、一般の人が

    Google の Vim script Guide について言っておきたいこと - 永遠に未完成
  • winenv.vim 作った - 永遠に未完成

    momonga.vim #2.2 で作っていたアレです。 あのあとすぐ、細かいバグを取ったりして体の実装は完了したのだけど、その後ドキュメントを書くところで面倒になって長らく放置…。 しかし日、yuk(balloon-stat)さんが、unite-winpath なるものを作ったと言う報告をされて、これはやばいと思って重い腰を上げてさっきドキュメントを書き上げてリリースしました。やはり後回しにするもんじゃないですね…。 https://github.com/thinca/vim-winenv 何をするプラグインなの? Windows を使っている人ならわかると思うんですが、Windows でグローバルな環境変数とかを設定するの、すごく面倒ですよね。Vim から編集できたら便利そうです。これはそのために便利するプラグインです。 勘のいい人は気付いたかもしれないですが、これはレジストリを操

    winenv.vim 作った - 永遠に未完成
    homaju
    homaju 2014/08/15
    環境変数を操作。権限昇格も必要に応じてダイアログが表示されるとのこと。
  • Vim プラグインを Windows 環境でテストする - 永遠に未完成

    最近は専ら Vim script 向けテスティングフレームワーク themis.vim を作っているわけですが、テストを書いたら当然実行しないと意味がないわけです。 しかし手動でテストするのは面倒。そこで CI。設定しておけばリモートのリポジトリに push した時に自動でテストを走らせてくれます。 Linux 環境用の CI サービスはたくさんあるので、Travis CI なり drone.io なり自由に使えば良いと思います。便利。 しかし Vim はマルチプラットフォーム。当然 Windows 環境でもテストしたいですよね。と言うわけで Windows 環境で CI できるサービスと、そこで themis.vim を使ってテストを走らせる設定例を紹介します。全部無料でできます。 と言うわけで CI サービス AppVeyor を使います。 Continuous Integration

    Vim プラグインを Windows 環境でテストする - 永遠に未完成
    homaju
    homaju 2014/08/12
    いつか理解したい
  • clever-f.vim を魔改造した話 - 永遠に未完成

    Vim Advent Calendar 2012 の 89 日目の記事です。 昨年、clever-f.vim と言うプラグインが rhysd(@Linda_pp) さんからリリースされました。 https://github.com/rhysd/clever-f.vim どんなプラグインかと言うと、f が便利になるプラグインです。 Vim の f はみなさんご存知ですね。f の次に入力した文字のところまでジャンプする機能です。例えば、fx とするとカーソル位置から次に見付かった x の文字までジャンプできます。l を連打するより速くて便利です。 この機能、便利なんですが、たまに誤爆します。 *clever-f.vim* or *clever-f* extends |f| mapping for more convenience. | ^今 | にいるんだけど、^ まで行きたい。fi だ! *

    clever-f.vim を魔改造した話 - 永遠に未完成
  • vimrc のどこが重いのかを調べるもう1つの方法 - 永遠に未完成

    何やら mattn さんがプラグインを書いたみたい。 Big Sky :: vimrcのどこが重いのかを調べられるプラグイン書いた。 どうやらvimrcの各行にreltimeで時間差を取るコードを埋め込んで実行することで計測している模様。 ところでVimには+profileって機能がある。これを使うとVim scriptの各行が何回実行されてどれくらい時間がかかったのか調べられる。+profileはHuge版Vimでのみ使える。 早速やってみる vimrc を計測したいのならコマンドラインから以下のようにする。 $ vim --cmd "profile start profile.txt" --cmd "profile file $HOME/.vimrc" +q && vim profile.txtprofile.txt に結果を吐き出すように設定してプロファイリングを開始し、.vimrc

    vimrc のどこが重いのかを調べるもう1つの方法 - 永遠に未完成
    homaju
    homaju 2012/03/19
    vimrcの重い場所を調べる
  • Vim の日本語 help のリポジトリ構成を変更した - 永遠に未完成

    実は私は 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 の日本語 help のリポジトリ構成を変更した - 永遠に未完成
  • Windows で Vim をソースコードからビルドする - 永遠に未完成

    7.3 の開発も始まり今もアツい Vim。先日スナップショット版のWindows用のインストーラも公開されたが、それ以降の最新の機能を試したい場合や好みの機能を入れるには、自分でソースコードからビルドする必要がある。 ただソースコードからのビルドは中々にハードルが高いので、自分へのメモの意味も込めてちょっと手順をまとめてみることにした。 開発環境を用意する ソースコードをビルドするためには、まず開発環境が必要です。 Visual C++ か MinGW をインストールしておきます。インストール方法についてはここでは省略します。 ソースコードを取得する Mercurial をインストールする 現在 Vim の最新版は Mercurial リポジトリで管理されています。なので、まずは Mercurial をインストールする必要があります。 Mercurial SCM インストールは省略。Win

    Windows で Vim をソースコードからビルドする - 永遠に未完成
    homaju
    homaju 2010/07/12
    Vim7.3のコンパイル方法
  • markdown を折り畳む - 永遠に未完成

    #Vim ftplugin/markdown.vimにh1(#)とかh2(##)をfoldする機能追加したいけど暇がないので誰かやってください 2010-03-01 23:33:49 via Termtter しょうがないなぁ。 書いてみたから、これを ftplugin/markdown_fold.vim などに置くといいよ。 ちなみにあまりテストしてないので変なところあったら教えてね。直すとは限らないけど。

    homaju
    homaju 2010/03/17
    markdown形式のメモを折りたたむプラグイン
  • Vim プラグインの開発スタイルのお話 - 永遠に未完成

    Vim のプラグインって作ってる最中は Vim 自体の動作も不安定になりがちだし、普段の環境と同じ環境で作ってるとなにかと弊害が起きがち。ちょっとした変更ならまだしも、大規模な変更は 1 度の作業で終わらないこともあるし、作業中断して別のことをやることになったりするとさらに面倒。 または、VCS でプラグインを管理したくて、プラグインごとにリポジトリを独立したいけど環境分けるのが面倒だとか。 というわけで私が普段やってる Vim プラグインの開発スタイルを晒してみようと思う。 設定 私の vimrc には最後の方に以下の記述がある。 " Load settings for each location. augroup vimrc-local autocmd! autocmd BufNewFile,BufReadPost * call s:vimrc_local(expand('<afile

    Vim プラグインの開発スタイルのお話 - 永遠に未完成
    homaju
    homaju 2010/02/17
    Vim Hack#112の内容に追加されたもの
  • quickrun.vim で非同期実行できるようにした - 永遠に未完成

    前からやりたいと思っていたのだけど、先日 ujihisa さんが correr.vim なるものをリリースして、これはこの波になるしかないと言う事で勢いで機能を追加した。 quickrun.vim 0.4.0 で使えるよ。 GitHub - thinca/vim-quickrun at v0.4.0: Run commands quickly. 使い方 前提条件 Vim が +clientserver 付きでコンパイルされている必要がある。確認するには、 echo has('clientserver') で 1 が返ってくれば OK。 さらに、v:servername に何かしら名前が入っている必要がある。 echo v:servername で、何か表示されれば OK。されない場合は Vimvim --servername VIMなどとして適当な名前を付けてやる。 複数の Vim

    quickrun.vim で非同期実行できるようにした - 永遠に未完成
    homaju
    homaju 2010/02/16
    quickrun.vimの非同期実行
  • vimrc基礎文法最速マスター - 永遠に未完成

    調子に乗って vimrc を書くのに特化した内容のものを書いてみる。取り上げた内容は完全に独断と偏見です。 関連記事: Vimスクリプト基礎文法最速マスター - 永遠に未完成 この記事では vimrc を書くにあたって知っておくべき概念や機能を解説します。Vim 自体の操作方法に関しては触れません。 基礎 バッファ バッファは、ファイルを編集するための論理的な領域です。Vim で新しくファイルを開くと、新しいバッファが作成されてそこにファイルの内容が読み込まれます。 ウィンドウ ウィンドウはバッファを画面に表示するための物理的な領域です。分割することができ、1つの画面に複数のウィンドウを表示できます。 タブページ タブページを使うことでウィンドウの配置を保持したまま複数の画面を切り替えることができます。 タブ文字と区別するためか、タブページと呼ばれています。 モード Vim の中でも知って

    vimrc基礎文法最速マスター - 永遠に未完成
    homaju
    homaju 2010/02/05
    vimrcの基本について、不完全でもremap関係の表が非常にわかりやすい
  • Vimスクリプト基礎文法最速マスター - 永遠に未完成

    流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 - Perlプログラミングの基礎から応用まで Route 477(2010-01-25) PHP基礎文法最速マスター - Shin x blog Python基礎文法最速マスター - LazyLife@Diary VBA基礎文法最速マスター - いろいろ解析日記 Java基礎文法最速マスター - いろいろ解析日記 Bash基礎文法最速マスター - いろいろ解析日記 Haskell基礎文法最速マスター - think and error Brainf*ck基礎文法最速マスター - このブログは証明できない。 VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ JavaScript基礎文法最速マス

    Vimスクリプト基礎文法最速マスター - 永遠に未完成
    homaju
    homaju 2010/02/04
    スクリプトの基礎について
  • poslist.vim - 永遠に未完成

    始まりは、ujihisaさんの何気ない一言だった。 ^で行頭に戻って その後、戻る前の場所に戻るなどしてみたいです C-oだとダメなんですよね http://lingr.com/room/vim/archives/2009/12/18#message-130965 それに Shougo さんが反応した。 maしてから移動して、`aする。 まぁ、手間は増えてしまうんですけど。 自動的に記録してくれないかなー ! できそうな気がしました。ちょっとやってみます。 http://lingr.com/room/vim/archives/2009/12/18#message-130972 で、出来上がったのが以下。 http://gist.github.com/259331 ちょっと使ってみたけど、思いのほか便利かも。で、 getposlist.vimをplugin化しました。ご自由にお使いください。

    poslist.vim - 永遠に未完成
    homaju
    homaju 2010/01/12
    移動する前のポジションを覚えておくプラグイン
  • vimrc 共有サービス vimrcbox のプラグインを添削した - 永遠に未完成

    id:kabiy が vimrcbox なるものを作ったらしい。vimrc を共有するサービス。 vimrcbox をリリースしました。 - cod.note http://soralabo.net/s/vrcb/ で、vimrcをアップロードするのに vimrcbox.vim というプラグインを使うんだけど、初めての Vim プラグインで添削募集中とのことだったので僭越ながら添削してみる。 とりあえず元ソース 多分今後更新されるので、とりあえず現時点での vimrcbox.vim " vimrcbox.vim " Author: Sora harakami <sora134@gmail.com> " Require: curl " Licence: MIT Licence if !exists('g:vimrcbox_user') let g:vimrcbox_user = '' end

    vimrc 共有サービス vimrcbox のプラグインを添削した - 永遠に未完成
    homaju
    homaju 2009/09/30
  • ref.vim 書いた - 永遠に未完成

    ref.vim なるVimで様々な言語のリファレンスを見るためのプラグインを作った。 Vim で各種言語のリファレンスを見るプラグインはすでに色々あるけど、それぞれ独立しているので操作性とかその他もろもろ統一されてなくて嫌になったので作った。 公開したのはいいけど全然作りかけです。とりあえず最低限動く感じ。 2009/08/11 追記: 肝心の公開リポジトリのURL貼るの忘れてましたorz ごめんなさい。 http://github.com/thinca/vim-ref/tree/master 現状の対応リファレンス refe (Ruby) phpmanual (PHP) あらかじめマニュアルをDLして解凍してそのパスを g:ref_phpmanual_path に設定する必要がある。 簡単な使い方 :Ref コマンド 唯一のコマンド :Ref が定義されているので、これを使います。 :R

    ref.vim 書いた - 永遠に未完成
    homaju
    homaju 2009/08/11
    統一したreference参照のプラグイン。pydoc対応に期待
  • Windowsで:set encoding=utf-8する方法 - 永遠に未完成

    Vimの'encoding'オプションはVimが内部で扱うエンコーディングを設定する。この値がcp932やsjisなどだと、ユニコード文字が表示できない。今時ユニコード文字の表示なんてメモ帳でもできる。メモ帳に負けていいのか!否! と言うわけで是非とも:set encoding=utf-8で使いたいわけだが、Windowsでこれをやるとシステムメッセージなどが見事に文字化けする*1。で、これを回避する方法*2。 言語ファイルを入手する download : vim onlineから言語ファイル(ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz)をダウンロードしてくる。 中身からja.poを取り出し、UTF-8に変換する。 ja.sjis.poもあるが、これはダメ。中にダメ文字を回避するバックスラッシュが入ってる。 Vimでやる場合は、j

    Windowsで:set encoding=utf-8する方法 - 永遠に未完成
    homaju
    homaju 2009/07/22
    内部エンコーディングをutf-8にする