Vim
QuickBuf を入れました。以前は fuf.vim やproject.vim を使っていましたがなんだかんだで最近は :ls で一覧表示してバッファ番号で選択していました。 vim.org のスクリプトファイルを wget でダウンロードする vim.org から wget でスクリプトファイルをダ…
Vim 7.3 をソースからインストールする手順。 $ sudo yum install ncurses-devel $ wget http://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2 $ tar xjvf vim-7.3.tar.bz2 $ cd vim73 $ mkdir patches $ cd patches/ $ curl -O 'http://ftp.vim.org/pub/vim/pa…
カーソル下の単語を snake_case や camelCase などに順次変換する Vim プラグインを書きました。 実行例 例えば getElementById という単語の上にカーソルがある状態で :call ToggleCase() を実行すると下記の順に記法が切り替わります。 GetElementById get…
JavaScript の関数に JSDoc 形式のコメントを追加する Vim スクリプトを書きました。 tanabe/WriteJSDocComment.vim - GitHub 実行例 JavaScript の function が書かれている行にカーソルがある状態で :call WriteJSDocComment() を実行すると下記スクリーン…
CentOS に jslint.vim を入れました。コーディング中にリアルタイムで文法チェックをしてくれます。それほど重くもないですし便利です。 インストール JavaScript のインタプリタ (SpiderMonkey、Rhino、node.js) が必要なのでインストールはそこから。CentO…
ターミナルの Vim で「■」や「●」といった記号を入力すると、記号が半分になったりカーソル移動ができなくなったりと色々面倒な現象が起こります。これを解決するには .vimrc に以下を記述します。 if exists('&ambiwidth') set ambiwidth=double endif ambi…
actionscript.vim と neocomplcache を同時に導入すると、キーワード補完が全て小文字になる不具合が発生します。 これは actionscript.vim 内に書かれている、 syn case ignore この一文が問題のようです (neocomplcache の Wiki より)。 使いづらいので修…
モードラインを使用すると、個別のファイルごとに Vim の設定を書くことができます。 例えば、拡張子は .html でも中身は PHP スクリプトという場合、ファイルを開く度に :se fenc=php と入力せずに済みます。 モードラインの書き方 行頭か行末にそのファイ…
pathogen.vim を導入しました。 ごちゃっとしていた plugin ディレクトリがかなりスッキリしました。読み方はパソゲン? インストール方法 pathogen.vim をダウンロードします。 $HOME/vimfiles/autoload (Mac/Linux は vimfiles → .vim) に pathogen.vim を…
問題 コピペしてきた幾つかの数字の合計を求めたい。 解決方法 Excel を使う。 …では面白くないので、折角だから Vim で。 Perl のインタフェースを使って泥臭く書いてみました。 :perl $a=0;for($i=1;$i<=$curbuf->Count();$i++){$a+=$curbuf->Get($i)};VIM…
Vim で一行が長すぎる (約3000 文字以上) の XML や HTML を開くとカーソルの移動が重くて使い物になりません。シンタックスハイライトが原因のようです。 解決方法 幾つか方法がありますが、ファイルを書き換えてもよいのならば 2 番目が妥当だと思います。…
全ての行を削除するときは :%d 上記のコマンドを入力していましたが、 gg d Shift-G こちらの方が左手だけで完結するのでよさげ。
開いたファイルによってよしなにインデントのスタイル (タブ or スペース) を切り替える VimScript を書きました。職場ではプロジェクトによってインデントのスタイルが異なったりするので、個人的には重宝しています。 ソースコード tanabe's AutoSetIndent…
Vim script の勉強ということで、数当てゲームを作ってみた。プラグイン作成までの道のりは長い…。 let n = 9 let temp = matchend(reltimestr(reltime()), '\d\+\.') + 1 let b:answer = reltimestr(reltime())[temp : ] % (n + 1) function! WaitUserInput…
現在編集しているファイルのディレクトリに移動するキーマッピングを設定した。 nnoremap e :Explore
.as のテンプレート周りをさらに改良。XxxEvent.as のように Event.as で終わるファイル名ならば Event クラス用のテンプレートを読むようにした。 gvimrc au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1…
以前設定した、テンプレートを適用する設定を強化して、クラス名 = ファイル名になるようにした。 gvimrc au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1) && (match(getline(1), "^$") == 0) "Windows 0…
XML/HTML コーディングに便利なテキストオブジェクト it/at を知った。 例えば <p>hogehoge</p> の hogehoge を削除したい場合は dit で。
textobj-indent を入れた。 function hoge():void { if (true) { foo(); bar(); } } カーソルが if の行にある時に vai と入力すると if 文のブロックが選択される。vi{ より入力しやすい。 インストール方法 textobj-user を入れる textobj-indent を入れる…
Vim で HTML を編集していて、タグの属性に「半角スペース + 全角丸カッコ」を入れたら ii や jj に変換されてしまう。 <img alt=" (" /> と入力したのに <img alt=" ii" /> となる…。どのプラグインが原因なのだろう。 追記 半角スペースではなくとも、「全角開き丸カッコ + 半角英数字二文字…
空の .as ファイルを開いたときにテンプレートを読み込むようにした。 :he skeleton :he au を参考。 Vim スクリプト au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1) && (match(getline(1), "^$") == 0)…
Vim で F5 を押したときに FlashDevelop でパブリッシュが実行されるようにした。 autocmd Filetype actionscript nnoremap <buffer> <F5> :!start "wscript.exe" "C:/path/to/publish.js"<CR> publish.js var oShell = WScript.CreateObject("WScript.Shell"); oShell.AppAc</cr></f5></buffer>…
ActionScript 辞書をアップデート。既存のものに Gumbo の Language Reference のインデックスをマージした。 ActionScript 1/2/3 用の辞書ファイル
検索にマッチしたテキストを取り出す (= マッチしなかったテキストを削除) する Vim 的なやりかたがわからなかったので rubydo で。 rubydo VIM::Buffer[1].append(VIM::Buffer[1].count, $_.scan(/regex/).join(" "))
img や br タグを閉じる正規表現メモ。 :%s@\(<img[^>]\+[^/]\)\(>\)@\1 />@g :%s@\(<input[^>]\+[^/]\)\(>\)@\1 />@g :%s@<br>@<br />@g</input[^></img[^>
vimrc/gvimrc を即座に開く (元ネタ)。 :e $MYVIMRC :e $MYGVIMRC
smartchr を入れた。元ネタと同じ設定をしてみた。 autocmd FileType actionscript,javascript inoremap <buffer> <expr> = smartchr#one_of(' = ', ' == ', ' === ', '=') 例えば function hoge() { var foo } foo の直後に = を入力すると function hoge() { var foo= } </expr></buffer>…
バッファ内検索のマッチ数を調べる方法。 :%s/pattern//n
xml.vim を入れた。HTML タグのジャンプをするのが目的。 タグにカーソルを移動して \5 でジャンプできる。ただし、ネストが複雑だと少し時間がかかる。
Vim で .as ファイルを保存時に、Flash をパブリッシュしつつブラウザをリロードするようにしてみた。元ネタは ||_koba_|| さんの発言。ちなみに Windows 限定。 手順 JSFL FileSystem API を入れる ブラウザをリロードする JScript を書く JScript を実行す…