vimを業務で使い始めて約半年がたちました!
その過程で私が手にしたよく使う小技をいくつか紹介します!
検索系
現在のカーソル上の文字を検索
編集モードで検索したい文字列にカーソルを合わし*
を押してあげるだけです!
複数の文字を検索
|
を使うことで複数の文字列を検索することができます!
/検索文字列\|検索文字列2
検索で役立つvimrcの設定
setincsearch" インクリメンタルサーチ. 1文字入力毎に検索を行うsetignorecase" 検索パターンに大文字小文字を区別しないsetsmartcase" 検索パターンに大文字を含んでいたら大文字小文字を区別するsethlsearch" 検索結果をハイライト
vimgrepとQuickfixで検索結果一覧を表示!
通常の検索も便利ですが、vimgrepとQuickfixを用いた検索は検索結果一覧を表示できるの便利です!
画面移動を行ってEnterを押すだけで対象の行まで移動してくれるので非常にオススメです!
コマンド
:vim検索文字列(正規表現も使えます!)検索対象ファイル
vimrcの設定
" vim grepすると自動的にあたらしいウィンドウで検索結果一覧を表示する
autocmd QuickFixCmdPost *grep* cwindow
ファイル内検索
現在開いているファイル内で文字列を検索する際は%
を使用します!
:vimfunction %
別ファイル内の文字列検索
srcディレクトリ配下のファイルから特定の文字列を検索する場合
:vimfunction src/*
移動系
タイプした文字が次に出てくるところに移動
編集モードでf
を押した後に任意の文字列を入力すると、その文字列が次に現れるところに移動します。
(
まで移動したい時:f(
画面移動
半画面下:Ctrl + d
半画面上:Ctrl + u
ファイルトップ:gg
ファイルの最後:G
入力&削除系
1行削除:dd
1単語削除:de
削除した行をペースと: dd + p
カーソルより後ろの文字列削除:D
{}
や''
, ()
の中の文字をまとめて削除
di'
で''
ないの文字をまとめて削除します!
また、削除して入力モードに入りたい婆はci'
と入力します。()
内を削除したい場合はdi(
, ci(
に変わるだけです!
個人的にはコレがかなり優秀です!
DBのIPや条件文を修正する時に大活躍してます
ヴィジュアルモード
編集モードでv
を押すと、ヴィジュアルモードになります。
その状態でカーソルを移動、y
を押すと範囲コピーができます!y
ではなくx
を押すと選択した範囲を切り取れます!
矩形選択最高です
Ctrl + v
で矩形選択になります。
その状態で、yを押すと選択した範囲をコピーします!
また、選択している状態でI
を入力後、特定の文字を入力しESCすると選択した箇所に入力した文字を入れてくれます!
vimの動作環境に関する小技
カラースキーマ編
molkaiを設定した時、macの時は色鮮やかなカラースキーマが設定されますが、別の環境だと色合いがおかしいときがあります。そんな時はTERM
変数を確認してください!
TERM変数について
TERM変数は扱う端末の種類を表しています。
mac, debian, centosなど、linux系のOSでTERM変数をechoしてあげると、異なる値が出てきます。
$ echo$TERM
xterm-256color
root@1896d623ecce:/# echo$TERM
xterm
root@1896d623ecce:/#
[root@c7154b6a2960 /]# echo $TERM
xterm[root@c7154b6a2960 /]#
termとxterm-256colorではcolorが違うということがわかります!
xterm-256color: colors#256, cols#80, it#8, lines#24, pairs#32767,
xterm: colors#8, cols#80, it#8, lines#24, pairs#64,
vimでカラースキーマを使うにあたり、TERM変数は重要
この流れだと、わかるとおもいますがxterm
だと256colorに対応していないため綺麗なカラースキーマが実現されません。
そのため、新しく環境を用意した際などはTERM
変数を確認するようにしましょう。
echoでも問題ないですしenv
コマンドを打つと登録されている環境変数一覧を確認できます!
root@1896d623ecce:/# envHOSTNAME=1896d623ecceNJS_VERSION=1.13.6.0.1.14-1~stretchNGINX_VERSION=1.13.6-1~stretchPWD=/HOME=/rootno_proxy=*.local, 169.254/16TERM=xtermSHLVL=1PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin_=/usr/bin/env
その後、TERM変数にxterm-256colorが入るように設定してあげましょう
root@1896d623ecce:/# echoexportTERM=xterm-256color >> ~/.bashrc