今回はVimというエディタについて学んだことをVimを使って記録してみたいと思います。
Vimはエディタということですが、今回Happiness Chainので学ぶまで私は触ったことがありませんでした。
少し調べてみると、難しいという意見やとても高性能で便利という意見まで様々です。
要するに、入り口のハードルが高く操作に慣れるまでは難しいけれど、慣れてしまったらとても高性能で使いやすいということなのでしょう。
慣れるまでは触り続けるしか方法がないので、少しずつ継続していきたいと思います。
Vimtutorを触ってみる
さて、Vimについて学ぶにはVimtutorで学ぶのが効率がいいようです。 早速Vimtutorを起動させます。
$ vimtutor
これでVimtutorが起動できます。
Vimtutorを起動すると7つのLessonがあります。
今回は1つずつ確認していきたいと思います。
Lesson1
- カーソルの移動
1. (h) 左に移動、(j)下に移動、(k)上に移動、(l)右に移動
- Vimの起動
- Vimを起動するにはターミナルで
vim FILENAME
と入力し<enter>
を押します。
- Vimを起動するにはターミナルで
- Vimの終了
- Vimを終了する際、全ての変更を破棄する場合は
<ESC> :q! <ENTER>
を押します。 - 変更を保存するには、
<ESC> :wq <ENTER>
を押します。
- Vimを終了する際、全ての変更を破棄する場合は
- 文字の削除
- カーソル上の文字を削除するには
x
を押します。
- カーソル上の文字を削除するには
- テキストの挿入と追加
i
でテキストの挿入ができるようになります。終了する際は<ESC>
を押します。A
でテキストを追加することができるようになります。終了する際は同じく<ESC>
をクリックします。
note:<ESC>
を押すと、ノーマルモードになるか、不要なコマンドがキャンセルされます。
Lesson2
- カーソルから次の単語までを削除するには、
dw
を入力します。 - カーソルから語尾までを削除するには、
de
を入力します。 - カーソルから行末までを削除するには、
d$
を入力します。 - 行全体を削除するには、
dd
を入力します。 - 動作を繰り返すには繰り返す回数と
w
を入力します。- 2回繰り返すには
2w
- 2回繰り返すには
- フォーマットを変えるコマンド
- operator ->
d
で削除などの操作をするためのものです。 - [number] -> 特定のmotionを繰り返すためのものです。
- motion -> テキスト上を移動する動きを指定します。
w
で文字の移動e
で文字の最後に移動$
で行の最後に移動
- operator ->
- 行の最初に移動するには、
0
を入力します。 - 動作の取り消し
- 直前のアクションを取り消すには、
u
を入力します。 - 行で行った全ての変更を取り消すには、
U
を入力します。 - 実行した取り消しを取り消すには、
CTRL-R
を入力します。
- 直前のアクションを取り消すには、
Lesson3
- 直前に削除したテキストを復元させるには、
p
を入力します。 - カーソルが示している文を置換させるには、
r
を入力します。 - 変更を指示するoperatorはmotionを組み合わせることで移動ができます。
ce
と入力すると、カーソルから語尾へ移動できます。c$
と入力すると、行末に移動できます。
- フォーマットの変更をするには、
c [number] motion
と入力します。
Lesson4
CTRL-G
でファイルのステータスとフィイルの中での場所を表示することができます。G
でファイルの最後に移動します。number G
でnumberで指定した行に移動します。gg
で最初の行に移動します。
- フレーズの検索と移動
- フレーズの後に
/
を入力すると、そのフレーズまでの中でフレーズを検索します。 - フレーズの後に
?
を入力すると、そのフレーズの後で、フレーズを検索します。 - 検索後に同じ方向で次に移動する場合は
n
を入力、逆方向に移動する場合はN
を入力します。 CTRL-O
で古い場所に移動、CTRL-I
で新しい場所に移動します。
- フレーズの後に
%
と入力すると(
や[
、{
などに一致する)
,]
,}
の場所にカーソルが移動します。- 様々な置換方法
:s/old/new
で、直近のoldからnewに置換します。:s/old/new/g
で、全てのoldをnewに置換します。#,#s/old/new/g
で、#行から#行目までを指定して、oldをnewに置換します。:%s/old/new/g
で、ファイル内のoldをnewに置換します。:%s/old/new/gc
で、置換する際に確認をします。
Lesson5
:!
コマンドの使い方:w FILENAME
で利用中のVimファイルをFILENAMEとしてディスクに書き込みます。- 選択した範囲のみを保存するには、
v
でスタート位置を選択し:
で終了位置を選択します。そのまま:w FILENAME
でFILENAMEとして選択した範囲を保存します。 :r FILENAME
と入力すると、入力した際のカーソルの位置から下にFILENAMEで検索したファイルの内容を貼り付けます。:r !ls
とすると入力したカーソルの位置から下にls
コマンドの結果を挿入します。
Lesson6
- 行の追加とインサートモードへの変更
o
で現在のカーソルの位置から下に行を追加してインサートモードになります。O
で現在のカーソルの位置から上に行を追加してインサートモードになります。
- テキストの挿入
a
でカーソルの後にテキストを挿入します。A
で行の最後にテキストを挿入します。
e
コマンドで言葉の最後に移動します。y
でコピー、p
でペーストします。R
でリプレイスモードになります。リプレイスモードを終了するには<ESC>
を押します。- ':set'オプション
:set ic
で大文字小文字を区別せずに検索します。:set is
で検索中に検索したフレーズを強調します。:set hls
で検索で一致したフレーズを全てハイライトします。
- オプションをオフにするには
no
をつけます。
Lesson7
- helpを表示するには、
:help
を入力します。 - コマンドのhelpを表示するには、
:help cmd
を入力します。 CTRL-W
を入力すると別のWindowに移動します。:q
でhelpを閉じます。- コマンドを入力する際、
CTRL D
を入力すると利用可能な補完機能が表示されます。<TAB>
を押すと、1つの補完機能が候補として表示されます。
終わりに
以上が、Vimtutorで学べる内容です。
実際に動かしならがでないとイメージしずらいことも多いかと思います。
またVimtutorで紹介されている内容が多岐にわたるので一度で覚えることは難しいでしょう。
機能によって実際に利用する頻度も異なると思いますので、必要なコマンドから覚えていけばいいように思います。
また今回はVimtutorで学んだことをVimにmarkdownで記録してみました。 作業した内容としては下記の流れです。
正直とても時間がかかりましたが、勉強にはなりました。