はじめてのVim覚え書き

はじめてのVim覚え書き

  • 2018-07-28  最終更新日:2018-07-28

今回はエディターのご紹介になります。かなり特殊なVimエディターをご紹介したいと思います。便利なエディターAtom、SublimeText、VisualStudioCodeとは訳が違います。

ちょっと扱いにくいエディターVimなんですがローカル開発設定などをしているとちょくちょく出くわしてしまいます。このエディターは普通のエディターではなくいろいろとモードがあり普通に入力するのも大変です。まずはvimtutorから練習することをおすすめします。

ターミナルを立ち上げてvimtutorと入力すればできます。ターミナル内にてvimの練習ができますが以下のようなアプリの形式もあります。

目指せ一流vimmer!プログラマやサーバー開発者、エンジニアなどが利用しておりますがコーダーなどの利用者も多いです。慣れてしまうと戻れない便利さがあります。

かく言う私も何度も挑戦しては挫折の繰り返しでした。かなり面倒なんで。。。強制的に環境に置かないとやらないですね。


スポンサーリンク


Vimメリット・デメリット

vim

メリットはマウスを使うことなく高速に編集・操作が可能です。常にキーボードの上に手を置いた状態で扱うことができるので楽です。純粋なエディターなのでとにかく速いし軽い、カスタマイズも可能、ターミナル内での編集もできます。マルチプラットフォームなのでOSの環境に依存しません。

デメリットと言えばとっつきにくさです。特に慣れるまでが大変で結構敷居が高い気がします。ルールやコマンドなどを覚えないといけないことです。とにかく奥が深い、いきなり全部覚えなくても少しずつかまってやっていくことが大切かなと思います。

Vimモード

vim

基本的に以下の5つのモードがあります。カーソルキーとデリートキーを卒業することから始まります。vimtutorを何回かやるとなれてきます。

  • ノーマルモード
  • 入力モード (i)
  • コマンドモード (:)
  • ビジュアルモード (v)

基本的にはノーマルモードを主体として操作します。編集の際に入力モードやコマンドモード、ビジュアルモードを使って編集操作を行うことが多いです。()内の単語を入力したらそのモードに入ります。戻るときはESCボタンで戻ります。

移動

まずは移動系からファイル内の移動になります。ノーマルモードでの操作になります。

コマンド 内容
gg ページの先頭
G ページの最後
50G 50行目に移動
Ctrl + f / Ctrl + b ページ単位で移動
Ctrl + e / Ctrl + y 1行単位移動
Ctrl + d / Ctrl + u 半ページ分上下移動
H 画面上部
M 画面中央
L 画面下部
w / b 単語の先頭 / 単語の末尾
W / B 単語の先頭 / 単語の末尾(区切り文字を含めない)
e / E 単語末尾 / 単語末尾(区切り文字を含めない)
^ / $ 行頭単語/行末単語
0 先頭
% 対応する{}に飛ぶ

検索・置換

文字の検索・置換になります。こちらもノーマルモードからの操作になります。:はコマンドモードになります。

コマンド 内容
f(キーワード) / t(キーワード) 後方キーワード検索/後方キーワード直前まで検索
;でキーワードを続けて探す,で戻る
F(キーワード) / T(キーワード) 前方キーワード検索/前方キーワード直前まで検索
;でキーワードを続けて探す,で戻る
* / # カーソルに最も近い単語で前方検索 / 後方検索
/ 前方検索
? 後方検索
n / N 下方法に検索 / 上方向に検索
:s/foo/bar/
現在カーソルがある行の最初のひとつをfooをbarに置換
:%s/foo/bar/g
現在開いているファイルに出てくる全てのfooをbarに置換
:%s/foo/bar/gc c をつけると、確認(yes/no)が出る

選択

こちらはヴィジュアルモードになります。選択した状態でyをするとコピーしますのでpでペーストになります。

コマンド 内容
v 文字単位の選択
V 行単位の選択
Ctrl + v 矩形選択(くけいせんたく)
Ctrl + g ビジュアルモードとセレクトモードのトグル
gv 直前の選択を再選択
o 選択範囲の端に移動
gg V G 全選択

編集系

コピペやデリートなどノーマルモードから入力(インサート)モードへ入ります。

