Vim

タイムラインを Vim のキーバインドで移動する

タイムラインを Vim (Vi) のキーバインドで移動できるように設定した。Ctrl/Cmd-Shift-HJKL で選択状態のフレームが移動する。どのキーを押しているかが伝わらないデモ。 キーそれぞれに別々の JSFL コマンドを割り当てるのが面倒。関数呼び出しができたら楽…

mru.vim を入れた

Vim

mru.vim を入れた。最近開いたファイル (Most Recently Used) リストを表示できる。 :MRU Vim のデフォルト機能であったと思ったが、気のせいか。

コメントブロックを挿入する Vim スクリプトを書いた

ActionScript のコードにコメントブロックを挿入する Vim スクリプトを書いた。カーソル位置に任意の文字ブロックを挿入するスマートな方法がよくわからず、泥臭い書き方になった。 function! ASCommentWriter() let c = col(".") let l = a:firstline - 1 l…

eregex.vim を入れた

Vim

eregex.vim を入れた。Vim の正規表現は鬼のようにエスケープが入るため、書いているうちに意味不明になりがちだが eregex.vim で問題解決しそう。 Vim だとこう書くのが、 :%s@\("hoge\/foo\/images\/\)\([^"/]\+\(gif\|jpg\)"\)@\1static/\2@g eregex.vim …

記録モードを使ってみた

Vim

記録モードを使って、テスト用の XML データを作ってみた。 <items> <item id="0"> <hoge>hoge0</hoge> <foo>foo0</foo> <bar>bar0</bar> </item> </items> このような XML の、item ノードを、数字をインクリメントしつつ増やすのが要件。 まず item ノードの先頭 (line 4) にカーソルを置き、 qavjjjjjy6jP^Aj0^Aj0^Aj0^Akkk0q10@a…

:earlier と :later の使いどころが不明

Vim

Vim 7 から実装された :earlier や :later は、凄い機能だと思うが実務で使ったことがない。しかし、「数分前に書いたあのメソッドをやっぱり使いたい」というシチュエーションはたまにある。そんなときは思い出して使ってみよう。「数分前」を特定できれば…

MacBook に Vim 7.1 を入れた

MacBook に Vim 7.1 を入れた。既に入っている Vim 7.0 のアンインストール方法がわからなかったので、port install を強行した。 $ sudo port install vim $ cd /usr/bin $ sudo rm vi vim vimdiff view $ sudo ln -s /opt/local/bin/vim ./vi $ sudo ln -s…

import しているファイルを開く

gf を ActionScript の import 文で使うための設定をした。 import com.example.bar.foo.Hoge; この一行の上で gf を押したら com/example/bar/foo/Hoge.as が読み込まれる。 ActionScript の文法は Java のそれに似ているので Java でそういった tips があ…

HTML のスペシャルキャラクタをエスケープする Vim スクリプトを書いた

Vim

HTML のスペシャルキャラクタをエスケープする Vim スクリプトを書いた。 :[range]call EscapeHTMLSpecialChars() として使う。 <p>hoge & foo</p> をエスケープすると &lt;p&gt;hoge &amp; foo&lt;/p&gt; となる。関数の内容は以下のとおり。初めて Vim スクリプト…

ターミナルの Vim にクリップボードの内容をペーストしたい

Vim

ターミナルの Vim にクリップボードのテキストをペーストするには、 :a! を入力して Alt + v などでペーストしてから <Esc> を押すか . を入力する (参考)。 ここで悩ましいのが :a と :a! の使い分けだが、ヘルプを見ると、 Adding [!] toggles 'autoindent' for</esc>…

編集中の Ruby スクリプトをその場で実行する

Vim で編集中の Ruby スクリプトを、即時実行できるように設定した。 Vim で Ruby スクリプトの実行と結果のプレビュー表示 Tip #1244: preview interpreter's output 上記サイトを参考に、.vimrc に追記。 function! Ruby_eval_vsplit() range let src = te…

ターミナルでは C-CR のマッピングが有効にならない

Vim

C-CR のマッピングは、ターミナルエミュレータ越しでは動かないらしい。少なくとも Poderosa では駄目だった。 nnoremap <C-CR> :echo "hoge"<CR></cr></c-cr>

CentOS 5 で Vim 7.1 をビルドする

CentOS 5 の Vim に autocomplpop.vim を入れたら、 Sorry, Autocomplpop doesn't support this version of Vim. と言われて使えなかった。autocomplpop.vim (2.3.1) の中身を見ると、対応バージョンが 7.1 と書いてある。vim.org の情報が間違っているよう…

カレントバッファのファイルパスを表示する

Vim

カレントバッファのファイルパスを表示する方法。意外に手間がかかる。 :!echo %:p または :echo expand("%:p")

任意の単語の数を調べる

Vim

