Vim

QuickBuf を入れた

Vim

QuickBuf を入れました。以前は fuf.vim やproject.vim を使っていましたがなんだかんだで最近は :ls で一覧表示してバッファ番号で選択していました。 vim.org のスクリプトファイルを wget でダウンロードする vim.org から wget でスクリプトファイルをダ…

Vim 7.3 をソースからインストール

Vim

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 プラグインを書きました

Vim

カーソル下の単語を snake_case や camelCase などに順次変換する Vim プラグインを書きました。 実行例 例えば getElementById という単語の上にカーソルがある状態で :call ToggleCase() を実行すると下記の順に記法が切り替わります。 GetElementById get…

JSDoc 形式のコメントを追記する Vim スクリプトを書きました

JavaScript の関数に JSDoc 形式のコメントを追加する Vim スクリプトを書きました。 tanabe/WriteJSDocComment.vim - GitHub 実行例 JavaScript の function が書かれている行にカーソルがある状態で :call WriteJSDocComment() を実行すると下記スクリーン…

jslint.vim を入れた

CentOS に jslint.vim を入れました。コーディング中にリアルタイムで文法チェックをしてくれます。それほど重くもないですし便利です。 インストール JavaScript のインタプリタ (SpiderMonkey、Rhino、node.js) が必要なのでインストールはそこから。CentO…

Vim で「■」や「●」を正しく表示させる

Vim

ターミナルの Vim で「■」や「●」といった記号を入力すると、記号が半分になったりカーソル移動ができなくなったりと色々面倒な現象が起こります。これを解決するには .vimrc に以下を記述します。 if exists('&ambiwidth') set ambiwidth=double endif ambi…

neocomplcache 導入時に ActionScript の補完がすべて小文字になってしまう

actionscript.vim と neocomplcache を同時に導入すると、キーワード補完が全て小文字になる不具合が発生します。 これは actionscript.vim 内に書かれている、 syn case ignore この一文が問題のようです (neocomplcache の Wiki より)。 使いづらいので修…

モードラインでファイル毎に Vim の設定を記述する

Vim

モードラインを使用すると、個別のファイルごとに Vim の設定を書くことができます。 例えば、拡張子は .html でも中身は PHP スクリプトという場合、ファイルを開く度に :se fenc=php と入力せずに済みます。 モードラインの書き方 行頭か行末にそのファイ…

pathogen.vim を導入しました

Vim

pathogen.vim を導入しました。 ごちゃっとしていた plugin ディレクトリがかなりスッキリしました。読み方はパソゲン? インストール方法 pathogen.vim をダウンロードします。 $HOME/vimfiles/autoload (Mac/Linux は vimfiles → .vim) に pathogen.vim を…

複数行に入力した数字の合計を求めたい

Vim

問題 コピペしてきた幾つかの数字の合計を求めたい。 解決方法 Excel を使う。 …では面白くないので、折角だから Vim で。 Perl のインタフェースを使って泥臭く書いてみました。 :perl $a=0;for($i=1;$i<=$curbuf->Count();$i++){$a+=$curbuf->Get($i)};VIM…

Vim で一行が長すぎる HTML や XML を編集すると重くなる

Vim

Vim で一行が長すぎる (約3000 文字以上) の XML や HTML を開くとカーソルの移動が重くて使い物になりません。シンタックスハイライトが原因のようです。 解決方法 幾つか方法がありますが、ファイルを書き換えてもよいのならば 2 番目が妥当だと思います。…

全ての行を削除する

Vim

全ての行を削除するときは :%d 上記のコマンドを入力していましたが、 gg d Shift-G こちらの方が左手だけで完結するのでよさげ。

よしなにインデントのスタイルを切換える VimScript を書いた

Vim

開いたファイルによってよしなにインデントのスタイル (タブ or スペース) を切り替える VimScript を書きました。職場ではプロジェクトによってインデントのスタイルが異なったりするので、個人的には重宝しています。 ソースコード tanabe's AutoSetIndent…

