draemonash2のメモ書き
cd ★VIM インストールフォルダ★
git clone https://github.com/VundleVim/Vundle.vim.git bundle/Vundle.vim
「``」(もしくは.vimrc)に以下の行を追加する
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
" 導入したいプラグインを以下に列挙
" Plugin '[Github Author]/[Github repo]' の形式で記入
Plugin 'airblade/vim-gitgutter'
call vundle#end()
filetype plugin indent on
" その他のカスタム設定を以下に書く
--remote-tab-silent
C:\prg_exe\Vim\gvim.exe C:\codes\_update_codes.vbs +5
Ctrl | Shift | Alt | Key | 機能 |
---|---|---|---|---|
Shift | [/] | 移動 前/次の空行 | ||
gv | 再度同じ範囲を選択 | |||
ge | 前単語の末尾へ移動 | |||
最後に検索に使用したワード検索 | ||||
v ⇒ o | 選択範囲の末尾にカーソルを移動 | |||
挿入モード⇒ |
簡易16⇒10進数変換(例では65535) | |||
/\V | テキストで検索 | |||
Shift | h/m/l | カーソル移動 画面 最上行/中央/最下行 | ||
+/- | 先頭に移動 次行/前行 | |||
Ctrl | f/b | 移動 1画面分 上/下 | ||
Ctrl | u/d | 移動 半画面分 上/下 |
機能 | コマンド | 説明 |
---|---|---|
共通 | vim -O file1 file2 | 垂直分割起動 |
共通 | vim -o file1 file2 | 水平分割起動 |
共通 | vimdiff file1 file2 | vim で diff |
共通 | :args AAA.txt BBB.txt CCC.txt | argsコマンドで一度に複数のファイルを開く |
共通 | :w %< | 現在開いているバッファ名 (拡張子を除いたもの) 取り出し(:w hoge と同等) |
共通 | :e #N (Nは任意の数字) | #N は、そのN番目のバッファの名前と同じ値になる |
共通 | q: | コマンド履歴を表示( Ctrl+C でカーソル位置のコマンドをコマンドウィンドウに転送) |
共通 | q/ | 検索履歴を表示( Ctrl+C でカーソル位置のコマンドをコマンドウィンドウに転送) |
共通 | %!xxd -g 1 | バイナリモードに変更 |
共通 | :set ic | 検索・置換時、大文字小文字の区別を有効 |
共通 | :set noic | 検索・置換時、大文字小文字の区別を無効 |
共通 | :set ★? | 現在の値を表示 ex) set number? |
共通 | :set ★& | デフォルト値に戻す ex) set number& |
共通 | :set ★! | On/Offのトグル ex) set number! |
共通 | 入力モードで |
辞書ファイルから単語補完 |
共通 | ;mes | エラーメッセージがすぐ消える場合、エラー表示させる |
共通 | :reg | レジスタ一覧表示 |
共通 | gf | インクルードファイルジャンプ |
共通 | gv | 直前選択範囲の再選択 |
共通 | /\c | 一時的に大/小文字無視検索 |
共通 | /\C | 一時的に大/小文字区別検索 |
共通 | :windo set scb | 同時スクロール |
共通(edit) | :%s/\v_(.)/\u\1/g | スネークケース→キャメルケース変換 |
共通(edit) | :%s/\v([A-Z])/_\L\1/g | キャメルケース→スネークケース変換 |
共通(edit) | “[a-z*+-]p または Ctrl-r[a-z*+-] | 指定したレジスタの内容をペースト |
共通(edit) | :ls | バッファのリストを表示 |
共通(edit) | Ctrl + a | 数字インクリメント |
共通(edit) | Ctrl + x | 数字デクリメント |
共通(jumpl) | :ju | ジャンプリストを表示する |
共通(jumpl) | :cle | ジャンプリストを空にする |
共通(mark) | :marks | マーク一覧表示 |
共通(mark) | m[a-zA-Z] | マーク追加(カーソル位置) |
共通(mark) | `` | マーク移動(to直前マーク) |
共通(mark) | C-o | マーク移動(to古いマーク) |
共通(mark) | C-i | マーク移動(to新規マーク) |
共通(mark) | `[a-zA-Z] | マーク移動(to指定マーク) |
共通(mark) | ‘[a-zA-Z] | マーク移動(to指定マーク行頭) |
共通(mark) | :delm [a-zA-Z] | マーク削除 |
共通(mark) | :delm! | マーク一括削除 |
共通(fold) | zi | 折りたたみの有効無効の切り替え(Invert ) |
共通(fold) | zf | 折りたたみの作成(範囲選択の開始行と終了行の末尾にマーカーを追加する)(Fold ) |
共通(fold) | za | 折りたたみの開閉(Activate ) |
共通(fold) | zA | 折りたたみの再帰的開閉 |
共通(fold) | zd | 折りたたみの削除(Delete ) |
共通(fold) | zE | 全折りたたみ削除(Erase ) |
共通(fold) | zR | 全折りたたみ開く(Reveal ) |
共通(fold) | zM | 全折りたたみ閉じる(Mask ) |
共通(win) | :b0, :b1, … | バッファ0,1,..に移動 |
共通(win) | :buffers | 編集中のバッファ一覧を表示 |
共通(win) | :Sex | ウインドウを分割してファイルエクスプローラを開く |
共通(win) | :vertical diffsplit |
カレントバッファと指定ファイルの差分をとる |
共通(win) | :windo diffthis | 開いている2バッファ同士の差分をとる |
共通(win) | :set scrollbind | 分割したバッファのスクロール同期 |
共通(win) | :set noscrollbind | 分割したバッファのスクロール同期を解除 |
共通(win) | Ctrl+w → w | 画面移動 |
共通(win) | Ctrl+w → p | 画面移動 |
共通(win) | Ctrl+w → k | 画面移動(上) |
共通(win) | Ctrl+w → j | 画面移動(下) |
共通(win) | Ctrl+w → l | 画面移動(右) |
共通(win) | Ctrl+w → h | 画面移動(左) |
共通(win) | Ctrl+w → + | 選択されている画面を1行分拡大する |
共通(win) | Ctrl+w → - | 選択されている画面を1行分縮小する |
共通(win) | Ctrl+w → = | 画面のサイズを等しくする |
共通(cmd) | コマンド|コマンド | コマンド連続実行 |
共通(cmd) | :redir end | コマンドリダイレクト 終了 |
共通(cmd) | :redir > file | コマンドリダイレクト 開始 |
共通(LF) | :set ff=dos | 改行コード 書換(*1) (dos/mac/unix) |
共通(LF) | :set ffs=unix,dos,mac | 改行コード 表示方法変更(閲覧時の自動判別用)br()→カンマで区切って優先度の高い順に指定 |
共通(LF) | :e ++ff=dos | 改行コード 表示方法変更(自動判別失敗時の読み直し用)(dos/mac/unix) |
共通(char) | :set enc=utf-8 | 文字コード(デフォルト) 書換(*2) (euc-jp/shift_jis/utf-8/..) |
共通(char) | :set fenc=utf-8 | 文字コード(現在ファイル) 書換(*2) (euc-jp/shift_jis/utf-8/..) |
共通(char) | :set fencs=euc-jp,shift_jis,utf-8 | 文字コード 表示方法変更(閲覧時の自動判別用)br()→カンマで区切って優先度の高い順に指定 |
共通(char) | :e ++enc=utf-8 | 文字コード 表示方法変更(自動判別失敗時の読み直し用) (euc-jp/shift_jis/utf-8/..) |
Grep | :vim {pattern} %|cw | vimgrepを実行&br()ex.vimgrep /hogehoge/j c:/test/**/*.txt|cw |
Grep | :bufdo vimgrepa {pattern} %|cw | バッファすべてに vimgrep &br()(★貼り付け時は「|」を半角に★) |
Grep | :RGrep 文字列 C:\00_work\trunk\C\jsp-1.4.4-full*.c | 特定のフォルダ配下のCファイルを再帰検索 |
Align | :Align ,(範囲選択後) | インデント調整(“,”のほかには”=” “+” “-“がある)(*3) |
Align | \abox(範囲選択後) | ボックスコメント設定(*4) |
DrawIt! | \di(範囲選択後) | 描画モード開始 |
DrawIt! | \ds(範囲選択後) | 描画モード終了 |
DrawIt! | \b (範囲選択後) | 四角形ボックス描画 |
DrawIt! | \e (範囲選択後) | ひし形ボックス描画 |
DrawIt! | v (範囲選択後) | v描画 |
DrawIt! | ^ (範囲選択後) | ^描画 |
DrawIt! | > (範囲選択後) | >描画 |
DrawIt! | < (範囲選択後) | <描画 |
Vundle | :PluginInstall | プラグインインストール |
surround | S’ | ビジュアルモードで選択した部分を ‘ で囲む |
surround | yss’ | 行全体を ‘ で囲む |
neosnippet | :NeoSnippetEdit | スニペットを編集 |
QuickFix | :copen | QuickFixウィンドウを開く |
QuickFix | :cw | 認識されたエラーや結果があればQuickFixウィンドウを開く (注) エラーや結果が何もなければ開かれない |
QuickFix | :cclose または :ccl | QuickFixウィンドウを閉じる |
QuickFix | :.cc | QuickFix内のカーソル下の箇所に移動 |
QuickFix | :cn | QuickFix内の次検索結果に移動 |
QuickFix | :cN | QuickFix内の前検索結果に移動 |
QuickFix | :cbuffer | QuickFixバッファ再読み込み |
showmarks | :DoShowMarks | マーク表示@現在バッファ |
showmarks | :DoShowMarks! | マーク表示@全バッファ |
showmarks | :NoShowMarks | マーク非表示@現在バッファ |
showmarks | :NoShowMarks! | マーク非表示@全バッファ |
showmarks | :[count]ShowMarksOnce | Display marks for [count] Cursorhold events. Mostly for mapping it like : nnoremap :ShowMarksOnce<cr> |
showmarks | :[count]PreviewMarks | Display marks of current buffer in pvw. Like ‘:marks’, but at the top of the window ;-). [count] is the same sa above. |
Vaffle | ~ | $HOMEを開く |
Vaffle | h | 親を開く |
Vaffle | l | 子を開く |
Vaffle | t | 新しいタブで開く |
Vaffle | 選択、解除 | |
Vaffle | * | 全て選択、全て解除 |
Vaffle | . | 隠しファイルを表示、隠しファイルを非表示 |
Vaffle | R | 更新 |
Vaffle | m | 移動 |
Vaffle | d | 削除 |
Vaffle | r | 名前変更 |
Vaffle | i | ファイル作成 |
Vaffle | o | ディレクトリ作成 |
Vimdiff | vim -d file1 file2 | vimdiff 起動 |
Vimdiff | vimdiff file1 file2 | vimdiff 起動 |
Vimdiff | :e | vimdiff 再比較 |
Vimdiff | :diffupdate | vimdiff 再比較 |
Vimdiff | [c | vimdiff カーソル移動 次のdiff |
Vimdiff | ]c | vimdiff カーソル移動 前のdiff |
Vimdiff | do | vimdiff 現在位置へ差分取り込み(diff obtain) |
Vimdiff | dp | vimdiff 現在位置から差分コピー(diff put) |
Vimdiff | :diffg | vimdiff 現在位置へ差分取り込み(diffget) |
Vimdiff | :diffpu | vimdiff 現在位置から差分コピー(diffput) |
Vimdiff | :diffoff | vimdiff diffモード終了 |
Vimdiff | :set diffopt+=vertical | vimdiff 垂直分割 |
Vimdiff | :set diffopt+=horizontal | vimdiff 水平分割 |
Vimdiff | :set diffopt+=icase | vimdiff 大小文字無視 |
Vimdiff | :set diffopt+=iwhite | vimdiff 空白数差異無視 |
Vimdiff | :set diffopt+=iwhiteall | vimdiff 空白変更全無視 |
Terminal | :term | ターミナルモード起動 |
Terminal | :term ++curwin | ターミナルモード起動(現在ウィンドウ) |
Terminal | :vert term | ターミナルモード起動(垂直分割) |
Terminal | :bo term | ターミナルモード起動(水平分割最下部) |
Terminal | :top term | ターミナルモード起動(水平分割最上部) |
Terminal | Ctrl+w → :quit | ターミナルモード終了 |
Terminal | Ctrl+w → . | ターミナル上でCtrl+w入力 |
Terminal | Ctrl+w → : | コマンドラインモード移行 |
Terminal | Ctrl+w → j | ウィンドウ移動(下) |
Terminal | Ctrl+w → k | ウィンドウ移動(上) |
Terminal | Ctrl+w → h | ウィンドウ移動(左) |
Terminal | Ctrl+w → l | ウィンドウ移動(右) |
Terminal | Ctrl+w → gt | タブページ移動(次) |
Terminal | Ctrl+w → gT | タブページ移動(前) |
Terminal | Ctrl+w → N or Ctrl+\ → Ctrl+n | Terminal-Normalモード移行 |
Terminal | i or a | Terminal-Normalモード脱出 |
Terminal | Ctrl+w → Ctrl+w | ウィンドウの切り替え |
Terminal | Ctrl+w → x | ウィンドウ入れ替え(現在ウィンドウ⇔一つ前ウィンドウ) |
Ctrlp | Ctrl+p | ctrlp 起動 |
Ctrlp | Ctrl+c or <esc> | ctrlp 終了 |
Ctrlp | Ctrl+d | 検索モード切替え(フルパス検索⇔ファイル名のみ) |
Ctrlp | Ctrl+r | 検索モード切替え(正規表現検索⇔通常検索) |
Ctrlp | Ctrl+f,Ctrl+b | 検索対象切替え(ファイル or バッファ or MRU) |
Ctrlp | Ctrl+j/k | ファイル選択(下/上) |
Ctrlp | Ctrl+a/e | カーソル移動(先頭/末尾) |
Ctrlp | Ctrl+u | コマンドラインクリア |
Ctrlp | Ctrl+n,Ctrl+p | コマンド入力履歴を辿る |
Ctrlp | Ctrl+\ | コマンドライン貼付け(レジスタ等) |
Ctrlp | Tab | ディレクトリ名補完 |
Ctrlp | CR(Enter) | ファイルオープン(現在ウインドウ) |
Ctrlp | Ctrl+t | ファイルオープン(新しいタブ) |
Ctrlp | Ctrl+v | ファイルオープン(垂直分割) |
Ctrlp | Ctrl+s,Ctrl+CR | ファイルオープン(水平分割) |
Ctrlp | Ctrl+z → Ctrl+o | ファイル,ディレクトリマーク→ファイルオープン |
Ctrlp | Ctrl+y | 新規ファイル作成at現在ディレクトリ) |
Linediff | 行選択 → :Linediff | 比較対象1追加 |
Linediff | 行選択 → :Linediff | 比較対象2追加&比較実行 |
Linediff | :LinediffReset | 追加済みの比較対象削除 |
★neosnipet ★tagbar ★winresizer ★vim-surround
原因:設定ファイルが小文字になっている!
%s/old1/new1/ge|%s/old2/new2/ge|%s/old3/new3/ge
【置換結果】
FooBarBazHogeBarFugaPiyoFirst
FooBarBazHogeBarFugaPiyoSecond
FooBarBazHogeBarFugaPiyoSecond
FooBarBazHogeBarFugaPiyoFirst
FooBarBazHogeBarFugaPiyoSecond
FooBarBazHogeBarFugaPiyoThird
FooBarBazHogeBarFugaPiyoSecond
FooBarBazHogeBarFugaPiyoFirst
FooBarBazHogeBarFugaPiyoThird
↓
FooBarBazHogeBarFugaPiyoFirst
FooFooBazHogeFooFugaPiyoSecond
FooFooBazHogeFooFugaPiyoSecond
FooBarBazHogeBarFugaPiyoFirst
FooFooBazHogeFooFugaPiyoSecond
FooBarBazHogeBarFugaPiyoThird
FooFooBazHogeFooFugaPiyoSecond
FooBarBazHogeBarFugaPiyoFirst
FooBarBazHogeBarFugaPiyoThird
\v(very magic) | \m(magic)(デフォルト) | \M(nomagic) | \V(very nomagic) |
---|---|---|---|
\ | \ | \ | \ |
. | . | ^ | |
* | * | ||
+ | |||
? | |||
= (*1) | |||
{ | |||
^ | ^ | ||
$ | $ | $ | |
( | |||
) | |||
| | |||
[ | [ | ||
& (*1) | |||
@ (*1) | |||
~ (*1) | ~ (*1) | ||
/ (*2) | / (*2) | / (*2) | / (*2) |
(*1) =,&,@,~は、Perlの正規表現方言ではメタ文字ではないのでハマりポイント (*2) 検索コマンド/で検索する場合、/でパターンを囲う場合
Perlのメタ文字 | Vimのメタ文字(very magic) | 説明 | 備考 |
---|---|---|---|
. | 同じ | 任意の1文字 | |
* | 同じ | 直前のアトムの繰り返し(0回以上) | 最長マッチ |
+ | 同じ | 直前のアトムの繰り返し(1回以上) | 最長マッチ |
? | 同じ(=も同じ) | 直前のアトム(0回、または1回) | 最長マッチ |
{n,m} | 同じ | 直前のアトムの繰り返し(n回以上m回以下) | 最長マッチ |
^ | 同じ | 先頭にマッチ | |
$ | 同じ | 末尾にマッチ | |
(…) | 同じ | グループ化してアトムにする | |
| | 同じ | 選択の区切り | |
[…] | 同じ | […]内の任意の1文字にマッチ | |
\w | 同じ | 単語を構成する文字([0-9A-Za-z_]) | |
\W | 同じ | 単語を構成する文字以外([\^0-9A-Za-z_]) | |
\d | 同じ | 数字([0-9]) | |
\D | 同じ | 数字以外([\^0-9]) | |
\s | 同じ | 空白文字(微妙に違う。後述) | |
\S | 同じ | 空白文字以外(微妙に違う。後述) | |
*? | {-} | 直前のアトムの繰り返し(0回以上) | 最短マッチ |
+? | {-1,} | 直前のアトムの繰り返し(1回以上) | 最短マッチ |
?? | {-0,1} | 直前のアトム(0回、または1回) | 最短マッチ |
{n,m}? | {-n,m} | 直前のアトムの繰り返し(n回以上m回以下) | 最短マッチ |
\b | <?or?> | 単語の境界にマッチ(<は単語先頭、>は単語末尾) | |
(?=atom) | atom@= | 幅ゼロの肯定先読み | kimura( takuya)@= (後に” takuya”が含まれる”kimura”を検索) |
(?!atom) | atom@! | 幅ゼロの否定先読み | kimura( takuya)@! (後に” takuya”が含まれない”kimura”を検索 |
(?<=atom) | atom@<= | 幅ゼロの肯定後読み | (inagaki )@<=goro (前に”inagaki “が含まれる”goro”を検索) |
(?<!atom) | atom@<! | 幅ゼロの否定後読み | (inagaki )@<!goro(前に”inagaki “が含まれない”goro”を検索) |
(?>atom) | atom@> | 幅ゼロの否定後読み | |
(?:…) | %(…) | グループ化して部分正規表現としてカウントしない |