正規表現

入力意味一般的な正規表現
or
\+直前の正規表現の1回以上の繰り返し+
\=直前の正規表現の0回または1回?

ex編集コマンド

:d行の削除
:m行の移動
:t行のコピー
:.,$dカレント行からファイルの最終行までの削除
:30,60m030行目から60行目までをファイル先頭に移動
:30,+50t$30行目からカレント行+50行目までをファイル末尾に移動
:30,60w newfile30行目から60行目までをnewfileとして書き込む
:30,60w >> file30行目から60行目までをfileに追加する

カーソルの移動

z+Enterカーソルのある行を画面の一番上に表示
z.カーソルのある行を画面の中央に表示
z-カーソルのある行を画面の一番下に表示

ソースコードをコメントアウトする

tcomment.vimプラグインをインストール
https://github.com/tomtom/tcomment_vim
CTRL-_ CTRL-_カレント行,選択した範囲をコメントアウト,コメント解除
gccカレント行をコメントアウト,コメント解除
CTRL-_ bブロックコメントアウト
CTRL-_ i選択した範囲を囲むようにブロックコメントアウト
CTRL-_ pカーソル位置のパラグラフをコメントアウト

インデントを崩さないようにペーストする

:a! で入力を開始します

コマンドラインでペーストする

コマンドラインに入った後,C-r [レジスタ] "直近なら'"'を入力

タブ表示の切り替え

:set list,:set nolist

*複数行に同じ文字列を挿入する

複数行の行頭にテキストを挿入する

  1. 短形ビジュアルモードCtrl + v で行頭を含めたテキストを選択
  2. I(大文字)を押してテキストを入力
  3. ESCでモードを抜ける

複数行の行末にテキストを挿入

  1. 短形ビジュアルモードCtrl + v で行頭を含めたテキストを選択
  2. A(大文字)を押してテキストを入力
  3. ESCでモードを抜ける
set virtualedit=block # 文字のないところにもカーソルを移動できる

かっこやダブルクォートで囲む

surround.vimプラグインをインストール
基本キーストローク
ys新規に囲む
ds囲みを解除
cs囲みを置換

  if *x>3 {                 ysW(        if ( x>3 ) {
  "Hello *world!"           ds"         Hello world!
  [123+4*56]/2              cs])        (123+456)/2

ds サンプル

"Hello *world!"ds"Hello world!
(123+4*56)/2ds)123+456/2
<div>Yo!*</div>dstYo!

cs サンプル

"Hello *world!"cs"''Hello world!'
"Hello *world!"cs"<q><q>Hello world!</q>
(123+4*56)/2cs)][123+456]/2
(123+4*56)/2cs)[[ 123+456 ]/2
<div>Yo!*</div>cst<p><p>Yo!</p>

ys サンプル

Hello, world!ysw''Hello', world!
Hello, world!ys$''Hello, world!'
Hello, world!ysl''H'ello, world!
Hello, world!yst<b><b>Hello, world!</b>

0から始まる数値を10進数でインクリメントする

Ctrl -A
インクリメントの挙動はnrformatsオプションで制御する

indent-guide

<Leader>igindeng-guideをトグル

easymotion

<Leader>f{char}前方のChar
<Leader>F{char}後方のChar
<Leader>w前方のword
<Leader>b後方のword
<Leader>e前方のwordの最後
<Leader>ge後方のwordの最後
<Leader>j前方
<Leader>k後方

vimdiff

do差分を取り込み
dp差分を反映
[c前の差分にジャンプ
]c次の差分にジャンプ
diffu(pdate)更新
Ctrl + w Ctrl + wバッファの切り替え
:qa終了(vimの全バッファ終了コマンド)

今開いているファイルとの差分

:vertical diffsplit <ファイル名 or #バッファ番号>

vimfiler

eファイルを開く
lディレクトリに移動する

QFixGrep

QFixGrep使い方
g,vvimgrep
l現在開いているバッファから

図を描画する

Drawit!プラグイン
\diDrawitを開始する
\dsDrawitを停止する
<space>描画,消去の切り替え
|カーソルキー|描画,消去|*ソースコードをコメントアウトする
tcomment.vimプラグインをインストール
https://github.com/tomtom/tcomment_vim
CTRL-_ CTRL-_カレント行,選択した範囲をコメントアウト,コメント解除
gccカレント行をコメントアウト,コメント解除
CTRL-_ bブロックコメントアウト
CTRL-_ i選択した範囲を囲むようにブロックコメントアウト
CTRL-_ pカーソル位置のパラグラフをコメントアウト
\b選択範囲を囲むように枠線
\e選択範囲内に円
\l選択範囲の開始地点から終了地点をつなぐ
\a選択範囲の開始地点から終了地点へ矢印

QuickFixリストを閉じる

:cclose :cw

入力を補完する

C-x C-fファイル名補完
C-x C-oオムニ補完
C-x C-]タグ補完

