0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Vimについて

Posted at

この記事の読者対象

  • 高速でプログラミングをしたい方
  • キーボードだけでコードを書きたい方

Vimとは何ぞや?

Vimとは世界でも広く使われているテキストエディタの拡張版です。
Vimには根強いファンがおり、Vim使いの事をVimmer(ビマー)と呼びます。
ボマーみたいですね。元ネタを知らない方はハンターハンターを今すぐ見て下さい。

Vimの特徴

  • コマンドを利用することで様々な操作を高速に実施することが可能
  • キーボードから手を離すこと無くほぼ全ての操作が可能

めちゃくちゃいいですよねぇ。
私はコードを書くときにマウスでフォルダを開き、ファイルを開きとしていました。
ですが、エンジニアさんがキーボードだけでファイルを開いて編集したりしていたので、私はなぜその方法でコードを書くのか聞きました。
エンジニアさん曰く、
「特殊なテキストエディタなので、色々な事を覚えないといけませんし、使い慣れるまでとても時間がかかります。しかし、高速にテキスト編集が出来ますよ!」
と仰ってましたが、その時はお恥ずかしながらちんぷんかんぷんで最近になってようやく理解が進んできました。
今はできるだけ、vimコマンドをうってコードを書くようにしています。

その時に必要なvimショートカットキーがあります。
ここが普通のショートカットとは違い、一癖ありますので実際に使ってみて便利だったと思ったコマンドを紹介したいと思います!

vimショートカットまとめ

vim ファイル名 ファイル編集
iでその場でインサートモード
aで直後の文字にインサートモード
Escでインサートモードから抜け出す
:wqで保存終了
:qで保存せずに終了
xでカーソル下の文字を削除

/で検索
h左、j下、k上、l右vim移動
ggで最初の行、Gで最終行にジャンプできる(home,endでも可能)
ctrl-fで1ページ後、ctrl-bで1ページ前に移動
大文字のH、M、Lはそれぞれ画面の最上部・真ん中、最下部の行にカーソルを移動する
=でその行のインデント位置を自動修正できる
uでアンドゥ、ctrl+rでリドゥ
ddで行全体を削除
コマンドモード時にShift + Vと入力すると行が選択される。 そして、dと入力すると削除
yyp (コピペ) と ddp (カットしてペースト) を覚えた

vimのモード

  • ビジュアルモード (vキー) がたぶん初心者に一番わかりやすい
  • インサートモード (iやaキーなど)
  • ノーマルモードは基本となるモード
  • コマンドモード (:) で各種コマンドを実行
  • オペレータとモーション
  • vimのキー(主にノーマルモードについて)は、大きく分けて「オペレータ」と「モーション」の2種類がある。これを把握することが大事。
オペレータ: 動詞として動作を指定する。主要なものは4つなのでここから覚えよう
モーション: 対象範囲を指定する

オペレータは意味のあるキーバインドになっているので、以下のような感じで覚える

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

ノーマルモードでは基本的に最初にオペレータを入力し、その後に範囲指定を行う(CUI的発想)が、ビジュアルモードでは範囲を最初に選んでそれからオペレータを入力する (GUI的発想)という違いがある。

さいごに

備忘録も兼ねて書きました。
Vim、使いこなせるように頑張ります(ー ー)!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?