【vim】vimの基本操作

2024/04/07に公開

はじめに

通常のテキストエディタに慣れていると使いづらいviエディタだが、Linux系のOSを使用していると、どうしても使う必用があったりする
この記事ではよく使いそうなviのコマンドや機能をまとめておく

viとvim

viとvimはどちらも似たような機能を持つテキストエディタだが、viのほうが歴史が長い
vimはviの機能追加を行ったものになっている
viは基本的にはどのlinuxシステムにもデフォルトでインストールされているが、vimは別途インストールする必要がある

vi: 1976年にBill Joyによって作成された。
Vim: 1991年にBram Moolenaarによって作成された。Vimは「Vi IMproved」の略で、viの拡張版として開発された。

設定ファイルの追加

各ユーザーのホームディレクトリに.vimrcファイルを作成することで、
vimに簡単な設定変更を加えることができる、よく使いそうな機能は下記。

" コメントアウト
set number
set tabstop=4
set nocompatible
set backspace=indent,eol,start

モードの変更

vimの特徴としてモード変換がある
基本的には挿入モードとノーマル・モードがあれば十分

command note
v (ノーマルモードから)ビジュアルモードへ
i (ノーマルモードから)挿入モードへ
esc ノーマルモードへ

ノーマルモード

コマンド一覧

command note
:q ファイルを閉じる
:q! ファイルを(破棄して)閉じる
:wq ファイルを(保存して)閉じる
/(word) ワード検索
(ワード検索中に) n 次の検索文字へ
(ワード検索中に) N 前の検索文字へ

ショートカット一覧 ~カーソル移動編

command note
0 行の先頭へ(インデント無視して先頭へ)
^ 行の先頭へ
$ 行の末尾へ
+ 下の行の先頭へ
- 上の行の先頭へ
gg ファイルの先頭へ
G ファイルの末尾へ

ショートカット一覧 ~ファイル操作編

command note
yy (Y) 一行ヤンク
*yy (*Y) *行ヤンク
dd 一行カット(切り取り)
*dd *行カット(切り取り)
p (下の行に)ペースト
P (上の行に)ペースト
"*p クリップボードからペースト
~ (カーソル文字の)大文字・小文字の変換

外部への貼り付け

エディタを使用していると
UbuntuにデフォルトでインストールされているvimはVim-tinyで、最小構成のためクリップボードを使うことができないらしい

# クリップボードが有効か確認する
# clipboardの横に+と表記されていれば有効
# -表記は無効を意味する
vim --version | grep clipboard

# 有効でない場合はvim-gtk3などのパッケージを入手する
#vim-gtk3の部分は任意のクリップボード機能がついているものでOK
sudo apt-get install vim-gtk3

貼り付けの際は、外部サイトなどからctrl+cなどでコピーして
ノーマル・モードで「"*p」コマンドを実行することでペーストされる

参考サイト

https://sy-base.com/myrobotics/vim/vim_use_clipboard/

Discussion