マクロを利用する

  • レコーディング開始
qa
  • 終了
q
  • マクロ実行
@a

複数ファイルを一括で加工する

:bufdoコマンドを利用する
:bufdo :%s/abc/xyz/g

検索結果のハイライトをリセットする

:noh または :nohlsearch

テキストオブジェクトを使用する

2文字で構成される.

1文字目

iinside 内側
aaround 囲む

2文字目

{{}に囲まれた範囲のテキスト
"""に囲まれた範囲のテキスト
'''に囲まれた範囲のテキスト
><>に囲まれた範囲のテキスト
tタグ
pパラグラフ
w単語

使い方

function() {
           ....
           ....    この範囲をまとめて削除   -> da{ or di{ or da} or di}
           ....    この範囲をまとめてコピー -> ya{,yi{,ya},yi}
           ....
}

<root>
    <node>
           ....    この範囲をまとめて削除   -> dat or dit
           ....    この範囲をまとめてコピー -> yat,yit
        ...
    </node>
</root>

abcd efg hijk lmn opqr stu vwx yz   +
abcd efg hijk lmn opqr stu vwx yz   |この範囲をまとめて削除,コピー等の操作対象にできる
abcd efg hijk lmn opqr stu vwx yz   +
(空行)

Alignでテキストファイルを成形する

alignプラグインをインストールする
設定ファイルに追加
 "Alignプラグイン
 :let g:Align_xstrlen = 3 "for japanese string
 :let g:DrChipTopLvlMenu = '' "remove 'DrChip' menu
コマンドを利用して,成形する
 :%Align ,

before
 one,two,three,four,five
 six,seven,eight,nine,ten

after
 one , two   , three , four , five 
 six , seven , eight , nine , ten 

詳しくは
 :help align

文章を整形(インデント)する

:right "右揃えに整形 :right 120 "右揃えに整形(120文字が基準) :center "中央揃えに整形 :left 20 "左に20文字のスペースを空けて,左揃え. :left 20 "左に20文字のスペースを空けて,左揃え.

空白文字を切り詰めて,左端を揃える

短形ビジュアルモードで選択して,999< などと入力する
ビジュアルモード時に,選択して,「>」「<」 も使える

変数名を命名規則にしたがって変換する

abolish.vimプラグインを取得する
crcキャメルケースfeaturePhone
crmミックストケースFeaturePhone
cr_スネークケースfeature_phone
crsスネークケースfeature_phone
cruスネークアッパーケースFEATURE_PHONE
cr-単語連結法feature-phone
一旦単語連結法にしてしまうと,他の規則へは変換できない

cscopeを使う

http://cscope.sourceforge.net/cscope_vim_tutorial....
  1. cscope本体,cscope_maps.vimをインストールする
  2. 'cscope -R'でインデックスを作成する
  3. vim上で検索したい単語の上で "CTRL-\ s"と入力する
  4. CTRL-tでもとに戻ることができる

画面を2分割して検索

  1. vim上で検索したい単語の上で "CTRL-SPACE s"と入力する
  2. CTRL-w wでカーソルを移動する
  3. CTRL-w oでカーソルのあるウィンドウ以外を閉じる
javaファイル対応,巨大なプロジェクト対応(Linuxカーネルなど)などは以下を参照
http://cscope.sourceforge.net/large_projects.html
vim tutorial
http://cscope.sourceforge.net/cscope_vim_tutorial....

全角文字を半角文字に変換する

hz_ja.vimプラグインをインストールする
http://vimsetup.googlecode.com/svn/trunk/plugin/in...
:Zenkaku "カレント行を全角文字に変換する
:Hankaku "カレント行を半角文字に変換する
:%Hankaku "全行を半角文字に変換する

数字をインクリメントする

Ctrl + a

名前付きレジスタを活用する

"ayy #行コピーして,aレジスタにテキストデータを格納する
"ap #aレジスタに格納されたデータをペーストする

複数の検索パターンにマッチする行を検索

ack.vimプラグインを使って.「|」をエスケープする必要がある
:Ack "patern1\|patern2"

検索を高速化する

ack.vimプラグインをインストールする
http://www.vim.org/scripts/script.php?script_id=25...

シンボリックリンクを作る
%sudo ln -s /usr/bin/ack-grep /usr/bin/ack
あとはvimgrepと同じ
:Ack searchword file

マークを表示する

showmarks.vimプラグインをインストールする

必要なマークだけ表示する

:let g:showmarks_include="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

マークの表示,非表示を切り替える

\mt

編集中のファイルと同じディレクトリに変更する

:cd %:p:h

その他のファイルパスの置き換えパターン

%カレントファイルパス
#オルタネートファイルのパス
#3バッファ番号3のファイルパス
%<拡張子までのカレントファイルのファイル名
%:pカレントファイルのフルパス
%:p:hカレントファイルのディレクトリ

ファイルフォーマットを変更する

dos<CR><NL>
unix<NL>

フォーマットを確認する

:setl ff?

フォーマットを変更する

:setl ff=dos
:setl ff=unix

フォーマット指定

:e ++ff=unix filename
:w ++ff=dos filename

ファイルのエンコーディングを指定してファイルを開く,保存する

:e ++enc=utf-8 filename.txt
:w ++enc=utf-8 filename.txt

2 s2 cp932 Japanese (Windows only)
2 euc-jp Japanese (Unix only)
2 sjis Japanese (Unix only)
u utf-8 32 bit UTF-8 encoded Unicode (ISO/IEC 10646-1)
jis Japanese (Unix only)
u utf-16 ucs-2 extended with double-words for more characters
"ヘルプ参照

一般ユーザーで開いたファイルを管理者権限で保存する

sudo.vimプラグインを利用する

:w sudo:ファイル名 "ファイル名を指定
:w sudo:% "今編集中のファイル

プラグインを利用しない

:w !sudo tee %

バッファへ簡単に移動する

バッファリストとバッファの書き換え

:ls(buffers)バッファリストを表示する
:{N}bバッファNへ移動する
:#b直前に編集していたバッファ(裏バッファ)に移動する.<C-^>も同等

フォールド

zf折りたたむ例:zf%,zfG,zf10
zo元に戻す
zc再び折りたたむ
zr開く複数
zm閉じる複数

unite.vim

キー

ショートカットx

help

:help unite-actions :help unite-source

ファイル操作

開始:Unite file
終了q
移動,検索i,a
プレビューp

バッファ操作

開始:Unite buffer
消去d

ブックマーク

開始:Unite bookmark
追加:UniteBookmarkAdd

NERD_commenter.vim

コメントアウト

\cc 又は \c<Space>

コメントイン

\cu 又は \c<Space>

surround.vim

削除

ds" 又は ds( 又は ds[

置換

cs"( 又は cs([ 又は cs["

設定

ysw( 又は ys$( 又は ysf*(,

名前付きバッファ

"dyyカレント行をバッファdにヤンク
"a7yy7行をバッファaにヤンク
"dPバッファdの内容をカーソルの前に挿入
"apバッファaの内容をカーソルの後に挿入

vimgrep

標準

  • :vimgrep /hoge/ *.text |cwin

現在のバッファから

  • :vimgrep /hoge/ %

再帰的

  • :vimgrep /hoge/ **/*.text|cwin

Quicfixリスト(へ|から)移動

  • Ctrl + w

Quicfixリストを閉じる

  • :q(viコマンドと同様)

バイナリモード

  • vim -b

perlコマンド

:[range]perld[o] {cmd}

検索時のハイライト[消去]

:set hlsearch[nohlsearch]

プラグインディレクトリ

C:\Program Files\vim73-kaoriya-win32\vim73\plugin

http://sites.google.com/site/fudist/Home

このページへのコメント

r4Ebx1 Great article.Really thank you! Fantastic.

0
Posted by awesome things! 2014年01月23日(木) 01:12:31 返信

GGMLhn I really liked your article post.Much thanks again. Fantastic.

0
Posted by tips about seo 2013年12月21日(土) 11:40:59 返信

vim - Yamanobori_old鐃緒申Memo - Seesaa Wiki鐃淑ワ申鐃緒申鐃緒申鐃緒申 for 鐃緒申鐃殉¥申鐃夙フワ申鐃緒申 ??≪?潟?壔???若?? 2014 http://www.pslcbi.com/moncler2014.html

0
Posted by ??≪?潟?壔???若?? 2014 2013年12月06日(金) 23:18:48 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます