Saya tahu bagaimana cara umumnya bergerak dalam mode perintah, khususnya, melompat ke garis, dll. Tapi apa perintah untuk melompat ke ujung garis yang saya pakai saat ini?
vim
editor
keyboard-shortcuts
vi
garam
sumber
sumber
vimtutor
itu hebat. Mungkin mereka tidak tahu tentang itu?Jawaban:
Hanya kunci $ (tanda dolar) . Anda dapat menggunakan Auntuk pindah ke akhir baris dan beralih ke mode pengeditan (Tambah). Untuk melompat karakter non-kosong terakhir, Anda dapat menekan tombol glalu _.
Kebalikan dari Aadalah I(mode Insert di awal baris), sebagai samping. Menekan hanya ^akan menempatkan kursor Anda pada karakter spasi pertama non-putih.
sumber
g_
g_
variasi lebih bermanfaat karena tidak menyertakan karakter kosongSeperti yang dikatakan banyak orang:
tetapi juga:
sumber
|
perintah pipa dapat menghitung, misalnya 3 | untuk melompat ke kolom ketiga.g _ pergi ke karakter non-spasi putih terakhir.
g $ pergi ke akhir garis layar (ketika garis penyangga dibungkus beberapa garis layar)
sumber
b
pergi ke awal kata sebelumnya yang sama sekali bukan hal yang sama. Ini kira-kira setara dengan$ge
._
dang_
untuk visual / menarik, karena$
juga akan menyalin / menghapus karakter baris baru (LN).g_
adalah satu-satunya cara yang saya temukan untuk sampai ke ujung garis yang sebenarnya.$
pergi ke ujung garis bahkan ketika dibungkus untuk saya. Saya tahu tidak ada pengaturan untuk menyesuaikan perilakunya. Mungkin sudah dipetakan ulang oleh .vimrc Andag$
?Pertanyaan utama - ujung baris
$ pergi ke akhir baris, tetap dalam mode perintah
A pergi ke akhir baris, beralih ke mode insert
Sebaliknya - mulai dari garis (secara teknis karakter non-spasi pertama )
^ pergi ke awal baris, tetap dalam mode perintah
I (huruf besar i) pergi ke awal baris, beralih ke mode insert
Selanjutnya - mulai dari garis (secara teknis kolom pertama terlepas dari spasi putih )
0 (nol) pergi ke awal baris, tetap dalam mode perintah
0i (nol diikuti dengan huruf kecil i) mulai dari garis, beralih ke mode memasukkan
Bagi mereka yang mulai belajar vi, berikut adalah pengantar vi yang baik dengan mendaftar perintah berdampingan vi untuk gerakan kursor Windows GUI Editor dan tombol pintas khas.
editor vi untuk pengguna Windows
sumber
I
tidak0
tetapi^
, karena keduanyaI
dan^
pergi ke karakter non-spasi pertama dari baris tetapi0
pergi ke kolom nol (seperti namanya).0
? (pergi ke karakter pertama (= kolom 0) dari baris dan pergi ke mode insert)0i
. :-)Jika baris Anda saat ini membungkus layar yang terlihat ke baris berikutnya, Anda dapat menggunakan g $ untuk sampai ke ujung garis layar .
sumber
gw
dangq
merupakan perintah yang memformat ulang teks. (lihat:h gw
dan:h gq
) Apa yang mungkin terjadi adalah Anda melakukangw{motion}
dan mengubah beberapa teks sehingga garis layar sesuai dengan baris yang sebenarnya.Tanda dolar: $
sumber
Dalam banyak kasus, ketika kita berada di dalam string kita tertutupi oleh tanda kutip ganda, atau saat menulis pernyataan kita tidak ingin menekan escape dan pergi ke akhir baris itu dengan tombol panah dan tekan tanda titik koma (
;
) hanya untuk mengakhiri garis. Tulis baris berikut di dalam file vimrc Anda :Apa kata garis? Ini memetakan Ctrl + l ke serangkaian perintah. Ini sama dengan Anda menekan Esc(mode perintah), $(ujung jalur), a(tambahkan) sekaligus.
sumber
vim
tentu saja memungkinkan Anda untuk melakukan lebih banyak dalam waktu lebih sedikit dengan hal-hal seperti ini. @razorxpress, penyesuaian kecil akanimap <C-l> <Esc>A
, yang membuat Ctrl + l setara dengan menekanEsc
(keluar dari mode insert), kemudianA
(tambahkan ke akhir baris).inoremap <C-l> <C-o>A
Keuntungan dari tombol 'End' adalah berfungsi baik dalam mode normal dan menyisipkan.
'$' hanya berfungsi dalam mode normal / perintah tetapi juga berfungsi di editor vi klasik (baik untuk mengetahui kapan vim tidak tersedia).
sumber
Perhatikan juga perbedaan antara garis (atau mungkin garis fisik) dan garis layar . Baris diakhiri oleh karakter End Of Line ("\ n"). Baris layar adalah apa pun yang terjadi untuk ditampilkan sebagai satu baris karakter di terminal Anda atau di layar Anda. Keduanya terpisah jika Anda memiliki garis fisik lebih panjang dari lebar layar, yang sangat umum saat menulis email dan semacamnya.
Perbedaannya juga muncul di perintah end-of-line.
Jika Anda selalu lebih suka perilaku yang terakhir, Anda dapat memetakan kembali kunci seperti ini:
sumber
g_
adalah non-spasi putih terakhir dari garis fisik . Bagaimana dengan garis layar?Tekan Auntuk masuk ke mode edit mulai dari akhir baris.
sumber
Atau ada jawaban yang jelas: gunakan Endkunci untuk pergi ke akhir baris.
sumber
Saya tidak dapat melihat hotkey untuk macbook untuk menggunakan vim di terminal standar. Semoga ini bisa membantu seseorang. Untuk pengguna macOS (diuji pada macbook pro 2018):
Untuk dua perintah terakhir kadang perlu mengetuk dua kali.
sumber
Mungkin tidak terkait, tetapi jika Anda ingin memulai baris baru setelah baris saat ini, Anda dapat menggunakan o di mana saja di baris tersebut.
sumber
Opsi termudah adalah dengan memasukkan $. Jika Anda bekerja dengan blok teks, Anda mungkin menghargai perintah {dan }untuk masing-masing memindahkan paragraf ke belakang dan ke depan.
sumber
Saya sudah terbiasa dengan Home / End membuat saya memulai dan mengakhiri baris dalam mode Insert (dari penggunaan di Windows dan saya pikir Linux), yang tidak didukung Mac. Ini sangat menjengkelkan karena ketika saya menggunakan vim pada sistem jarak jauh, saya juga tidak bisa dengan mudah melakukannya. Setelah beberapa percobaan dan kesalahan yang menyakitkan, saya datang dengan
.vimrc
baris - baris ini yang melakukan hal yang sama, tetapi terikat ke Ctrl-A untuk memulai baris dan Ctrl-D untuk akhir baris. (Untuk beberapa alasan, Ctrl-E saya kira dicadangkan atau setidaknya saya tidak bisa menemukan cara untuk mengikatnya.) Nikmati.Ada grafik yang baik di sini untuk kode karakter kontrol ASCII di sini untuk orang lain juga:
http://www.physics.udel.edu/~watson/scen103/ascii.html
Anda juga dapat melakukan Ctrl-V + Ctrl-, tetapi itu tidak menempel juga ke tempat-tempat seperti ini.
sumber