VIで新しい行を開かずに行頭に移動


230

何年もの間、私はを使用SHIFTOSHIFT$て、の行の最初と最後に移動しましたvi

ただしSHIFTO、カーソルの上に新しい行を開くためのものです。

行の先頭に移動するだけのコマンドはありますか?


9
以下の回答に加えて、Vimで:help left-right-motionsと入力すると、多くの情報が得られます。
ngm

vimの良い本:vimでの練習。^ 0
陈思秀

回答:


427

^または0(ゼロ)を通常モードで使用して、行の先頭に移動できます。

^カーソルを行の最初の非空白文字に
0移動します常にカーソルを「最初の列」に移動します

を使用Shiftiして移動し、挿入モードに切り替えることもできます。


5
また、Shift + AとShift + Iは、それぞれ行末と行頭に移動し、モデルの挿入に切り替えます
bibstha

7
私にとって、押すこと^は通常0w連続して押すことほど簡単ではありません。
DXDXY 2016



12

0または^を使用して、行の先頭に移動できます。+ を
使用して先頭に移動し、編集モードに切り替えることができます(挿入)。ShiftI


あなたの答えはほぼ正しいですが、小さな注意点があります。Shift+Iまたは、^カーソルを行のテキストの先頭に移動します。行nの先頭にタブがある場合、カーソルをn*tabstop + 1th列に移動します。しながら0移動するカーソル非常に最初の列の行の。
narendra-choudhary 2016年

10

別の方法があります:

|

それが「パイプ」です。ANSIレイアウトのバックスペースの下にある記号です。

Vim quickref(:help quickref)は次のように説明しています:

N      |      to column N (default: 1)

折り返された行はどうですか?

あなたがラップラインを持っている場合は有効になりません、0そして|、もはやスクリーン行の先頭に移動します。その場合は以下を使用します。

g0

再び、vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)

今、それが機能する理由がわかります。ありがとう。私は考えていた。同じキーを使用している0ため|、それよりも優れていると思い$ます。
WesternGun、2018年


6

挿入モードでカーソルを最初または最後に移動する

  • I -カーソルを現在の行の最初の非空白文字に移動し、挿入モードを有効にします。
  • A -カーソルを現在の行の最後の文字に移動し、挿入モードを有効にします。

ここではI同等です^+ i。同様A$+ と同等aです。

カーソルを最初または最後に移動するだけ

  • ^ -カーソルを現在の行の最初の空白以外の文字に移動します
  • 0 -カーソルを現在の行の最初の文字に移動します
  • $ -カーソルを現在の行の最後の文字に移動します

5

私はちょうど0(ゼロ)を見つけ、vimでshift + 0が機能します。


5
shift+0それの)次の文で、
ミハイ

Shift+0より良いです、^キャラクターを示し、それは迷惑です。ありがとう
calbertts 2017年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.