LinuxのVimの使い方 その1~超基本~

vimコマンドのインストールを確認

$ vim --version

インストールが完了していると下記のように表示される

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:00:20)
適用済パッチ: 1-160
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
-balloon_eval    +float           +mouse_urxvt     -tag_any_white
-browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
-clientserver    -hangul_input    +netbeans_intg   +title
-clipboard       +iconv           +path_extra      -toolbar
+cmdline_compl   +insert_expand   +perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            +ruby/dyn        +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      -sniff           -xsmp
+eval            +mouse_dec       +startuptime     -xterm_clipboard
+ex_extra        +mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    -xpm
      システム vimrc: "/etc/vimrc"
        ユーザ vimrc: "$HOME/.vimrc"
     第2ユーザ vimrc: "~/.vim/vimrc"
         ユーザ exrc: "$HOME/.exrc"
       省略時の $VIM: "/etc"
省略時の $VIMRUNTIME: "/usr/share/vim/vim74"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -O2 -g -pipe -Wall -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc   -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,--enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE  -Wl,-z,relro  -L/usr/local/lib -Wl,--as-needed -o vim        -lm -lnsl  -lselinux  -lncurses -lacl -lattr -lgpm -ldl   -Wl,--enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE  -fstack-protector  -L/usr/lib64/perl5/CORE -lperl -lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc

インストールされていない場合は下記のコマンドでインストール
※管理者権限

# yum install vim

Ubuntuの場合は下記コマンドでインストール

$ sudo apt-get install vim

Vimの起動

$ vi

※「vi」でも「vim」でもよい

Vimの終了

「:q」と入力→Vim画面の最終行に「:q」と表示される。

Vimを終了するとシェルに戻る

ファイルを開く

指定したファイル名が存在しない場合は新規ファイル作成となる。
「testfile.txt」をいうフィルを新規作成する。

$ vi testfile.txt

→中身が空白のファイルが表示される。

ファイルを保存する

「:w」と入力。

既存のファイルの場合は上書き保存、新規作成したファイルはこの時点でファイルが保存される。「vi」コマンドで新規作成したファイルを保存せず終了すると、ファイルはそのまま消滅する。

ファイルを開いたが上書き保存せずに終了したい場合

:q!

Vimでのカーソル移動

h:左に移動
j:下に移動
k:上に移動
l:右に移動

文字の削除

消したい文字にカーソルを合わせ、「x」キーを押下。

文字の入力

ファイルを開いた後、「i」を押下。
→画面最終行に下記のように表示される。

-- 挿入 --

この状態を「インサートモード」と呼ぶ。「インサートモード」にしないとファイルに文字を入力することはできない。

「Esc」キーを押下すると「インサートモード」から「ノーマルモード」に戻る。

※「h」「j」「k」「l」を使用してのカーソル移動はノーマルモードで行う。

カーソルの右側に文字を入力したい場合

「i」の代わりに「a」を使って「インサートモード」になる。
※行末にテキストを追加していきたい場合などに使用。

単語単位でのカーソル移動

b:前の単語の先頭に移動
w:後の単語の先頭に移動

「b」「w」は「’」「(」なども単語として判断されるため、カーソル移動が細かくなってしまう。
スペース区切りでカーソル移動したい場合は上記「b」、「w」を押下する際に「Shift」キーも同時に押下する。

行頭/行末に移動する

0:行頭に移動する
$:行末に移動する

行番号で移動する

10行目に移動したい場合

10G

※「G」は「Shift」+「g」
※画面上には表示されません。

ファイルの最初の行、最終行への移動

gg:最初の行に移動する
G :最後の行に移動する

カット、コピー、ペースト

Vimではカット、コピー、ペーストの呼び方が他のエディタと異なります。

カット デリート(delete)
コピー ヤンク(yank)
ペースト プット(put)

デリート

「x」キー、または「d」コマンドでデリートが可能です。

「d」の後にカーソル移動コマンドを指定して使用します。

d$:行末までデリート
d0:行頭までデリート
dw:単語1つをデリート
dgg:最初の行までデリート
dG:最終行までデリート
dd:現在カーソルのある行をデリート

プット

「p」キーで貼り付けることができます。

上記「d$」などでデリートした文字列を「p」を押下するとカットアンドペーストができます。

ヤンク

デリートのコマンド「d」を「y」キーに置き換えると、コピー(ヤンク)することができます。

カーソル移動コマンドを同時に使用する方法も、デリートと同じです。

また「yy」で現在カーソルのある行をコピー(ヤンク)することができます。

元に戻す、やり直し

u:直前の操作を取り消したい場合(Undo)
Ctrl + r:間違ってアンドゥしてしまった場合に取り消す(redo)

Linux の一覧