viでのカーソル移動方法を一通りまとめました

  • このエントリーをはてなブックマークに追加
  • Pocket

viにおけるカーソルの移動にはコマンドを使うと便利だ。

Linuxでは左右上下の移動だけではなく、行頭へ行ったり、文末に行ったりといったコマンドは使わないと非常に不便なことが多い。

このページをぜひ参考にしていただければと思う。

vi におけるカーソルの移動

Emacsやviを始めとしたUnix Like Systemのエディタは非常に高機能であり、色々なショートカットやコマンドのキーバインドが存在する。主流クローンであるvimも例外ではない。

カーソル移動一つとっても多数のキーバインドが存在している。カーソルの通常移動からn文字分カーソルを移動、一単語分カーソルを移動などだ。エディタ上の移動速度は作業効率を大きくひきあげてくれるので、積極的に活用してゆこう。

またvimを使用する場合jp106配列よりもus101配列のほうを使用したほうがよい。

キーバインドがus101配列に最適化されているからだ。us101配列なキーボードは意外に家電量販店のPCコーナーやPCパーツショップでも入手できる。値段もピンキリなので、適当なものを選べばよいので、一度us101配列なキーボードも使用してみることをお勧めする。

移動はノーマルモードで

vimではカーソルの移動はノーマルモードで行う。vimをたちあげた標準の状態はノーマルモードとなっている。またEscキーを連打するとノーマルモードにもどってくるので、混乱したらEscを押してノーマルモードへも戻ってこよう。

viの移動コマンドたち

ホームポジションからのカーソル移動

まず最初に覚えるのは。「h」「j」「k」「l」この4つだ。それぞれ「hは左」「jは下」「kは上」「lは右」に移動するようになっている。右手のホームポジションから最低限の動きで基礎の移動が可能となっている。

vi デフォルト

カーソルが「printf」の「f」にある状態から移動してみよう。

「h」を押すと左にカーソルが移動する

vi h

カーソルが左に移動し、rの位置になっているのがわかるだろう。

「j」を押すと下にカーソルが移動する

vi j

続いて「j」を押すと、下に移動するのがわかる。

「k」を押すと上にカーソルが移動する

vi k

「k」は上に移動するコマンドだ。

「l」を押すと右にカーソルが移動する

vi l

lを押すと右に移動する。「(」の上にカーソルがあると、対になっている括弧が協調表示される。

基本的にvimの移動キーバインドは指にやさしいようになっている。慣れれば打ちやすいだろう。

また「3j」と打つと3行下へ移動できる。数字+移動キーを指定するとその分だけカーソルが移動する。

上下左右

上のように「h」「j」「k」「l」でも移動できるが、方向キーでも移動はできる。慣れないうちはこちらでもいいだろう。

単語毎に移動したい場合

「w」単語の先頭へ

vi w before

この状態から「w」を押すと以下のようになる。

vi w after

「b」前の単語の先頭へ

vi w after

この場合「int」の先頭へ戻ってくる。

vi w before

「e」単語の末尾へ

単語の最後にカーソルが移動するには「e」コマンドを使う。

vi e before

この場合は「hello_world」の「d」にカーソルが移動する。

vi e after

「ge」前の単語の末尾へ

geを叩くと、前の単語の末尾に移動する。ここら辺まで覚えている人はなかなかいないが、参考までに。

vi ge before

真後ろの単語の末尾「k」の部分にカーソルが移動する。

vi ge after

段落ごとの移動

viコマンドは段落ごとの移動もできる。

「{」段落の先頭へ移動

「{」は段落の先頭へ移動するコマンドだ。

vim 段落の移動

以下のように段落の始まりに移動する。

vi {

 

「}」段落の末尾へ移動

反対に末尾に移動する場合には「}」を押す。

vi 段落 after

以下のように段落の最後尾へ移動する。

vim 段落移動

一行内での特定の文字へ移動

「f」行の右方向に文字検索移動

「F」行の左方向に文字検索移動

例えば

next hello world

という文字列があった場合

nにカーソルを置いた状態で「fh」とするとhelloの先頭へ移動してくれる。

next_hello_world-b

next_hello_world-a

行頭と行末へ移動したい場合

「^」行頭へ移動する

行内の移動「^」で行頭へ移動する。

 行頭へ移動

「$」行末へ移動する

行末へ移動には「$」が使える。

行末への移動

ファイルの先頭と末尾への移動

ggもしくは:1とするとファイル先頭へ移動

vi 段落 after

ここで「gg」とすると、ファイルの一行目へ移動する。

文頭へ移動

Gもしくは:$とするとファイル末尾へ移動

反対に「G」と押すと、一番最後の行へ移動する。

文末に移動

行指定の移動

「:行番号」、例えば「:12」とすると、12行目にカーソルが移動する。

:12

画面送り

Control+F画面を下にスクロール

Ctrl+F

約一画面スクロールされる。

vim ctl f

Control+B画面を上にスクロール

反対にCtrl+Bで約一画面分バックスクロールされる。

vi Ctrl+B

 

まとめ

このページではviのコマンドによるカーソル移動についてまとめてお伝えした。

すべてを覚える必要はないが、使えると操作はどんどん早くなっていく。できる限り利用できるものは覚えてしまおう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*