Vimコマンド

Reading Time: < 1 minute

ファイル操作系Viコマンド

実際にコマンドによる操作の方法を見ていきましょう。

まずはじめに覚えるべきは「ファイル操作系のViコマンド」です。Vim(Vi)は終了の仕方も特殊なテキストエディタなので、「間違えてViで開いてしまったけど閉じ方が分からない!」なんて話もよく聞きます。

そこで、はじめに次の5つのコマンドを覚えましょう。

「保存のコマンド :w」
コマンドモード(開いたばかりの状態)のときに、このコマンドを実施することで保存することが出来ます。

“vi”というコマンドのみでファイル名を指定せずに新しいファイルを開いた場合は、

:w new_file_name.txt

というようにすることでnew_file_name.txtという名前のファイルとして保存することも可能です。

「強制保存のコマンド :w!」
ファイルによっては「読み込み専用」であったり、「他の人が開いている状態」であったりして、その場で警告が出て保存できない場合があります。それでも保存したい!という場合は、ビックリマークを付けて強制的に保存することも可能です。

「Viを閉じるコマンド :q」
特に編集をせずに、開いたViを閉じる場合は、 :q のコマンドを実行することで、テキストエディタを終了することが可能です。

「Viを強制的に閉じるコマンド :q!」
編集後に:qコマンドを実施しても、その編集が破棄されるという警告が出てそのままでは閉じることが出来ません。それでもViを閉じたい場合には、 :q!のコマンドを実施して強制的に閉じましょう。

「保存してからViを閉じるコマンド :wq」
:w と :q を組み合わせたコマンドです。編集内容を保存した上でViを閉じることが可能です。

「保存してからViを強制的に閉じるコマンド :wq!」
:w! と :q! を組み合わせたコマンドです。編集内容を強制的に保存した上でViを閉じることが可能です。

モード変更系コマンド

Viの基本操作はモード変更が出来ないと行えません。まずは基本的な編集が行えるように次の5つのコマンドを覚えましょう。

「カーソル位置の次の文字から編集を開始する a」
コマンドモードの時に aを押すことで、現在カーソルのある位置の次の文字から編集を開始することが可能です。最もよく使うインサートモード変更用のコマンドのひとつです。

「インサートモードを抜けるキー Esc」
Escキーを押すことで、インサートモードを抜けて再びコマンドでの編集などが出来るようになります。

「カーソルがある場所から編集を開始する i」
コマンドモードの時にiを押すことで、現在カーソルのある場所から編集を開始することが可能です。最もよく使うインサートモード変更用のコマンドのひとつです。

「先頭から編集を開始する I」
コマンドモードの時にI(shift + i)を押すことで、現在カーソルのある行の先頭へ移動してから編集を開始することが可能です。

「下に行を挿入して編集を開始する o」
コマンドモードの時にoを押すことで、現在カーソルのある行の下に1行追加して追加した行から編集を開始することが可能です。

移動系コマンド

Viにおけるスムーズな操作を支えている一つの要因は、様々なカーソル移動用のコマンドが存在していることです、概ねはじめは次の10個のコマンドを抑えておけば、不便を感じることは無いでしょう。

「左へ移動する h」
コマンドモードのときカーソルを左へ移動します。

「下へ移動する j」
コマンドモードのときカーソルを下へ移動します。

「上へ移動する k」
コマンドモードのときカーソルを上へ移動します。

「右へ移動する l」
コマンドモードのときカーソルを右へ移動します。

「先頭行へ移動する gg」
コマンドモードのときファイルの一番上の行へ移動します。

「最終行へ移動する G」
コマンドモードのときファイルの一番下の行へ移動します。

「行末尾へ移動する $」
カーソルを行の最後に移動します。

「行先頭へ移動する 0」
カーソルを行の先頭に移動します。

「行の文字の開始位置へ移動する ^」
カーソルを行の最初の文字に移動します。

「次の単語へ移動する w」
カーソルを次の単語に移動します。

編集系コマンド

特に数字と組み合わせると便利な編集系コマンドも覚えておきましょう。次の5つのコマンドを知るだけで、とても操作感が上がります。

「カーソル行をコピーする yy」
カーソルのある行をコピーします。

「カーソル行を削除する dd」
カーソルのある行を削除してコピーします。

「カーソル位置から後ろを削除する D」
カーソルがある位置から、後ろの部分を削除してコピーします。

「カーソル位置の後ろにペーストする p」
カーソルが有る位置の後ろにコピーしている内容を貼り付けます。

「カーソル位置にペースろする P」
カーソルが有る位置にコピーしている内容を貼り付けます。

検索系コマンド

「検索を行う /」
スラッシュの後に検索したい言葉を、

/検索したい言葉

のように入れることでその言葉がテキストエディタ内に存在するのか、どこにあるのかを検索することが出来ます。非常によく使うコマンドのひとつです。

「該当の単語を検索する #」
カーソルがある位置にある「単語」を検索することが出来ます。素早く検索が開始できる少し便利なコマンドです。

「検索結果を順にたどる n」
検索中に検索対象を次へ、次へ、とたどっていく事ができます。

「検索結果を逆順にたどる N」
検索中にnとは逆に前へ、前へ、とたどっていくことができます。

置換コマンド

少し指定方法が特殊で少し難しいですが、とても便利なコマンドなので是非覚えておきましょう。

「文字列をを別の文字列に置き換える :s」
検索範囲を指定して、検索後、該当の文字列を置き換えるためのコマンドです。以下のように記述することで、テキストエディタ全体から特定の文字列を全て置き換えることが可能です。

:s/置換したい文字/置換後の文字/g

またオプションを指定することで細かなルールを追記できます。例えば下記のように記述することで、

:s10,20/置換したい文字/置換後の文字/gc

10,20 => 10行目から20行目の間で、
g => 指定文字が1行に複数あっても全て対象として
c => 置換するか毎回チェックして実行

ということが可能になります。