コマンド 内容
i / I カーソル前に入力 / 行頭に入力
a / A カーソル後に入力 / 行末に入力
o / O 改行して入力 / 一行前に入力
s / S 行削除して入力 / カーソル文字を削除して入力
c / C 現在地より右を削除して入力
r / R 置換モード
u アンドゥ
Ctrl + r リドゥ
x 1文字削除
D カーソル位置から行末まで削除。d$同義
dd 行削除
dw 単語削除
dap 一段落削除
di" ""(ダブルコーテーション)で囲まれた文字列を消す
<div class="text">テキスト</div><div class="">テキスト</div>
d2w 2単語削除
cit タグ内のテキストを削除してインサートモード
<div>テキスト</div><div></div>
yy 行コピー
p ペースト
"+p OSのクリップボードから貼り付ける
"+y vimの文章をOSのクリップボードにコピー
:%y 全体をコピー
:n,my n行からm行までを指定行をコピー(n,mは数字)
dG 現在位置以下削除
J / gJ 行の結合 / 行の連結スペースなし
g~ 大文字小文字の入れ替え
gu 小文字に変換
gU 大文字変換
> G インデントを深くする
< G インデントを浅くする
. 直前の操作を繰り返す
= インデントをそろえる
Ctrl + a インクリメント(ひとつずつ増える)
Ctrl + x デクリメント(ひとつずつ減る)
:6t. 6行目を現在行の下にコピー
:t6 現在行を6行目の下にコピー
:t. 現在行をコピー(ノーマルモードのyypに相当)

入力モード(インサートモード)

入力モード(インサートモード)による操作になります。

コマンド 内容
Ctrl + h 直前の文字を削除
Ctrl + w 直前の単語を削除
Ctrl + u 行頭までを削除
Ctrl + n 補完機能
ESC ノーマルモードに戻る

コマンド

コマンドモードでのファイル保存やファイル分割など

コマンド 内容
:w 上書き保存 ファイル名で名前をつけて保存
:q 終了
:q! 強制終了
:e / :E 開く / 現在開いているファイルが存在しているディレクトリをファイルエクスプローラで開く。
:sp 縦分割 ctrl + wウィンドウ移動
:vs 横分割
:close ウィンドウを閉じる
:tabnew タブ新規
:tabe タブ開く
gt タブ間移動
:tabclose タブ閉じる

設定

vimエディターに設定が行えます。.vimrcなどに設定しておけば毎回設定することなくカスタマイズができます。いろいろ出回っていますので自分に合った設定をしておくと後が楽ですね。

コマンド 内容
:set number / :set nonumber 業ナンバー表示 / 非表示
:syntax on / syntax off シンタックス表示 / 非表示
:set tabstop=4 タブを4文字分の設定
:set ic / :set noic 大文字小文字を区別しないで検索する / 区別する
:set nohlsearch / :set hlsearch 編集中にハイライトしないようにする

基本コマンドの意味がわかると覚えやすいかもしれません。

  • c : change (変更)
  • d : delete (削除)
  • y : yank (ヤンク: コピーと同義)
  • g : go (移動全般)

vimrc設定を以下から設定すると勉強になると思います。

参考になれば幸いです。


∞Tadashi Suyama∞

vim ヴィム ビム エディタ editor text
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

サイト内検索

最近の投稿

アイキャッチ
出雲神話祭り・花火大会

お盆休み中に出雲の花火大会に行って参りました、今年は8月12日(日)でした、開催日は毎年違いますので確認しておきましょう。だいたいこのあたりだった気がします。8,000発の花火で例年13万人が来...

21 Aug 2018

アイキャッチ
chromeのエクステンションを使わないでウェブページ全体をスクリーンショットでとる方法

さて今回はchromeブラウザ限定ですがエクステンションを使わずにページ全体と部分キャプチャをする方法をご紹介します。 割とエクステンションで処理しちゃう場合がありますがデフォルトで使えるとい...

05 Aug 2018

アイキャッチ
はじめてのVim覚え書き

今回はエディターのご紹介になります。かなり特殊なVimエディターをご紹介したいと思います。便利なエディターAtom、SublimeText、VisualStudioCodeとは訳が違います。 ...

28 Jul 2018

アイキャッチ
リニューアルした水木しげるロードは夜がおすすめ

さて、先日14日にリニューアルした境港の通称鬼太郎ロードに行って参りました。鬼太郎に会える町として新たに妖怪を追加して約800mの通りに177体の妖怪ブロンズ像がお出迎え、ゾーン分けをして再配置...

17 Jul 2018

アイキャッチ
flexboxで簡単レイアウト

Flexbox(Flexible Box Layout Module)とは今時のレスポンシブに対応したレイアウトスタイルです。上下中央の配置や等間隔の配置、固定幅と可変幅の配置など使い方は様々、...

07 Jul 2018

著者

ウェブエンジニアのSUYAMAのブログです。

WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。

フッターイメージ