Vim script で数当てゲームを作った

Vim

Vim script の勉強ということで、数当てゲームを作ってみた。プラグイン作成までの道のりは長い…。 let n = 9 let temp = matchend(reltimestr(reltime()), '\d\+\.') + 1 let b:answer = reltimestr(reltime())[temp : ] % (n + 1) function! WaitUserInput…

現在編集しているファイルのディレクトリに移動するキーマッピング

Vim

現在編集しているファイルのディレクトリに移動するキーマッピングを設定した。 nnoremap e :Explore

Event クラス用のテンプレートを作った

.as のテンプレート周りをさらに改良。XxxEvent.as のように Event.as で終わるファイル名ならば Event クラス用のテンプレートを読むようにした。 gvimrc au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1…

新規 .as ファイル作成時のテンプレート読み込みを改良した

以前設定した、テンプレートを適用する設定を強化して、クラス名 = ファイル名になるようにした。 gvimrc au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1) && (match(getline(1), "^$") == 0) "Windows 0…

XML/HTML を扱うテキストオブジェクト

Vim

XML/HTML コーディングに便利なテキストオブジェクト it/at を知った。 例えば <p>hogehoge</p> の hogehoge を削除したい場合は dit で。

textobj-indent を入れた

Vim

textobj-indent を入れた。 function hoge():void { if (true) { foo(); bar(); } } カーソルが if の行にある時に vai と入力すると if 文のブロックが選択される。vi{ より入力しやすい。 インストール方法 textobj-user を入れる textobj-indent を入れる…

属性にスペースと全角丸カッコを入れると ii や jj に変換される

Vim

Vim で HTML を編集していて、タグの属性に「半角スペース + 全角丸カッコ」を入れたら ii や jj に変換されてしまう。 <img alt=" (" /> と入力したのに <img alt=" ii" /> となる…。どのプラグインが原因なのだろう。 追記 半角スペースではなくとも、「全角開き丸カッコ + 半角英数字二文字…

新規 .as ファイルを作成時にテンプレートを読み込むようにした

空の .as ファイルを開いたときにテンプレートを読み込むようにした。 :he skeleton :he au を参考。 Vim スクリプト au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1) && (match(getline(1), "^$") == 0)…

Vim から FlashDevelop のパブリッシュを実行する

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 タグを閉じる

Vim

img や br タグを閉じる正規表現メモ。 :%s@\(<img[^>]\+[^/]\)\(>\)@\1 />@g :%s@\(<input[^>]\+[^/]\)\(>\)@\1 />@g :%s@<br>@<br />@g</input[^></img[^>

vimrc を即座に開く

Vim

vimrc/gvimrc を即座に開く (元ネタ)。 :e $MYVIMRC :e $MYGVIMRC

smartchr を入れた

Vim

smartchr を入れた。元ネタと同じ設定をしてみた。 autocmd FileType actionscript,javascript inoremap <buffer> <expr> = smartchr#one_of(' = ', ' == ', ' === ', '=') 例えば function hoge() { var foo } foo の直後に = を入力すると function hoge() { var foo= } </expr></buffer>…

バッファ内検索のマッチ数を調べる

Vim

バッファ内検索のマッチ数を調べる方法。 :%s/pattern//n

HTML タグのペアにジャンプする

Vim

xml.vim を入れた。HTML タグのジャンプをするのが目的。 タグにカーソルを移動して \5 でジャンプできる。ただし、ネストが複雑だと少し時間がかかる。

パブリッシュ時にブラウザをリロードする

Vim で .as ファイルを保存時に、Flash をパブリッシュしつつブラウザをリロードするようにしてみた。元ネタは ||_koba_|| さんの発言。ちなみに Windows 限定。 手順 JSFL FileSystem API を入れる ブラウザをリロードする JScript を書く JScript を実行す…