Vim使いへの足跡(情報収集)

はじめに

自分は、エディターを使って何かをする時にカーソルの移動は矢印キーを使うのが普通だと思っていました。しかし、viを使ってビックリ。なぜならカーソルの移動の際に手のポジションを移動させる必要がなかったからです。とは言え、すぐに開発用エディタをviに変更できるわけもなく(IDE育ちだから)、だらだらと時間が過ぎ去っていました。
で、空き時間に暇つぶしをしていたところ、Eclipseキーバインドにviのキーバインドが使えるプラグインがあるのを発見しました。これを使ってみたところ、開発がし易いのなんのっていったらありゃしません。そんなわけで、ここはいっちょvimに乗り換えるべく、頑張ってみることにします。

やったこと

vimで効率的にコードを書くための小技 - bonar note

vimで開発に取り組むための情報をまとめてくれていました。ほんと感謝です。出会いは偶然です。":n"の場合の画面分割の仕様をググってる時に偶然見つけました。
":n"はそもそも新規windowを垂直方向に作成するコマンドです。windowを隠すだけであれば、":hide"を使用します。":q"を使用すると、windowは閉じます。window間の移動には、+[hjkl]を使用します。また、+rで左右上下のwindowの入れ替えができます。
folding(折りたたみ)という機能もあるようです。
recording(操作記憶)という機能も気になります。使いようによっては秀丸のマクロみたいになるのかも?
mark(マーク)はソースを追っかける際に重要になりそうです。定義箇所を探す方法と組み合わせて使いたいところです。定義箇所を探す方法を探さなくては。。。

"Vim初心者的導入メモ 2/3 「vimrc設定」編 - ナレッジエース"を読んで

カラーリングの設定についてもそろそろ考えてよいのかもしれません。

"http://vimwiki.net/?vimrc/9"を読んで

基本的な設定として見るにはかなりアリでした。

omoonさんの.vimrcを読んで

MacVimに変更されて作成されたらしいので。Pythonにも対応している様子であるため。PHPユーザっぽい?
コマンドモード時のtcsh風のキーバインドはいらないかもです。
オムニ補完のomnifunc辺りはとても参考になります。

http://vim-users.jp/2009/06/hack23/

ファイルをHTML出力したいと思うことがあるのでしょうか?自分はあまりありません。

http://vim-users.jp/2009/06/hack22/

インサートモードの場合に何か処理を適用するために、はよく使われるものなのでしょうか。
自動補完の活用がそろそろ出てき始めました。XML&HTMLではオムニ補完を活用しています。

http://vim-users.jp/2009/06/hack21/

複数ファイルに同じ操作を適用する":bufdo"、":argdo"、":tabdo"、":windo"は使いたいところですが、複数のバッファ、タブ、ウィンドウを開く方法がわかりません。
ちなみに、複数ファイルへの文字列置換ってgrepなんかで代用できませんでしたっけ?"http://technique.sonots.com/?UNIX/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E5%87%A6%E7%90%86/sed#jfab1342"でsedを使った方法が記載されています。

http://vim-users.jp/2009/06/hack20/

モードラインは使わないでしょう。ファイル内にオプションをコメントで記述することはさすがにしないと考えます。

http://vim-users.jp/2009/05/hack19/

コマンドの補完は、tabキー。で補完候補の一覧表示。またはで履歴表示。

http://vim-users.jp/2009/05/hack18/

diffは絶対に使う機能なので確実に覚えておきましょう。
実行ファイル的には、vimdiffのようですが、自分は起動中に呼び出す":diffsplit"の使用が多そうです。
"diffをみるならvimdiffがはっきり言って便利すぎる件 - yamazakiccs--のもっさもさ感がたまらないブログ"では、比較を横ウィンドウで表示しています。でも":diffsplit"でそれをやる方法がわかりません。
"2つのテキストファイルの差分を取る — 名無しのvim使いにその方法が乗ってました。":vertical diffsplit xxx"とすると縦ウィンドウに表示なりました。でも差分箇所の移動方法がよくわかりません。

http://vim-users.jp/2009/05/hack17/

これを知らずに、mvでファイル名を変えてしまいました。この方法は覚えておきましょう。
vimの単純な解決方法では、「ファイル名を変更し、新しいファイルを開く」、「新しい名前で保存し、古いファイルを削除する」、「ファイル保存先を指定し、古いファイルを削除する」しかなく、1つのコマンドでリネームをおこなうことが不可能のようです。そのため、下記のようなコマンドを.vimrcに登録して対処するようです。うーん。。。

command! -nargs=1 -complete=file Rename f <args>|call delete(expand('#'))

http://vim-users.jp/2009/05/hack14/

自作は自分にはまだ早いです。

http://vim-users.jp/2009/05/hack13/

autocmdはイベントに応じて自動的に実行されるコマンドとのことです。
lintと組み合わせるアイデアが記載されていました。明示的な方法は自分で探す必要がありそうです。

http://vim-users.jp/2009/05/hack12/

リプレイス処理は多分に使うので、しっかりと使い方を覚えておきましょう。
":g"のコマンド適用の用途がまだ思いつきません。思いつくのは、d[elet]ぐらいでしょうか。
複数行のコメントアウトの方法などがわかるとよいのですが。。。

http://vim-users.jp/2009/05/hack11/

argument listは自分に扱いきれるのでしょうか。macvimで起動することが多いため、argument listにファイルを設定することは少ないような気がします。

http://vim-users.jp/2009/05/hack10/

バッファの概念をしっかり頭に叩き込みましょう。
うまいことウィンドウの分割やりたいですね。

http://vim-users.jp/2009/05/hack9/

下記設定を追加してみました。
ポップアップメニューの見た目の変更はもう少し使い慣れてから考えます。

set completeopt=menuone,preview
set pumheight=20
set previewheight=5
inoremap <expr> <C-j> pumvisible() ? "\<Down>" : "\<C-x>\<C-o>"

http://vim-users.jp/2009/05/hack8/

undo-branchesなんて使いこなせる気がしません。
細目にインサートモードから抜けることと、":undolist"で作業履歴を確認するようにします。

http://vim-users.jp/2009/05/hack7/

quickrun.vimを入れてみました。実行がうまくわからなかったので、"編集中のスクリプトを直ぐに実行できるquickrun.vim"を参考にさせて頂きました。
ってのは、バックスラッシュのことのようです。:mapと打つと、キーバインドが確認できました。
これで、Pythonファイルの実行が簡単にできるようになりました。

http://vim-users.jp/2009/05/hack4/

補完は、ではじまります。
またはは様々なソースからのキーワード補完であり、またはとは違います。ローカル変数を呼び出す場合は、またはって感じでしょうか。
補完の操作がたくさんありすぎてどう使ったらよいか全く検討がつきません。

http://vim-users.jp/2009/04/hack3/

コマンド呼出は、":!xxx"です。
%は、現在開いているファイルを表します。