内容へ移動
memo
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
tools:vi
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== vi ====== ===== コマンド系 ===== * 以前実行したコマンドを vi のウィンドウ上で編集して実行\\ :control + f * 編集を中断する\\ control + c, control + c * 修正した ~/.vimrc の内容を即座に反映させる。\\ :source ~/.vimrc ===== ファイル系 ===== * 文字コードを指定してファイルを開き直す\\ :e ++enc=文字コード (例):e ++enc=sjis * 文字コードを変更して保存する\\ :set fileencoding=utf-8\\ :set fenc=utf-8 * 指定可能な文字コード例\\ utf-8, euc-jp, shift_jis * 改行文字を指定して保存する\\ :set fileformat=dos\\ :set ff=dos * 指定可能な改行文字\\ dos, mac, unix * バイナリモードで開く\\ -b パラメータを付けてファイルを開き <code>vi -b xxx.bin</code> xxd コマンドを実行して、16進数表示し <code>:%! xxd</code> 編集したら -r を付けて xxd コマンドを実行して表示モードを元に戻し <code>:%! xxd -r</code> 保存する <code>:w</code> * 開いているファイルを再読み込み\\ :e! * カーソル位置のファイルを開く\\ gf ===== 検索 ===== * 検索前の位置に戻る。\\ * `` (バッククォートを 2つ) * Ctrl + O 押す都度戻る * Ctrl + I 押す都度進む * ヤンクした文字を検索欄にペースト\\ / で検索開始\\ Ctrl + r, " でペースト * 検索文字列を編集するバッファを表示\\ q/ * 大文字・小文字 * 識別する: set ic * 同一視する: set noic ===== netrw ===== * ファイル選択\\ mf * 選択したファイルを比較(最大3個まで)\\ md ===== 表示系 ===== * ステータス行表示\\ (常に表示) (ファイル名、編集状態、読み取り専用、文字コード、改行コード、行番号) <code>:set laststatus=2 :set statusline=%<%f\ %m%r%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l/%L,%v</code> ===== 編集系 ===== * 数字をカウントアップする。(1 => 2 => 3 ...)\\ control + a * カーソル位置の文字を [大文字 <=> 小文字] 変換して、カーソル位置を次に進める。\\ ~ * カーソル位置から [移動操作(f + 文字、w, b 等)] までの文字を [大文字 <=> 小文字] 変換する。\\ g~[移動操作] * カーソル位置から [移動操作(f + 文字、w, b 等)] までの文字を[小文字]に変換する。\\ gu[移動操作] * カーソル位置から [移動操作(f + 文字、w, b 等)] までの文字を[大文字]に変換する。\\ gU[移動操作] ===== 削除系 ===== * 行削除\\ dd * 3行削除\\ 3dd * 行頭まで削除\\ d0 * 行末まで削除\\ d$ * 文頭まで削除\\ d1G * 文末まで削除\\ dG ===== Undo ===== * undo\\ u * redo\\ control + r ===== 移動系 ===== * 対括弧に移動\\ % * 画面内で移動 * 画面の一番上に移動\\ H * 画面の真ん中に移動\\ M * 画面の一番上に移動\\ L ===== スクロール系 ===== * カーソル行がページの先頭にくるようにスクロール\\ zt または z + Enter * カーソル行がページの中央にくるようにスクロール\\ zz または z + . * カーソル行がページの先頭にくるようにスクロール\\ zb または z + - * 画面半分スクロール\\ * 上 : Ctrl + d * 下 : Ctrl + u * 1行スクロール * 上 : Ctrl + y * 下 : Ctrl + e ===== 置換 ===== * 置換後の文字列に改行文字を指定する。\\ Ctrl + v, m または Ctrl + v, Enter * 置換後の文字に ~(チルダ)を指定する。\\ \(バックスラッシュ)でエスケープする。 * :% で行った変換をもう一度行う。\\ & ==== 正規表現 ==== * 置換後に使う範囲を指定するためのかっこ '(', ')' はバックスラッシュ \ でエスケープする。\\ Mac の場合は option + ¥ で入力する。 ==== 複数ファイルにまたがった置換 ==== <code> :args **/*.txt :args :argdo %s/foo/bar/gc | update </code> ===== ウィンドウ ===== * 分割\\ :sp * 分割したウィンドウ間の移動\\ ctrl + w, w\\ ctrl + w, p * カーソルがあるウィンドウのみにする\\ ctrl + w, o\\ * カーソルがあるウィンドウを閉じる\\ ctrl + w, c\\ * ひとつに戻す\\ :q ==== 分割したウィンドウのサイズ調整 ==== * 同じサイズにする\\ ctrl + w, =\\ * 垂直分割 * カーソルがある方のウィンドウを大きくする\\ ctrl + w, +\\ [数値]ctrl + w, +\\ * カーソルがある方のウィンドウを小さくする\\ ctrl + w, -\\ [数値]ctrl + w, -\\ * 水平分割 * カーソルがある方のウィンドウを大きくする\\ ctrl + w, >\\ [数値]ctrl + w, >\\ * カーソルがある方のウィンドウを小さくする\\ ctrl + w, <\\ [数値]ctrl + w, <\\ ===== タブ ===== * タブ幅を設定\\ :set tabstop=4\\ :set ts=4 * オートインデント\\ :set autoindent\\ :set ai * C言語を意識したオートインデント\\ :set cindent * インデント幅\\ :set shiftwidth=4\\ :set sw=4 * ソフトタブ\\ :set expandtab ===== copy & paste ===== * 過去にyankした内容を貼付ける\\ * 1つ前 "0p * 2つ前 "1p * yankの一覧を見る\\ :di ===== 折りたたみ ===== * 折りたたみの切り替え\\ za * すべての折りたたみを開く\\ zR * すべての折りたたみを閉じる\\ zM ===== 実行系 ===== * 外部コマンドの実行結果をカーソル位置に取り込む\\ :r!<command> [<parameter>] * grep の検索結果を行番号付きで取り込む。\\ :r!grep -n <検索文字列> <対象ファイル> ===== grep ===== ==== vimgrep ==== === ファイルに対して === * grep実行\\ <code>:vimgrep /検索文字列/j 対象ファイル</code> * ※「j」:最初にマッチしたファイルを開かない * ※対象ファイル:ワイルドカード使用可 <code>:vimgrep /検索文字列/j 対象ファイル | cwin</code> または <code>:vim /検索文字列/j 対象ファイル | cw</code> * 最後に「 | cwin」を付けると、検索後すぐに結果一覧が表示される * 単語検索\\ \<\>で検索文字列を囲む\\ <code>:vim /\<検索文字列\>/j 対象ファイル | cw</code> * ディレクトリ階層を再起的に検索\\ ディレクトリ指定に %%**%% を入れると、そのディレクトリ階層以下のファイルが対象となる\\ <code>:vim /検索文字列/j java/src/**/*.java | cw</code> * 検索結果の一覧ウィンドウを開く <code>:copen</code> * 検索結果の一覧ウィンドウからファイルを開く\\ カーソルを開きたいファイルに移動して Enter * Quickfix の操作\\ * 次の検索結果に移動\\ <code>:cn</code> * 前の検索結果に移動\\ <code>:cp</code> * 開いたファイルを閉じる <code>:ccl</code> * vimgrep 実行前にカレントディレクトリを変更する。 <code>:cd ~/doc/html</code> === パッファに対して === * すべてのバッファに対して grep 実行\\ <code>:bufdo vimgrepadd /<検索文字列>/ %</code> * 現在のバッファに対して grep 実行\\ <code>:windo vimgrepadd /<検索文字列>/ %</code> ==== grep コマンドを使う ==== * 指定したディレクトリ以下を再帰的に大文字/小文字を区別せず検索して、結果をバッファに取り込む\\ :r! grep -ir --include "ファイルパターン" "検索文字列" <検索ディレクトリ>\\ (例)<code>:r! grep -ir --include "*.rb" "connect" src</code> * 指定したディレクトリ以下を再帰的拡張正規表現で検索して、結果をバッファに取り込む\\ :r! grep -Er --include "ファイルパターン" "検索文字列" <検索ディレクトリ>\\ (例) <code>:r! grep -Er --include "*.java" "0x[0-9]+" src</code> ===== ソート ===== * 全体をソートする\\ :1,$!sort * 範囲指定してソートする\\ 開始位置でマークする。\\ - (例) 開始位置にカーソルを置き、mx。(xでマークする) - 終了位置で以下をタイプ。 <code>:'x,.!sort</code> * 行番号を指定してソートする。\\ (例) 10行目から20行目までをソート\\ <code>:10,20!sort</code> ===== スキーマ ===== - ~/.vim/colors ディレクトリを作成。 - 作成したディレクトリにカラースキーマファイルをコピー。 - :colorscheme <スキーマファイル名>\\ (ディレクトリ ~/.vim/colors/ と、拡張子 .vim は付けなくてよい) * 起動時にスキーマファイルを読み込む場合は、~/.vimrc に指定。\\ colorscheme <スキーマファイル名> ===== Tips ===== * 複数の行頭に同じ文字列を挿入する。\\ - カーソルを行頭に移動。 - Ctrl + v で範囲選択。 - Shift + i を押して、挿入する文字列を入力。 - Esc で追加終了。\\ ※行頭でなくとも良い。(行頭はイメージをつかみやすくするため) * 連番を入力する\\ <code>r!jot -w'(\%d)' 10 r!ruby -e 'puts (1..10).to_a.join("\n")'</code> ===== Mac ===== * コマンド行で正規表現を使う時などのエスケープ文字 '¥' は、option + ¥ で入力する。(バックスラッシュ) ===== diff ===== * 2つのファイルを比較\\ プロンプトから <code>vimdiff <sourcefile> <targetfile></code> または、比較元を開いている状態で <code>:vertical diffsplit <target></code> 省略形\\ <code>:vert diffs <target></code> * diff を実行してファイル比較し、結果をウィンドウに表示。 <code>:r!diff -s -X ~/tmp/diffexcludefiles.txt source/ target/</code> (diffexcludefiles.txt の中身) <code> *.gif *.jar *.exe *.dll </code> ===== 初期設定 ===== ==== 拡張子 rb に対して 2桁でのインデント設定 ==== au BufNewFile,BufRead *.rb set tabstop=2 shiftwidth=2 * Unix系 vim の場合\\ ~/.vimrc * Windows用 Kaoriya版 vim の場合\\ ホームディレクトリの _vimrc ==== Windows用 Kaoriya版 vim ==== === 画面のテーマ === colorscheme koehler ホームディレクトリの _gvimrc に記述
tools/vi.txt
· 最終更新: 2012/02/03 19:18 (外部編集)
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