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は右」に移動するようになっている。右手のホームポジションから最低限の動きで基礎の移動が可能となっている。
カーソルが「printf」の「f」にある状態から移動してみよう。
「h」を押すと左にカーソルが移動する
カーソルが左に移動し、rの位置になっているのがわかるだろう。
「j」を押すと下にカーソルが移動する
続いて「j」を押すと、下に移動するのがわかる。
「k」を押すと上にカーソルが移動する
「k」は上に移動するコマンドだ。
「l」を押すと右にカーソルが移動する
lを押すと右に移動する。「(」の上にカーソルがあると、対になっている括弧が協調表示される。
基本的にvimの移動キーバインドは指にやさしいようになっている。慣れれば打ちやすいだろう。
また「3j」と打つと3行下へ移動できる。数字+移動キーを指定するとその分だけカーソルが移動する。
上下左右
上のように「h」「j」「k」「l」でも移動できるが、方向キーでも移動はできる。慣れないうちはこちらでもいいだろう。
単語毎に移動したい場合
「w」単語の先頭へ
この状態から「w」を押すと以下のようになる。
「b」前の単語の先頭へ
この場合「int」の先頭へ戻ってくる。
「e」単語の末尾へ
単語の最後にカーソルが移動するには「e」コマンドを使う。
この場合は「hello_world」の「d」にカーソルが移動する。
「ge」前の単語の末尾へ
geを叩くと、前の単語の末尾に移動する。ここら辺まで覚えている人はなかなかいないが、参考までに。
真後ろの単語の末尾「k」の部分にカーソルが移動する。
段落ごとの移動
viコマンドは段落ごとの移動もできる。
「{」段落の先頭へ移動
「{」は段落の先頭へ移動するコマンドだ。
以下のように段落の始まりに移動する。
「}」段落の末尾へ移動
反対に末尾に移動する場合には「}」を押す。
以下のように段落の最後尾へ移動する。
一行内での特定の文字へ移動
「f」行の右方向に文字検索移動
「F」行の左方向に文字検索移動
例えば
next hello world
という文字列があった場合
nにカーソルを置いた状態で「fh」とするとhelloの先頭へ移動してくれる。
行頭と行末へ移動したい場合
「^」行頭へ移動する
「$」行末へ移動する
行末へ移動には「$」が使える。
ファイルの先頭と末尾への移動
ggもしくは:1とするとファイル先頭へ移動
ここで「gg」とすると、ファイルの一行目へ移動する。
Gもしくは:$とするとファイル末尾へ移動
反対に「G」と押すと、一番最後の行へ移動する。
行指定の移動
「:行番号」、例えば「:12」とすると、12行目にカーソルが移動する。
画面送り
Control+F画面を下にスクロール
約一画面スクロールされる。
Control+B画面を上にスクロール
反対にCtrl+Bで約一画面分バックスクロールされる。
まとめ
このページではviのコマンドによるカーソル移動についてまとめてお伝えした。
すべてを覚える必要はないが、使えると操作はどんどん早くなっていく。できる限り利用できるものは覚えてしまおう。
コメント