Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vim初心者に捧ぐ実践的入門

$
0
0

vimライトユーザの俺が説明する実践vim入門編

  • 対象者 : これからvimを使い始めようという人、開発者やwebデザイナ
  • 期待される成果 : vimが少しでも好きになる

vimとは何か

私の貧弱な語彙ではとても表しきれないので一言で言うと、高機能なテキストエディタだ。
使うまでに幾分かの修行を必要とすると言われているほど多機能、特殊な動作をする。
そんなツンツンのvimを使っているとそのうちデレてきて、私たちはvimからひと時も離れたくなくなるだろう。

何はともあれインストール

なるべく簡単に用意できる方法を選んでいます。
自前でソースコードからビルドするよっていう方はmercurialを使って世代管理するといいかと思います。
コマンド内の> と $は入力不要です

  • Windows

香り屋 KaoriYaからダウンロードして使うのが吉。
Windows+rを押してファイル名を指定して実行からcmdと打ち込みEnter→コマンドプロンプトが起動されます。
フォルダをC:\Appフォルダに解凍したのであれば以下のようにPATHを追加します。

>setx PATH "%PATH%";C:\App\vim74-kaoriya-win32
  • Mac

Homebrewを使います。
Homebewのインストールはここを参考にしてパッケージ管理システム Homebrew
Ctrl+Spaceを押してterminalと入力してEnter→Terminal.appが起動されます。

$ brew update
$ brew install lua
$ brew install macvim --devel --with-lua
$ echo$PATH#で/usr/local/binが無い場合$ export PATH="/usr/local/bin:$PATH"

brew update で私が作業した時に出たxcodeのライセンス同意しろよってエラー

$ brew update
Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
    xcodebuild -license
$ sudo xcodebuild -license #文章が表示されるので agree と入力してEnter
  • Debian,Ubuntu
$ sudo aptitudo vim

使ってみよう

$ vim ~/.vimrc

vimにはモードという概念があります。
通常時のノーマルモードと入力時のインサートモードです。
どっちのモードか分からなくなったら即escキーを入力してノーマルモードに戻りましょう。
vimではインサートモード中は普通カーソル移動しません。
入力漏れなどを発見した場合はノーマルモードに戻ってカーソルを移動しましょう。
早速使っていきます。最初は入力速度がべらぼうに落ちますが我慢します。

以下に簡単な入力操作の簡易表を用意しました。

操作vim
k
j
h
l
一文字削除x
インサートモードへi
次行を新規行として挿入してインサートモードへo
現在行に新しい行を追加してインサートモードへO
ノーマルモードへ(インサートモードで)esc

最初は上記のカーソル移動を見ながらでもいいので打ってみてください。

.vimrc
filetype plugin indent onsyntaxonsetnowrapsethlsearchsetignorecasesetsmartcasesetautoindentsetrulersetnumbersetlistsetwildmenusetshowcmdsetshiftwidth=4setsofttabstop=4setexpandtabsettabstop=4setsmarttabsetclipboard=unnamed

最後にノーマルモードで:wと入力してください。
これは保存です。同じく:qでvimでの編集を終了します。
以下に似た操作を列挙しておきます。

操作vim
上書き保存:w
名前をつけて保存:w ファイル名
編集終了:q
保存して終了:wq または :x
ファイルを開く:e ファイル名

ただしvimでは上書き保存していない編集中のファイルを閉じようとすると保存してませんぜって言われます。
編集をしたけどやっぱり保存しないといった場合は:q!のように最後に!を付けることによって強制的に上述した表の操作を行なうことが出来ます。

ちなみに上で保存したファイルはvimの設定ファイルです。
自分なりにこれは必須だと思うものをあげました。
設定した内容については次回投稿する記事で取り扱う予定です。

でもって何が便利なのか

今のところ普通のエディタやIDE(eclipseやvisual stusioなどの統合開発環境)に比べて使いづらい印象をウケていると思います。
今のところはそれでいいと思います。

こっからvimの操作での強みであるモーション(移動)とオペレータ(操作)について説明します。
今度は移動のチートシートです。移動はノーマルモードで行ないます。
ここから登場するC-Controlと同時押しで、2文字続いているものは続けて打ってください。

vim意味
w次の単語の先頭へ
e単語の最後へ
b前の単語の先頭へ
0行頭へ
$行末へ
ggファイルの先頭へ
Gファイルの最終行へ
%マッチする文字へ移動(対応する[]や()への移動)
C-f次のページへ
C-b前のページへ

まぁこんな感じでしょうか。

続いて操作です。

vim意味
yヤンク(コピー)
Y行をヤンク
pペースト
P現在位置にペースト
xカーソル下の一文字を削除
d削除
D行内のカーソル以降を削除
dd行を削除
u元に戻す
C-R操作を進める
r変更(一文字)
R変更(入力したもの全部)
c一文字消してインサートモードへ
C一行消してインサートモードへ
A行末に移動してインサートモードへ
aカーソルの一つ右からインサートモードへ
I行の始まり(文字の開始位置)からインサートモードへ
>右へインデント
<左へインデント
gu小文字へ
gU大文字へ

移動も操作も他にもいっぱいあるけど私が良く使うのはこんなところです。

では実際に操作してみましょう。
テストデータを用意したのでコピーしてvimでペーストしてください。

test_data
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim

[indent hoge [foo hoge] hoge]
(indent hoge (foo hoge) hoge)
[indent hoge [foo hoge] hoge]
(indent hoge (foo hoge) hoge)
[indent hoge [foo hoge] hoge]
(indent hoge (foo hoge) hoge)

少し気持ち悪いですが気にしないでください。洗脳じゃないです。
まずはw,e,bなどで移動を試してください。
ついでに%を押して対応する括弧に移動することを確認してください。
チートシートにありませんでしたがf[アルファベット]で行内の[アルファベット]の部分に移動します。
/[word]で検索を行なえます。/vimと打ってください。
n,Nでそれぞれ次と前の検索へ移動することができます。

操作は移動と組み合わせて使うことができます。
dwで次の単語の先頭まで削除が行なえます。
更に操作やモーションは回数指定が可能です。
10ddでは10行削除可能です。

もう一つ強力な機能としてテキストオブジェクトというものがあります。
例えば操作+iwで単語に対して操作を行ないます。
diwではカーソルの位置に関係なく単語を消せます。
以下によく使いそうなテキストオブジェクトのチートシートを示します。

vim意味
iw単語(以降iの部分はaでも代用可能です)
iW単語(空白含む)
is
itタグ
i]括弧("",'',(),<>,{})なども対応可能です)

テストデータの(indentあたりでyi)とすると括弧内をヤンクできます。
どっかでpでペーストしてみてください。
20ivimと入力した後にescでノーマルモードに戻るとこの気持ち悪いテストデータの作り方が...。
最後にdisとするとすごいことになるのでやってみて。

最後に

vimrcと追加プラグインによってvimはIDEに匹敵する、あるいはそれ以上の使い心地になる可能性を秘めています。
この記事の内容はかなり搔い摘んだ話です。
更にvimの基礎を深めたい方はターミナルでvimtutorと入力してvimのチュートリアルレッスンを開始できます。
テキストを読み進めながらいろいろやってみてください。

次回以降は今回扱えなかったビジュアルモードやコマンド、vimrc、プラグインの話に入っていく予定です。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>