vimの最近のブログ記事

未だに挿入モードで十字キーを使う癖が抜けない。
しかし前回自動コード補完を自分のvimに組み込んだせいで、挿入モードで移動するとたるところでコードを補完が働いてしまい逆に使いにくい状況になってしまいました。

これを回避するために今回はより効率的にコマンドでカーソルを移動する方法を(頭に叩き込むつもりで)メモ

※まずは挿入モード終了する癖をつけること前提で。。

表示されている画面の最上部に移動

H


表示された画面の中央部に移動

M


表示された画面の最下部に移動

L


対応する括弧に移動

%


nだけ右にカーソルを移動

(n)+[space]


とりわけ%と(n)+[space]が使えそうな予感。
慣れるまで気合いですな。。
part1の続きです。
自動コード補完がほしい!!

前回の記事で、開いたファイル内で特定のコマンドを入力するとコード補完が可能になる設定をしました。
今回はDream Weaverやeclipseを目指してvimでリアルタイムのコード補完が可能になる設定を調べてみました。

どうやらvim-autocomplpopというプラグインがあるらしく、これをvimにインストールすればリアルタイムのコード補完ができるようになるらしいです。

■ダウンロード
http://www.vim.org/scripts/script.php?script_id=1879
最新バージョンは2.11.1 2009/11/09現在

■インストール
ダウンロードしてzipファイルを解凍したら中にあるファイルを以下の場所に設置

<vimのランタイムディレクトリ>/plugin/acp.vim 
<vimのランタイムディレクトリ>/doc/acp.txt 

僕はさくらインターネットの共有サーバーにvimをインストールして使用していたので、設置場所は以下の通りです。参考までに。

$HOME/local/share/vim/vim72/plugin/acp.vim 
$HOME/local/share/vim/vim72/doc/acp.txt 

注意点
・最新版のautocomplpopはvim7.2以上で動作
・vim7.0xにインストールしたら怒られます

pluginに.vimファイルを設置するだけですぐに使えるようになります。
デフォルトの候補選択コマンドは

[Ctrl]-n : 順方向に選択
[Ctrl]-p : 逆方向に巡回
[Ctrl]-y : 決定

■感想
挿入モードで十字キーを使ってカーソルを移動すると、至る所で補完機能が働いてしまいかなりウザい状況になります。
ちゃんとモードの切り替えを行ってホームポジションでタイプしろということでしょうか。。
それ以外はかなり便利になりました。。(今のところCSSに限る。。)

■参考ページ
ns9tks / vim-autocomplpop (公式のドキュメント)
autocomplpop.vimでリアルタイムにキーワード補完 - ナレッジエース

vimでCSSを修正していると、Dream Weaverやeclipseのような強力なコード補完がほしくなったのでvimの補完機能について諸々調べてみました。

手始めに知ったのが以下のコマンド

[Ctrl]-n : 順方向に選択
[Ctrl]-p : 逆方向に選択

このコマンドは、開いているファイルの中にある単語を参照して、入力している文字の先頭から合致する単語を補完してくれます。
長い名前の関数や変数を同じファイル内で複数回使用するときに便利ですね。


続いて
vim7で搭載されたオムニ補完 (Omni completion)
.vimrcに以下を記述すると指定された言語のコード補完が可能になります。

autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete

しかしこれは、Dream Weaverのような自動補完ではありません。
CSSファイルを開いてオムニ補完を使用し、background-colorを補完させたい場合、
挿入モードで「back」ぐらいまで入力して、以下のコマンドを入力。

[Ctrl]-x , [Ctrl]-o

これでようやく補完されるべきプロパティの一覧がリスト形式で表示されます。
言語によっては手打ちのほうが速く入力できることがあるので、辞書と、スペルチェックにしか使えない気がします。十分便利ですが。。


part 2に続く。


■参考ページ
VIM 7: TURNING COMPLETION ON
http://amix.dk/blog/viewEntry/19021
vim入力補完 - vi・vim勉強中。
http://www.webhtm.net/vim/inputsupport.htm

テキストエディタならタイトルの機能が絶対あるだろうと思い調べると当然ながらあった。
選択行のみの置換。

やりかたは簡単。
ビジュアルモードの際に

:

を入力する。
入力すると勝手に

:'<,'>

まで入力されるので、その後に

:'<,'>:s/hoge/fuga/gc

やらなんやら入力すればよいらしい。

vimの置換コマンドで後方参照が使えるのかなーと思ったらできた。

ファイルに記述されている
q1 q2 q3 q4 q5 ...

r1 r2 r3 r4 r5....
に変える。

:%s/q\(.\)/r\1/gc

()でくくったものが、1に代入される。
その際、特殊文字には\を記述することを忘れずね。
一応vim関連

仕事で使っているキーボドが自分の手に対して大きく、[Esc]をタイプするたびにホームポジションから手を離す羽目になっていたので[CapsLock]を[Esc]に変更できるフリーソフトを導入した。
これでホームポジションから手を離さずに左手の小指で[Esc]を押せるようになった。

窓使いの憂鬱

使い方はここを見てもらえれば大体わかるので割愛するが、自分が使っている.mayuファイル(キーの割り当て設定ファイル)を公開

include "109.mayu"      # 109 キーボード設定
keymap Global
key 英数 = Esc
key 変換 = 半角/全角 漢字 Kanji

もっと複雑なことができるらしいが今のところはこれで十分。
内容は
1、Caps Lock → Esc
2、変換          → 半角/全角

1は説明したとおりだが、2は入力変換を家で使っているMacBookの日本語キーボード風にしただけ。。
※最初の行(キーボド設定ファイルの読み込み)を忘れてハマった。。
バイト先のサーバにsambaが入っていたのをいいことにここ一年ぐらいvimを使っていなかった。
GUI万歳!

しかし、最近の部署移動で新たに上司になった先輩がものすごいスピードでvimを使いこなしていたことに感動を覚え自分も本気でvimエディターを使うことにした。
知識がなかったから使いこなせていなかっただけで色々知ったら超快適。

というわけで以下、ここ半月程で使えるようになってきたコマンドまとめ

■起動
複数のファイルを開く

vim file1 file2 ... filen

※そもそも複数のファイルを開けることを知らなかった。


■移動
ファイルの終わりに移動

G

ファイルの先頭に移動

gg



■編集
uで元に戻したものを取り消し

[Ctrl] + r



■分割
横分割

:vs


縦分割

:ps

隣のファイルに移動
[Ctrl]-w + w

画面拡大
分割した際、フォーカスがある画面で

[Ctrl]-w + (n)>

(n)に値を入れるとその分拡大される(任意)
画面縮小
分割した際、フォーカスがある画面で

[Ctrl]-w + (n)<

(n)に値を入れるとその分縮小される(任意)


■モード
ビジュアルモード

v

ビジュアルモード行単位

V



■ファイル操作
ファイルを開く

:e file


□複数のファイルを開いている場合
開いているファイル一覧を表示

:files

次のファイルに移動

:bn

前のファイルに移動

:bp

最初のファイルへ

:rew

開いているファイルすべてに同じの処理を与える

:bufodo

開いているファイルすべてに同じの処理を与える
例) 置換して保存して次のファイルへ

:bufdo %s/置換前/置換後/gc | w


■おまけ
[Ctrl]は左手の手のひらでタイプするとさらに高速になる。

昔のブログ

TCP/IP

E-mail

hazumu1986 [at] gmail.com

このアーカイブについて

このページには、過去に書かれたブログ記事のうちvimカテゴリに属しているものが含まれています。

前のカテゴリはPHPです。

次のカテゴリはお出かけです。

vim: 月別アーカイブ