Memindahkan (efisien) secara vertikal di Vim

27

Ketika saya ingin mencapai bagian tertentu dari sebuah kata dalam Vim (secara horizontal) saya cukup menekan w, b, f atau t (sesuatu). Apakah ada cara yang baik untuk melakukan ini secara vertikal? Misalnya, saya ingin mendapatkan kata atau surat tertentu dari baris di bawah atau di atas baris yang saat ini saya gunakan.

PS: Tanpa menggunakan: (nomor baris)

janoChen
sumber

Jawaban:

29

H, Mdan Lakan memindahkan kursor Anda ke atas, tengah dan bawah layar, masing-masing. Selanjutnya, Anda dapat menekan zzke tengah layar pada garis kursor Anda aktif.

Alison R.
sumber
5
Dan zb dan zt masing
Jani Hartikainen
11
  • Anda dapat menggunakan panah atas / bawah untuk memindahkan satu baris
  • Anda dapat mengetik angka dan kemudian menggunakan panah atas / bawah untuk bergerak ke atas / ke bawah yang banyak baris
  • glompatan kecil ke baris pertama dokumen
  • modal Gmelompat ke baris terakhir dokumen
  • dll.

ada banyak cara lain yang berbeda, vim sangat fleksibel dalam hal ini. Saya akan merekomendasikan untuk mendapatkan lembar contekan vim terlebih dahulu untuk perintah-perintah dasar, dan kemudian ketika Anda punya waktu, buka dokumentasi vim pada subjek ini.

Tautan ke satu lembar contekan: Cheat sheet

Juga:

  • /+ string + (Enter)mencari kemunculan string berikutnya dari kursor maju ke akhir dokumen
  • ? - melakukan hal yang sama tetapi dari kursor mundur menuju awal dokumen

sumber
6

Saya melompat-lompat dengan mencari string unik ke mana saya ingin pergi. Di Vim, Anda dapat melakukan ini dengan:

/ search-string

Saya biasanya menggulir maju dan mundur menggunakan n dan N setelah saya memasukkan pencarian.

Saya juga gulir menggunakan Ctrl-F dan Ctrl-B ke halaman melalui kode dengan cepat. Tapi saya paling sering menggunakan trik pencarian. Kadang-kadang Anda bisa tersesat ketika melalui hasil pencarian dengan n dan N. Perintah yang baik untuk mengarahkan diri Anda adalah Ctrl-G, yang mencetak sesuatu seperti ini di bagian bawah layar Vim:

"script.pl" baris 219 dari 328 --66% - kolom 19-23

James Thompson
sumber
+1 untuk <CTRL> -F dan <CTRL> -B, meskipun saya cenderung "menipu" dan menggunakan <PgUp> dan <PgDown> hampir sesering mungkin!
technomalogical
4

coba:: he motion.txt dan: he up-down-motions

Ini memiliki seluruh daftar gerakan yang mungkin naik

michael
sumber
3

Anda juga dapat membuat lompatan ke baris tertentu dalam dokumen dengan menerbitkan Ngg di mana Nnomor baris yang ingin Anda lompati.

mloskot
sumber
1
maksud Anda NG...
Peter
1
Saya menggunakan Nggjuga (kedua varian bekerja)
soulmerge
1
Serta:N
viraptor
2

seperti yang disebutkan sebelumnya HJ, M, L (seperti dalam hjkl huruf kecil tinggi, sedang, rendah) adalah perintah permainan konsol khas untuk kiri, bawah, atas, kanan dan bekerja sama di vi (j, k bekerja di gmail jika Anda mengaktifkan perintah kunci)


sumber
1

<Ctrl>+D - bawah

<Ctrl>+U - naik

sml
sumber
Itu setengah halaman gulir. Untuk penggunaan gulir halaman penuh <c-f>dan<c-b>
Al.G.
1

Selain gerakan vertikal biasa, saya menggunakan versi /programming/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines yang dimodifikasi . Saya biasanya bergerak dengan tombol panah, bukan hjkl (waktu looong pengguna editor lain sebelum saya menemukan Vim, juga digunakan untuk panah / Home / end / PgUp / PgDn untuk beralih, bahkan setelah 5 + tahun penggunaan Vim eksklusif).

function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")

Dengan menahan Ctrl, saya dapat melihat secara visual untuk memulai / mengakhiri baris tampilan atas / bawah. Bagi saya ini lebih efisien daripada alternatif, setidaknya.

Hampir lupa: Saya perlu memodifikasi.

Daniel Andersson
sumber