vim/viはlinux OSで使用可能なエディタです。
UNIXから標準利用できる歴史のあるコマンドです。
vim/viではテキストファイルを更新することが可能です。
vim/viの概要と使用方法を紹介します
- vim/viの概要
- vim/viの使い方
vimとは
vim(vi/view)とはlinux OSで使用可能なエディタの一つです。
標準で利用でき、あらゆるテキストファイルを編集できます。
プログラミングや設定ファイルの変更なども可能です。
vimではショートカットキーが多いなど、メリットがたくさんあるため、Linux OSを使用している方には利用いただきたいエディタです。
vim/vi/viewの違い
vimは高機能なテキストエディタですが、関連コマンドにvi/viewがあります。
viはvimより古いエディタコマンドです。
viewは読み込み専用で閲覧するモードです。
ディストーションによっては、vi/viewとvimがシンボリックリンクとなっていることがあります。
筆者の環境でもシンボリックリンクでつながっているため、実質vim/viの差はありません。
コマンド実行例
$ ls -ltr /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 Apr 27 2018 /etc/alternatives/vi -> /usr/bin/vim.basic
vimでテキストを操作する
vimでテキストを操作する時は以下のコマンドラインを実行します。
コマンド形式
vim [ファイル名]
vi [ファイル名]
view [ファイル名]
vimのインストール
vimをインストールする手順を紹介します。
OSによっては、viのみでvimをインストールされていない場合があるため、vimをインストールしておくことを推奨します。
コマンドライン
sudo apt install vim
コマンド実行例
$ sudo apt install vim
[sudo] password for user:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
vim-runtime
Suggested packages:
ctags vim-doc vim-scripts
The following NEW packages will be installed:
vim vim-runtime
0 upgraded, 2 newly installed, 0 to remove and 6 not upgraded.
Need to get 8493 kB of archives.
After this operation, 37.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ports.ubuntu.com jammy-updates/main arm64 vim-runtime all 2:8.2.3995-1ubuntu2.17 [6827 kB]
Get:2 http://ports.ubuntu.com jammy-updates/main arm64 vim arm64 2:8.2.3995-1ubuntu2.17 [1667 kB]
Fetched 8493 kB in 28s (299 kB/s)
Selecting previously unselected package vim-runtime.
(Reading database ... 229970 files and directories currently installed.)
Preparing to unpack .../vim-runtime_2%3a8.2.3995-1ubuntu2.17_all.deb ...
Adding 'diversion of /usr/share/vim/vim82/doc/help.txt to /usr/share/vim/vim82/d
oc/help.txt.vim-tiny by vim-runtime'
Adding 'diversion of /usr/share/vim/vim82/doc/tags to /usr/share/vim/vim82/doc/t
ags.vim-tiny by vim-runtime'
Unpacking vim-runtime (2:8.2.3995-1ubuntu2.17) ...
Selecting previously unselected package vim.
Preparing to unpack .../vim_2%3a8.2.3995-1ubuntu2.17_arm64.deb ...
Unpacking vim (2:8.2.3995-1ubuntu2.17) ...
Setting up vim-runtime (2:8.2.3995-1ubuntu2.17) ...
Setting up vim (2:8.2.3995-1ubuntu2.17) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in a
uto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdi
ff) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in
auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview)
in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in aut
o mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in
auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in aut
o mode
Processing triggers for man-db (2.10.2-1) ...
vimでできること
vimの代表的な活用方法を紹介します。
vimにはモードという概念があります。
操作する前にモードを選択して操作していきます。
- コマンドモード
- 入力モード
- ビジュアルモード
コマンドモードでは以下のキー入力により操作を行うことが可能です。
- カーソル操作
- スクロール
- 文字操作(編集/削除/コピー/ペースト)
- 文字検索
- 文字置換
- タグジャンプ
vimの操作方法
vimの代表的な操作方法についてご紹介します。
カーソル操作
テキストファイルの編集/閲覧をするに当たり、必要になるのがカーソル操作です。
カーソル操作を行うには、以下のキーを入力します。
キー | 操作内容 |
---|---|
h | 左へ移動 |
j | 下へ移動 |
k | 上へ移動 |
l | 右へ移動 |
スクロール
スムーズに画面遷移するための操作を紹介いたします。
画面を上下に移動する際、ブラウザではマウスのホイールで操作しますよね。
vimでスクロールを行うには、以下のキーを入力します。
キー | 操作内容 |
---|---|
Ctrl + b | 上へ1ページスクロール |
Ctrl + f | 下へ1ページスクロール |
Ctrl + u | 上へ半ページスクロール |
Ctrl + d | 下へ半ページスクロール |
Ctrl + y | 上へ1行スクロール |
Ctrl + e | 下へ1行スクロール |
コピー/ペースト
文章を執筆するのに重要なのはコピー&ペーストです。
ソースコードを作成するときにも、同じ処理を別の場所に記述したいことは多々あります。
こんな時、必要になる操作を紹介します。
コピーを行うには以下のキーを入力します。
キー | 操作内容 |
---|---|
yy | 1行コピー |
yw | 1単語コピー |
ペーストを行うには以下のキーを入力します。
キー | 操作内容 |
---|---|
p | カーソル箇所にペーストする |
モード変更
vimで編集する場合、編集モードに変更する必要があります。
閲覧のみの場合は、編集モードを解除してカーソルモードに戻ります。
キー | 操作内容 |
---|---|
i | 編集モードに変更 |
Esc | カーソルモードに戻る |
文字削除
テキストを編集している時、誤って記述したものを削除したいのなら以下を入力します。
キー | 操作内容 |
---|---|
dd | 1行削除 |
d(行数) | 行削除(行数は%dで指定) |
dw | 1単語削除 |
検索
テキストファイル中の文字列を検索したい場合は、以下のコマンドを入力します。
キー | 操作内容 |
---|---|
/(検索文字列) | 文字列を検索 |
?(検索文字列) | 文字列を検索 |
置換
テキストファイルの文字を置換したい場合は、以下のコマンドを入力します。
キー | 操作内容 |
---|---|
%s/(置換前文字列)/(置換後文字列)/g | 指定文字を一括置換 |
%s/(置換前文字列)/(置換後文字列)/c | 指定文字を確認して置換 |
保存
エディタでテキストファイルを編集しただけでは保存できません。
保存したい時は以下のコマンドを実行します。
キー | 操作内容 |
---|---|
:w | カーソルモードを継続して上書き保存 |
:w (ファイル名) | カーソルモードを継続して別ファイルに保存 |
:wq | 上書き保存してvimを終了 |
:wq (ファイル名) | 別ファイルに保存してvimを終了 |
vim終了
テキストファイルの操作を終了したい場合は、以下のコマンドを実行します。
キー | 操作内容 |
---|---|
:q | vimを終了 |
:q! | vimを強制終了 |
タグジャンプ
ソースコードを作成したり閲覧したりする際に、関数の中身を確認したい時が多くあります。
そのときに、タグジャンプを利用して関数の中身を見に行くことができます。
タグ情報を作成するために、ctagsコマンドを実行してtagsファイルを作成します。
コマンド実行例
$ ctags -R
tagsファイルが参照可能なディレクトリへ移動してvimを実行してファイルを閲覧することでタグジャンプを実行できます。
キー | 操作内容 |
---|---|
Ctrl + ] | 関数へタグジャンプ |
Ctrl + t | 呼び出し元へ戻る |
vimの設定
vimの設定について紹介します。
日本語表示/入力
vimを日本語で扱いたい場合は、以下の設定が必要な場合があります。
:set encoding=utf-8
:set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
:set fileformats=unix,dos,mac
vimのメリット
vimはコマンドによる操作が可能なため、基本的にキーボードのみでテキストファイルを編集可能です。
Linux OSを使用する方はCUIでの操作を好むため、vimによるテキスト操作を好む傾向にあります。
vimは、キーボードのみで操作したいエンジニアにお勧めのエディタです。
vimのメリットを紹介します。
ショートカットが豊富
vimはショートカットキーが多く、慣れれば多様な操作を短時間で作業することが可能です。
単語のみをコピーしたり、行数指定でテキスト削除したりなど、ショートカットキーで細かい操作ができるのも特徴で、他のエディタにはない便利さがあります。
タグジャンプが便利
ソースコードを操作している時に便利なのが、タグジャンプです。
カーソルで指定している関数の呼び出し元にジャンプするというものですが、ソースコードを読んだり書いたりしている際に、対象の関数の操作を確認することがあり、タグジャンプを使用します。
有能なエンジニアでも処理を丸暗記しているわけではないため、その都度確認しながらソースコードを書いていきます。
呼び出し元をいちいち検索していては効率が悪いため、タグジャンプを使用して作業を進めれば、生産性が向上します。
カスタマイズできる
vimは自分好みにカスタムすることが可能です。
vimの設定を変更することで、表示内容等もカスタマイズすることができます。
vimのデメリット
vimのデメリットを紹介します。
導入のハードルが高い
vimはモードという概念があることと、ショートカットキーなどの操作方法を知らないとテキストファイルを操作することができません。
まずは操作方法を知るところから始まるため、Linux初心者は導入するのが難しいことがデメリットです。
まとめ
vimの概要と使い方を紹介しました。
- Linuxのエディタ
- ショートカットキーが多数あり便利
- 慣れが必要なエディタ
vimはキーボードのみで操作が可能なため、慣れればテキスト操作がスムーズに行えます。
Linux OSでプログラミングを行う際に、vimでテキスト操作を試しに行ってみましょう。
慣れるまでには時間がかかりますが、生産性が上がっていくことでしょう。