Bagaimana cara bekerja dengan mode baris perintah dengan cara vi?

10

Apakah ada cara untuk berinteraksi dengan mode baris perintah sementara selalu tetap di posisi rumah?

Secara khusus, dua tindakan berikut ini merepotkan, mengharuskan untuk memindahkan jari ke tombol panah dan kadang-kadang lebih buruk, mouse.

  1. Bergerak: Apakah ada cara untuk bergerak bolak-balik dalam mode baris perintah sambil tetap di posisi yang biasa?
  2. Bagaimana Anda bisa menyalin dan menempel di baris perintah? Maksud saya menyalin baik dari bagian baris perintah itu sendiri ke bagian lain, atau dari teks atau bahkan clipboard.
Shahbaz
sumber
1
Keduanya dapat diselesaikan dengan menggunakan jendela baris perintah dengan :q; ini membuka jendela "seperti-buffer" baru, di mana Anda dapat menggunakan hjkluntuk gerakan, yuntuk menarik, dll.
Martin Tournoij
1
@Carpetsmoker (maksud Anda q:, kan?) Senang tahu! Saya tidak sengaja sampai di sana di masa lalu, tetapi tidak benar-benar berpikir untuk menggunakannya. Tampaknya tidak berfungsi dengan baik /(pencarian).
Shahbaz
Ups, ya, maksud saya q: ... Saya tidak pernah menggunakannya terlalu banyak, jadi saya tidak bisa memberikan jawaban lengkap / tepat ...
Martin Tournoij

Jawaban:

17

Ada baris perintah (yang Anda tahu), dan ada jendela baris perintah (baris perintah dalam buffer khusus, yang dapat Anda edit seperti yang lain). Anda memasukkan ini baik melalui <C-f>dari baris perintah (juga untuk /pencarian dll) ketika Anda merasa perlu untuk lebih "kekuatan mengedit", atau langsung dari mode normal melalui didedikasikan q:, q/, dll perintah.

Baca lebih lanjut tentang ini di :help command-line-window.

Ingo Karkat
sumber
4
<C-f>sangat berguna untuk diketahui, karena itu berfungsi setelah Anda sudah setengah jalan melalui perintah.
Shahbaz
1
Saya setuju; itu :datang hampir secara otomatis untuk saya, jadi ada baiknya untuk beralih tanpa kembali ke mode normal.
Ingo Karkat
11

Selain menyediakan jendela baris perintah , Vim juga menawarkan beberapa fitur terbatas yang memungkinkan Anda berinteraksi dengan baris perintah saat dalam mode baris perintah ( tanpa menggunakan tombol panah).

Gerakan

  • <ctrl-b> pindahkan kursor ke awal baris perintah
  • <ctrl-e> pindahkan kursor ke akhir baris perintah

Editing

  • <ctrl-h> hapus karakter sebelum kursor (seperti backspace)
  • <ctrl-w> hapus kata sebelum kursor
  • <ctrl-u> hapus semua dari kursor kembali ke awal baris perintah

Anda tentu saja dapat menambahkan pemetaan baris perintah dengan :cnoremapuntuk meniru tombol navigasi program lain tertentu . Atau pasang plugin RSI Tim Pope untuk menggunakan binding Readline standar de facto.

Menempelkan

Anda dapat menempelkan isi register apa pun ke dalam baris perintah di posisi kursor dengan menekan <ctrl-r>diikuti oleh karakter yang menentukan register. misalnya <ctrl-r>, +akan memasukkan konten clipboard ke dalam command-line; <ctrl-r>, "akan menyisipkan isi dari register "tanpa nama" (yaitu isi dari penghapusan terakhir atau penarikan).

Lihat :help cmdline.txtuntuk rincian lebih lanjut dari semua hal di atas.

Kaya
sumber
1
Luar biasa! <ctrl-r>akan sangat berguna.
Shahbaz
Ya, saya bahkan menggunakan ^Rmakro. Itu telah membiarkan saya melakukan manipulasi teks yang sangat rumit dengan menarik sebagian file selama makro, dan kemudian, juga selama makro, menggunakan bagian yang ditarik dalam perintah Ex-mode yang panjang dengan ^R. :)
Wildcard