サイトアイコン Lonely Mobiler

プログラマが知っておくべき100のVimコマンド

100 Vim commands every programmer should know

上記ページを見て、vimコマンド覚えるぜ!と意気込んで訳しながら試してみた。fmt は日本人じゃあまり使わないよなー、とか read/write file と Case の欄は初めて見るコマンドばっかだなーとか。そんな感じ。

Search

/word 上から下へ "word" を検索する。
?word 下から上へ "word" を検索する。
/jo[ha]n "john" もしくは "joan" を検索する。
/\<the "the", "theatre" , "then" のいずれかを検索する。(theから始まる単語という事)
/the\> "the" もしくは "breathe" を検索する。(theで終わる単語という事)
/\<the\> "the" を検索する。
/\<....\> 4文字の単語を検索する。
/\<fred\> "fred"を検索する。 "alfred" や "frederick" は当てはまらない。(原文のコマンドは // だったがミスかな?)
/fred\|joe "fred" と "joe" を検索する。
/\<\d\d\d\d\> 4 桁の数字を検索する。
/^n{3} 空の3行を検索する。
:bufdo /searchstr/ 全ての開いてるファイルから "searchstr" を検索する。

置換

:%s/old/new/g ファイル内の全ての "old" を "new" に置換する。
:%s/old/new/gc ファイル内の全ての "old" を "new" に置換する。置換時に確認有り(コメント欄で間違い指摘有)
:2,35s/old/new/g 2行目から35行目までの "old" を "new" に置換する。
:5,$s/old/new/g 5行目からファイルの最後までの "old" を "new" に置換する。
:%s/^/hello/g 全ての行の先頭に "hello" を追加する。
:%s/$/Harry/g 全ての行の末尾に "Harry" を追加する。
:%s/onward/forward/gi ファイル内の全ての "onward" を "forward" に置換する。"onward" は大文字小文字関係ない。(case unsensitive ってなんだ?)
:%s/ *$//g 全ての行末にある空白を削除する。(原文は "Delete all white space" で "全ての空白を削除する。"になるのだが・・・)
:g/string/d "string" を含んでる行を削除する。
:v/string/d "string" を含まない行を削除する。
:s/Bill/Steve/ 現在の行で最初の "Bill" のみ "Steve" に置換する。
:s/Bill/Steve/g 現在の行の "Bill" を "Steve" に置換する。
:%s/Bill/Steve/g このファイルの全ての "Bill" を "Steve" に置換する。
:%s/\r//g 改行コード "CR"(^M) を削除する。
:%s/\r/\r/g Transform DOS carriage returns in returns (わかんなかった。)CRを現在vimで設定されている改行コードへ置換する。
:%s#<[^>]+>##g タグに囲まれたテキストは残しつつ、HTMLタグを全て削除する。
:%s/^(.*)n1$/1/ 同じ行が2回続いたら片方削除する。
Ctrl+a カーソル下の数字をインクリメントする。
Ctrl+x カーソル下の数字をデクリメントする。
ggVGg? テキストを Rot13 にする。

Case

Vu 現在の行の文字を小文字にする。
VU 現在の行の文字を大文字にする。
g~~ 現在の行の文字の大文字小文字を反転させる。
vEU 単語単位で大文字にする。
vE~ 単語単位で大文字小文字を反転させる。
ggguG 全てのテキストを小文字にする。(原文では "uppercase" だがコマンド通りだと "lowercase"だろう。)
:set ignorecase 大文字小文字を区別しない。
:set smartcase 大文字を入力しない限り、大文字小文字を区別しない。
:%s/\<./\u&/g 全ての単語の先頭を大文字にする。
:%s/\<./\l&/g 全ての単語の先頭を小文字にする。
:%s/.*/\u& 全ての行の先頭を大文字にする。
:%s/.*/\l& 全ての行の先頭を小文字にする。

Read/Write files

:1,10 w outfile 1行目から10行目を outfile に保存する。
:1,10 w >> outfile 1行目から10行目を outfile に追記する。
:r infile infile の内容を挿入する。
:23r infile infile の内容を23行目以降に挿入する。

File explorer

:e . ファイルエクスプローラを開く
:Sex ウインドウを分割してファイルエクスプローラを開く
:browse e グラフィカルなファイルエクスプローラを開く
:ls バッファのリストを表示
:cd .. 親ディレクトリへ移動
:args 開いてるファイルのリストを表示
:args *.php 対象のファイルを全て開く。
:grep expression *.php *.phpの中で expression を含むファイルのリストを返す。
gf カーソル位置にある名前のファイルを開く。

Interact with Unix

:!pwd "pwd" を実行し、Viに戻る。
!!pwd "pwd" を実行し、実行結果をファイルに挿入する。
:sh 一時的にUnixへ戻る。(コメント欄でCtrl-zがいいよって)
$ exit Vi に戻る。(コメント欄では fg がいいよって)

Alignment

:%!fmt 全ての行をフォーマットする。
!}fmt 現在地にある全ての行をフォーマットする。
5!!fmt 次の5行を整える。

Tabs

:tabnew 新しいタブを作成する。
gt 次のタブを表示する。
:tabfirst 最初のタブを表示する。
:tablast 最後のタブを表示する。
:tabm n(position) タブの位置を変更する。
:tabdo %s/foo/bar/g 全てのタブでコマンドを実行する。
:tab ball バッファを全てタブで開く。

Window spliting

:e filename filename を現在のウインドウで開く
:split filename filename を分割したウインドウで開く
ctrl-w up arrow カーソルを上のウインドウへ移動する。
ctrl-w ctrl-w カーソルを次のウインドウへ移動する。
ctrl-w_ ウインドウを最大化する。
ctrl-w= 分割したウインドウを全て同じ大きさにする
10 ctrl-w+ 現在のウインドウを10行大きくする。
:vsplit file 縦に分割する。
:sview file :split と同様だが読み込み専用で開く
:hide 現在のウインドウを閉じる
:only 現在のウインドウ以外を閉じる
:b 2 バッファの2番目を開く。

Auto-completion

Ctrl+n Ctrl+p (in insert mode) 単語を補完する。
Ctrl+x Ctrl+l 行を補完する。
:set dictionary=dict "dict" を "dictionary" に定義する。
Ctrl+x Ctrl+k "dictionnary" を補完する。

Marks

mk 現在のカーソル位置を k にマークする。
'k k の位置にカーソルを移動する。
d'k 現在地から k までを削除する。

Abbreviations

:ab mail mail@provider.org mail@provider.org の省略形を mailと定義する。

Text indent

:set autoindent オートインデントをONにする。
:set smartindent 利口なオートインデントをONにする。
:set shiftwidth=4 インデント幅をスペース4つ分にする。
ctrl-t, ctrl-d 挿入モードでインデントを追加/削除する。
>> インデント
<< インデントを削除

Syntax highlighting

:syntax on 色付けをする。
:syntax off 色付けをしない。
:set syntax=perl perlモードで色付けをする。

そういやVimMなんてもので第1回勉強会あるらしいっすね。勢いで参加欄に名前載せた。あがが

Sponsored Link
モバイルバージョンを終了