vim で単語数や行数を数える方法が便利。 :%s/function/&/gn で、ファイル内に function がいくつあるか表示される。 キモは 置換フラグの n。これを指定すると置換は行われずにマッチの数を表示する。he :s で、 [n] Report the number of matches, do not …

ターミナルの Vim のテキストをクリップボードにコピーする

ターミナルの Vim に書いたテキストをクリップボードにコピーしたく、"vim・mac間でクリップボードを介してやり取りする方法 完結編" を参考にやってみた。 nkf が入っていない nkf が入っていなかったので、MacPorts で入れようとしたら MacPorts も入って…

続・ActionScript の辞書ファイル

追記 : 2008.05.08 ↓下記のサイトに置いてある辞書ファイルの方が性能がよいので、本サイトはスルーしていただいて構いません。 AS3 の辞書ファイル - PBD - subtech 追記ここまで ここの actionscript.vim からキーワードを抜き出して辞書ファイルを作った…

最後に入力した箇所にカーソルを移動する

Vim

ノーマルモードで gi を入力すると、最後に入力していた箇所にカーソルが移動し、インサートモードになる。VIM for (PHP) Programmers より。 function hoge() { var foo = 100; } 100; を入力してからノーマルモードにし、バッファ内を徘徊したあと、gi で …

設定ファイルをユーザディレクトリに置く

Vim の設定ファイルやプラグインなどは、これまで Program Files/Vim の中身を書き換えていたが、ちゃんとユーザディレクトリを使うようにした。 :he vimfiles :he gvimrc :he vimrc を参考。 直接関係ないが、Windows のユーザディレクトリの Local Setting…

Windows/gVim の viminfo ファイルはどこにあるのか

Windows/gVim は viminfo を C:/Documents and Settings/<user>/ に作る。</user>

インサートモードで矢印キーを使わないでカーソルを移動する

Vim

インサートモードで、矢印キーを使わないでカーソルを移動したいので、以下の設定を追加した。 imap <C-b> <Left> imap <C-f> <Right></right></c-f></left></c-b>

作図用プラグイン DrawIt! を入れた

Vim

DrawIt! を入れた。 +--------+ +------+ |hogehoge|---|foobar| +--------+ +------+ このような図を簡単に描くことができる。ディレクトリツリーを描くときにもよさそうだ。 \di でドローモードにして適当に描いていても楽しい。

レジスタの内容をコマンドとして実行する

Vim

そろそろ Vim スクリプトを覚えようと思い、マニュアルを読んでいて知ったこと。 :@ が便利。 :@ の後にレジスタを指定すると、そのレジスタの内容ををコマンドとして実行してくれる。 例えば、スクラッチに :let i = 1 :while i < 5 : echo "count is" i : …

JavaScript の辞書ファイル

JavaScript の辞書ファイルを導入した。 作者の cooldaemon 氏に足を向けて寝られない。

行末の ^M を削除する

Vim

改行は崩れないが function hoge() {^M return 100;^M }^M このように、行末に制御コードの ^M が現れる場合の対処法。 :%s/^M//g ^M の部分を CTRL-V CTRL-M で入力する。ヘルプは :he i_CTRL-V :he i_CTRL-M もっと厳密に置換したい場合は、「Tip #26: Get…

カーソル下のファイルを開く

Vim

開きたいファイル名の上にカーソルを移動し、gf を入力すると、そのファイルを開くことができる。 ヘルプは :he gf 例えば、HTML を編集中、読み込んでいる JavaScript ファイルを開きたい場合、 <script type="text/javascript" src="path/to/hoge.js"></script> src 文字列の中のどこでもよいので gf を入力する。 また、C…

カーソル下の単語を調べる

Vim

プログラミング中に、操作ミスで SHIFT-K を押したら、ヘルプが立ち上がった。 :he K を読むと、SHIFT-K でカーソル下の単語を引数に、任意のプログラム keywordprg を走らせることができるようだ。 keywordprg が設定されていない場合は、カーソル下の単語…

完全にマッチする単語を検索する

Vim

ignorecase と smartcase がセットされた状態で hoge Hoge HOGE この中から hoge だけ検索したい。そんな場合には、\C オプションを使用する。 /hoge\C \C は、検索パターンの中のどこに記述してもよい。 ヘルプは :he /ignorecase

Chalice for Vim

Vim

Chalice for Vim を使ってみた。面白い。 が、生産性を下げるけしからんプラグインのため、職場の PC には入れないでおこう。

Vim のイースターエッグ

Vim

Vim のイースターエッグ。 :help 42 :help holy-grail :help! これ以外に無いか探していたら、面白い物があった。 クレジットを表示する、イースターエッグらしいイースターエッグ。 Easter Egg # 3 (Credit Listing in VIM) On the command line edit a fil…