概要
vimコマンドを一通り記載します
準備
1)vimインストール
2)ユーザ環境変数のpathに追加して再起動
以下のパスデフォルトであることが多い
C:\Program Files\Vim
3)ホームディレクトリのVimfiles内にvimrcファイルを作成する
C:\Users\ユーザ名\vimfiles
vimコマンド
vim.txt
◆便利
コマンド補完
ctrl+pまたはctrl+n
半画面分 上へ
ctrl+u
半画面分 下へ
ctrl+d
行末に移動しインサートモード
A
行頭に移動しインサートモード
I
広範囲の単語の削除(スペースとスペースの間)
diW
選択範囲の削除
dawやda"やcawやca"
コマンドモードでの履歴表示
q:
◆繰り返し
直前のコマンドを再実行
.(ドット)
n行分削除
ndd
順方向に繰り返し検索
;
◆選択系とコピー、ペースト系
カーソル行の末尾に改行
o
カーソル行の先頭に改行
O
コピーしたい場合
y
カットしたい場合
d
カーソル位置の行をヤンク
yy
カーソル位置の行からn行目までをヤンク
ynG
カーソル位置の行から最初の行をヤンク
ygg
カーソル位置の行から最後の行をヤンク
yG
カーソル位置から指定の文字の上までをヤンク
yf{char}
指定の文字数分ヤンク
{number}yl
単語のヤンク
yiw
カーソル位置の後ろにペースト
p
直前の操作を取り消し
u
カーソル位置の行を削除
dd
カーソル位置の行を削除してインサートモード
cc
カーソル位置の行からn行目までを削除
dnG
カーソル位置から行末まで削除
D
カーソル位置から行末まで削除してインサートモードC
◆インデントを整理する
1)Shift+v
2)行選択(J or K)
3)上げる場合は<
下げる場合は>
◆タブ分割
垂直分割してファイルを開く
:vsplit filename
分割したウィンドウを閉じる
:clo
◆ファイル差分
下記は現在開かれているタブページ内を比較対象とする
:windo diffthis
差分表示の終了
:windo diffoff
◆短形選択モードでの操作
1)Ctrl+vで短形選択モードに入る
2)hjklで追加したい行頭(行末)を選択する
3)行頭に挿入する(I)で//を入力する
4)Escキーを押す
◆エクスプローラー表示
エクスプローラー表示する
:Explore
タブでファイルを開く
t
新規ファイル作成
:edit filename
◆分割された画面
カーソルを1つ下のwindowに移動
<Ctrl+w>j
カーソルを1つ上のwindowに移動
<Ctrl+w>k
◆外部コマンド使用
カレントディレクトリ一覧
:! ls
ファイル削除
:! del *.c
C++の使用
:! g++ Main.cpp -o hello
外部コマンドの実行結果を開いているファイルのカーソルの下の行に記録する
:r! g++ Main.cpp -o hello
◆移動系
指定の行(53行目)へ移動:
53gg
ファイルの先頭に移動
gg
単語の終端に移動
e
ファイルの末尾に移動
G
その行の順方向に一文字検索
f
その行の逆方向に一文字検索
F
先頭行に合わせる
zt
最下行に合わせる
zb
インサートモードでカーソルを一行下に移動
ctrl+j
◆検索・置換
キーワード補完インサートモードで合致する単語を順方向から検索
ctrl+n
前方検索
/pattrn
後方検索
?pattrn
検索結果のハイライトを消去する
:noh
カーソル位置の単語を検索して移動する
*n
指定の行の指定の文字ないし文字列を置換する:<開始行番号>,<終了行番号>s/<置換前>/置換後/g
例)122行目のTest2をTest3に置換したい場合
:122s/2/3/g
◆ファイル全体で確認をしながら置換
:%s/置換前/置換後/gc
例)以下の選択ができる
y:置換する
n:置換しない
q(Esc):置換モード終了
◆アルファベットの大文字と小文字を切り替える
ビジュアルモードで大文字
U
ビジュアルモードで小文字
u
◆grep
★準備
1)Git for Windowsに含まれるgrepを使用する
Git for Windowsの公式サイトからインストーラをダウンロードし、インストール
2)インストール時に「Use Git from the Windows Command Prompt」を選択するか、
インストールディレクトリ(例:C:\Program Files\Git\usr\bin)をシステムの環境変数PATHに追加
3)vimrcに下記を追加する
set grepprg=grep\ -nH\ $*
★活用方法
1)カレントディレクトリの確認
:pwd
2)検索フォルダやホームディレクトリへの移動
:cd /path/abc/def
:cd ~
3)カレントディレクトリ内の全てのファイルを検索
:grep hoge *
★Quickfixリストでのナビゲート
リストを開く
:copen
リストの検索先に移動する
:cc [number]
リストの次の検索結果
:cnext
リストを前の検索結果
:cprev
リストを閉じる
:cclose
◆タブ操作
タブの新規作成
:tabnew
次のタブに移動
gt
複数のファイルをタブで開く
vim -p file1.txt file2.txt
現在のタブを閉じる
:tabclose
◆インクリメントデクリメント
インクリメント
ctrl+a
デクリメント
ctrl+x
◆複数行をまとめて連結する
ビジュアルモード (SHIFT-V) で複数行を選択してから J
◆インサートモードで使用できるコマンド
一文字削除
Ctrl + h
一単語削除
Ctrl + w
現在の行でカーソルより前に入力した文字をすべて削除
Ctrl + u
◆ファイル操作
直前の操作を取り消し(アンドゥ)
u
戻る(リドゥ)
ctrl+r
保存
:w
終了
:q
保存して終了
:wq
すべてのタブで作業を保存して終了する
:wqa
すべてのタブで作業を保存せず終了する
:qa!
新規ファイルの保存
:w filename
コマンド履歴の表示
q:
◆モード切り替え
ビジュアルモード
v
行末に移動しインサートモード
A
行頭に移動しインサートモード
I
ノーマルモード
ctrl+c
vimrcの内容
set number
set guioptions-=m
syntax on
colorscheme wildcharm
set expandtab " タブ入力を複数の空白入力に置き換える
set tabstop=4 " 画面上でタブ文字が占める幅
set softtabstop=4 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅
set autoindent " 改行時に前の行のインデントを継続する
set smartindent " 改行時に前の行の構文をチェックし次の行のインデントを増減する
set shiftwidth=4 " smartindentで増減する幅
" 挿入モードでバックスペースで削除できるようにする
set backspace=indent,eol,start
set incsearch " インクリメンタルサーチ. 1文字入力毎に検索を行う
set ignorecase " 検索パターンに大文字小文字を区別しない
set smartcase " 検索パターンに大文字を含んでいたら大文字小文字を区別する
set hlsearch " 検索結果をハイライト
" 検索結果がファイル末尾まで進んだら、ファイルっ先頭から再び検索
set wrapscan
" バックアップファイルを作成しない
set nobackup
set noswapfile
" カーソルを行末の一時文超えるようにせてい
set virtualedit=onemore
" ビープ音を消す
set belloff=all
" マッチ件数を表示
set shortmess-=S
" クリップモードとヤンク
set clipboard+=unnamedplus,unnamed
" フォントとサイズ
set guifont=Consolas:h16
set wildmenu " コマンドモードの補完
set history=5000 " 保存するコマンド履歴の数
" リスト文字の表示設定
" set listchars=tab:>-,space:·
" リスト表示を有効にする
" set list
vimrcの内容(準備が必要な設定)
set grepprg=grep\ -nH\ $*