Pergi ke awal baris tanpa membuka baris baru di VI

231

Untuk usia sekarang saya telah menggunakan SHIFTOdan SHIFT$untuk berpindah ke awal dan akhir baris di vi.

Namun SHIFTOlebih untuk membuka baris baru di atas kursor.

Apakah ada perintah yang hanya membawa Anda ke awal baris?

rix
sumber
9
Selain jawaban di bawah ini, ketik: bantu gerakan kiri-kanan di Vim untuk banyak info.
ngm
buku yang bagus untuk vim: berlatihlah dalam vim. ^ 0
陈思秀

Jawaban:

428

Anda dapat menggunakan ^atau 0(Nol) dalam mode normal untuk pindah ke awal baris.

^memindahkan kursor ke karakter non-kosong pertama dari garis
0selalu memindahkan kursor ke "kolom pertama"

Anda juga dapat menggunakan Shiftiuntuk bergerak dan beralih ke mode Sisipkan.

Xavier T.
sumber
5
Juga Shift + A dan Shift + I masing-masing ke akhir dan awal baris dan juga beralih ke Sisipkan Model
bibstha
7
Bagi saya, menekan ^biasanya tidak semudah menekan 0dan terus wmenerus.
DXDXY
33

Sederhana 0akan membawa Anda ke awal baris.

:help 0 untuk informasi lebih lanjut

Fredrik Pihl
sumber
25

Coba solusi cheatsheet Vi / Vim ini untuk banyak masalah.

Untuk mode normal:
0- [nol] ke awal baris, kolom pertama.
$- ke akhir baris

penasaranMonkey
sumber
12

Anda dapat menggunakan 0atau ^untuk pindah ke awal baris.
Dan dapat menggunakan Shift+ Iuntuk pindah ke awal dan beralih ke mode pengeditan ( Sisipkan ).

a8m
sumber
Jawaban Anda sebagian besar benar tetapi ada peringatan kecil. Shift+Iatau ^akan memindahkan kursor ke awal teks pada baris. Jika garis memiliki ntab di awal, itu akan memindahkan kursor ke n*tabstop + 1kolom th. Sementara 0memindahkan kursor ke kolom paling pertama dari garis.
narendra-choudhary
10

Ada cara lain:

|

Itu adalah "pipa" - simbol yang ditemukan di bawah backspace dalam tata letak ANSI .

Vim quickref ( :help quickref) menggambarkannya sebagai:

N      |      to column N (default: 1)

Bagaimana dengan garis yang dibungkus?

Jika Anda telah mengaktifkan garis pembungkus, 0dan |tidak akan lagi membawa Anda ke awal garis layar. Dalam hal ini gunakan:

g0

Lagi, vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)
Andriy Drozdyuk
sumber
Sekarang saya mengerti mengapa itu berhasil. Terima kasih. Aku ingin tahu. Saya pikir ini lebih baik daripada 0karena |dan $berada pada tombol yang sama.
WesternGun
7

Ketik "^". Dan dapatkan tutorial "Vi" yang bagus :)

Skippy Fastol
sumber
6

Pindahkan kursor ke awal atau akhir dengan mode insert

  • I - Memindahkan kursor ke karakter non blank pertama pada baris saat ini dan memungkinkan mode penyisipan.
  • A - Memindahkan kursor ke karakter terakhir pada baris saat ini dan memungkinkan mode penyisipan.

Di sini Isetara dengan ^+ i. Demikian pula Adengan $+ a.

Hanya memindahkan kursor ke awal atau akhir

  • ^ - Memindahkan kursor ke karakter non blank pertama pada baris saat ini
  • 0 - Memindahkan kursor ke karakter pertama pada baris saat ini
  • $ - Memindahkan kursor ke karakter terakhir pada baris saat ini
rashok
sumber
5

Saya baru saja menemukan 0 (nol) dan shift + 0 bekerja pada vim.

brian_wang
sumber
5
shift+0itu ), yang merupakan kalimat berikutnya
mihai
Shift+0lebih baik, ^menunjukkan karakter dan itu menjengkelkan. Terima kasih
calbertts
1

0 Membawa Anda ke awal baris

Shift 0 Membawa Anda ke akhir baris

Sagar Jain
sumber
Shift-0 (')') tidak akan membawa Anda ke awal baris
Boris Churzin
@Devenv: Itu benar! 0 akan
Sagar Jain
1
Shift-0 (")") adalah "kalimat maju" bukan "akhir dari garis" (itulah yang saya maksudkan)
Boris Churzin