You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
比較演算子に「#」を付けずに使用した場合は、ignorecaseの設定次第で動きが変わります。ignorecaseは、大文字小文字の区別を無視するオプションです。デフォルトでは無効になっているので、大文字小文字を区別して比較します。ignorecaseを有効にするには :set ignorecase を設定します。 ユーザの設定によって比較処理の動きが変わらないように、基本的に「#」で大文字小文字を区別するようにしておくと良いです。 バッファについて バッファはメモリ上にロードされたファイルのことです。バッファには名前と番号があり、名前はファイル名で、番号は作成された順で割り当てられます。バッファは:bwipeoutで明示的に削除するかVimを終了しない限り、メモリに残ります。 バッファの存在チェック bufexists({expr})で{expr}のバッファがあるかを確認できます。ある場
Vim Advent Calendar 2013 の 49 日目の記事です。 Vim script は行指向、もっと言うとコマンド指向の言語です。そう言った点で、シェルスクリプトに近いです。 Vim script if hoge ==# "HUGA" " if コマンド " ↓echo コマンド echo 'hi' endif " endif コマンド シェルスクリプト if [ "$HOGE" = "HUGA" ] # if コマンド then # then コマンド echo hi # echo コマンド fi # fi コマンド シェルクリプトの if なんかは if コマンドとは呼ばないかもしれないですが、そういう風にも見れるということで。 さて、行指向と言っても、1行が長くなったら途中で折り返したいものです。 シェルスクリプトでは行末に \ があると、次の行は現在の行の継続行とみ
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 Advent Calendar 2012 227日目の記事になります。 ラムダですよ!ラムダ! 例えば、Vim script でもオレオレ fold を作りたい時やコールバック関数を受け取りたい時にラムダを使いたい!!と思う事が多いです。 そんな時に reti.vim を使用すればラムダ(のようなもの)を使うことが出来ます。 また Vim script でラムダに関しては去年の Vim Advent Calendar で mattn さんが少し触れています。 モテる男のVim Script短期集中講座 - Big Sky reti.vim とはコンセプトが違いますが、こちらも読んでみると面白いです。 [インストール] reti.vim を使用します。 また、reti.vim を使用するにあたって chained.vim もインストールしておく必要があります。 osyo-
この記事はVim Advent Calendar 2012 : ATND203日目の記事になります。 今回はGoogle Chrome Developer ConsoleのようなものVim scriptにも欲しいなっと思って、 Vim scriptでのイミディエイトウィンドウっぽいのを作ってみました。 https://github.com/rbtnn/vimconsole.vim インストール インストールはNeoBundleとかでさくっとインストールしてください。 依存しているプラグインは基本的にありません。 インストール後の設定は特に必要ないです。 あえて設定するとすればウィンドウの高さとキーマッピングぐらい。 追記(2013/06/26): 設定しなくても十分使えるようにデフォルト設定していますが、設定についての詳細はhelpを参照してください。(オプションについては仕様が変わる可能
Learn Vimscript the Hard Way is a book for users of the Vim editor who want to learn how to customize Vim. It is not a guide to using Vim. Before reading this book you should be comfortable editing text in Vim and know what terms like "buffer", "window" and "insert mode" mean. The book is divided roughly into three sections: The first covers basic Vim commands that you can use in your ~/.vimrc fil
やったーこれで出来たよー。 [ソース] let g:quickrun_config = { \ "vim/async" : { \ 'command': 'vim', \ 'exec': '%C -N -u NONE -i NONE -V1 -e -s --cmd "source %s" --cmd qall!', \ "runner" : "vimproc", \ "hook/output_encode/encoding" : "sjis", \ }, \} " 非同期で実行したい Vim script で " :QuickRun vim/async " を実行 何をやっているかっていうと現在起動している Vim ではなくて、Vim 上から別の Vim を起動させてその上で Vim script を処理しています。 なので外部コマンドとして Vim script を処理し vimproc
Vim script用のテストフレームワークはVCS系のプラグイン以上に乱立している。 各フレームワークの違いが分からなくなりやすいので、ここにまとめる。 まだ内容は工事中。 基本的に、現在の Vim からの実行にのみ対応だと実装が楽で確認も容易。 ただし実行結果がテスト環境の .vimrc, plugin 環境に依存してしまう。 テスト実行後の副作用の問題もある。 コマンドラインからの実行だと、副作用はないがテストの実行が面倒である(特に Windows 環境)。 プラグインが別のプラグインに依存している場合、runtimepath の指定が大変。 テスト用の関数を登録するものは、修正後の再ロードが難しい。 フレームワークには関数系とコマンド系がある。関数系のほうが記述の自由度が高く分 かりやすいが、テストの記述は長くなりがちである。 テストの構文は大きく分けて TAP 系と Spec
let s:V = vital#of('vital') let s:L = s:V.import('Text.Lexer') let patterns = [ \ ['WHITE_SPACES','\s\+'], \ ['WORD','[a-zA-Z]\+'], \ ] let tokens = s:L.lexer(patterns).exec('hoge foo') echo tokens " [ " {'label': 'WORD', 'col': 0, 'matched_text': 'hoge'}, " {'label': 'WHITE_SPACES', 'col': 4, 'matched_text': ' '}, " {'label': 'WORD', 'col': 5, 'matched_text': 'foo'} " ] コード見てもらえればText.Lexerの使い方はわ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く