タグ

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

  • 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スクリプト基礎文法最速マスター - 永遠に未完成
    hokorobi
    hokorobi 2018/02/10
  • Vim の問題を調査したときの記録 - 永遠に未完成

    先日私の環境で起きた Vim に関する問題を調査した際の記録。一例なので汎用的に使える手法ではないけど、こういう感じのことをしているよというのを書き留めておきます。 結果的に無駄だった工程も書いています。1 道で調査が進むことの方が珍しく、だいたい回り道します。 問題 「cgn で検索のマッチ対象を別のキーワードに置き換えたあと . で繰り返すと、Bell が発生する。」 cgn は c + gn で、gn は検索にマッチした範囲です。つまり検索にマッチした内容を c で書き換え、. で次のマッチ対象にも同様の変更を行います。1 つずつ確認しながら置換したい場合などによく使われる操作です。 問題について Vim では不正な操作をした場合など様々な場面で警告としてベルを鳴らします。 例えばノーマルモードでそれ以上移動できない方向に移動しようとした場合など、割と些細なことでも鳴ったりします。

    Vim の問題を調査したときの記録 - 永遠に未完成
    hokorobi
    hokorobi 2018/01/29
    verbosefile を使うことで発生箇所が特定できた。ありがたい。
  • 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 ダウンロード機能を入れた - 永遠に未完成
    hokorobi
    hokorobi 2016/03/02
  • 無料で使える CI サービス 8 個まとめ - 永遠に未完成

    CI サービスをいくつか触ってみたのでまとめ。 今回の目的は、テストを実行すること。なので、ビルドやデプロイ辺りはちゃんとは見ていない。 ドキュメントで確認しただけの項目などもあったりするので、間違っていたらごめんなさい。教えてもらえると助かります。 ただ、これは記事を書いた時点での比較で、今後のサービスの変更に対応する予定はないです。 触ってみたサービス一覧 アルファベット順。 AppVeyor CircleCI Drone IO Magnum CI semaphore shippable Travis CI wercker codeship ってのもあったけど、無料プランは月100ビルドまでとかで常用には耐えないと感じたので中身見てない。 機能比較 機能比較は全て無料プランでのもの。有料だと対応している場合でもここでは x にしている。 比較項目は私の独断と偏見で適当に選出した。 項目

    無料で使える CI サービス 8 個まとめ - 永遠に未完成
    hokorobi
    hokorobi 2015/01/12
  • 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 環境でテストする - 永遠に未完成
    hokorobi
    hokorobi 2014/08/16
  • 'cursorline' を必要な時にだけ有効にする - 永遠に未完成

    問題 Vim には 'cursorline' というオプションがある。これを有効にすると、現在カーソルがある行がハイライト表示される。カーソルの位置を見失いにくくなるので便利なオプションだ。 しかし、デメリットがないわけではない。 微妙に重い。 背景色や一部の色が上書きされるので、カーソルのある行の背景色が見えなくなる。例えば、コメント内の TODO や 'list' で表示される文字など。 そもそも 'cursorline' は常に必要だろうか。編集中にカーソルを見失うことはそうそうないはず。見失うのはちょっと席を外したり別の作業に移って、戻ってきた時だ。必要な時だけ有効にすることはできないだろうか。 解決方法 以下のような設定を行うと、しばらく手を離した時だけ 'cursorline' が有効になる。 augroup vimrc-auto-cursorline autocmd! aut

    'cursorline' を必要な時にだけ有効にする - 永遠に未完成
    hokorobi
    hokorobi 2014/06/28
  • gf-user で gf の動作を拡張する - 永遠に未完成

    Vim Advent Calendar 2013 の 114 日目の記事です。 gf の問題について gf は、カーソル下のファイルを開く便利機能です。例えば、"foo.c" とバッファに書かれていた場合、ここにカーソルをのせて gf を押すと、foo.c を開いてくれます。更に gF を使うと、"foo.c:23" みたいになっていた場合に、foo.c の 23 行目を開いてくれるので、更に便利です。 便利なんですが、これ、Windows だとうまく動きません。なぜかと言うと、Windows では 'isfname' に : が含まれているから。 'isfname' は、ファイル名として認識する文字のセットを指定するオプションで、gf はこれを使ってカーソル位置のファイルを認識します。しかし Windows ではドライブレター(C:とか)の関係で : が isfname に含まれているた

    gf-user で gf の動作を拡張する - 永遠に未完成
    hokorobi
    hokorobi 2014/03/25
  • 本当にキモい Vim script - 正規表現編 - 永遠に未完成

    Vim Advent Calendar 2012 の 339 日目の記事です。 先日、Lingr で :s コマンドの引数をパースする方法についての話になりました。 :s はご存知の通り、置換コマンドです。 :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]今回 [range] と [count] は無視するとして、それ以外の {pattern} と {string} と [flags]、あとはパターン内でエスケープされているかもしれない区切り文字(多くの場合は /) が何になるか知りたい。 結果的にできたのは以下のような正規表現です。 \v^s%[ubstitute]([\x00-\xff]&[^\\"|[:alnum:][:blank:]])(%(\\.|.){-})%(\1(%(\\.|.){-})%(\1([&cegiIn

    本当にキモい Vim script - 正規表現編 - 永遠に未完成
    hokorobi
    hokorobi 2013/11/05
  • 意外と知られていない diff に関する機能 - 永遠に未完成

    Vim Advent Calendar 2012 の 147 日目の記事です。 137 日目の tyru さんの記事で、Vim の diff 機能について紹介がありました。この記事ではもう少し細かい diff の機能について紹介したいと思います。 :diffthis 比較したい対象がファイルではない場合、例えば、外部からデータを無名バッファにコピーしてきた場合に、それらのバッファの diff を表示したいことがあります。この場合は、:diffsplit は使えません。 こういう場合は :diffthis を使います。diff を適用したいバッファでそれぞれ :diffthis をすると、実行したバッファ同士の差分を見ることができます。 これを利用した設定に、help で紹介されている :DiffOrig があります。(:help :DiffOrig) これは現在編集中のファイルと、最後に保

    意外と知られていない diff に関する機能 - 永遠に未完成
    hokorobi
    hokorobi 2013/08/13
  • vimrc基礎文法最速マスター - 永遠に未完成

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

    vimrc基礎文法最速マスター - 永遠に未完成
    hokorobi
    hokorobi 2013/05/03
  • cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成

    cmd.exe の引数の扱いがあまりにもカオスだったのでちょっと頑張って調べてみた。 来ならここは公式の資料に当たるのが正しいアプローチだと思うけど、どうしても公式の資料が見つからなかったので、色々試して推測してみることに。 断片的な資料は見付けたけど、完全じゃない。一応URL貼っておく。Windows Server 2003 のヘルプだけど、恐らくそんなに変わらないと思う。 コマンド シェルの概要 コマンド リダイレクト演算子を使用する なので、以下で述べる内容は間違いを含む可能性があります。というか正確さは一切保証されないのであしからず。 検証方法 以下のような引数をただ表示するだけの簡単な C のプログラムを用意した。仮に args.exe とでもしておく。 #include <stdio.h> int main(int argc, char const* argv[]) { in

    cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成
  • 1