Kata lengkap mode perintah Vim

10

Apakah ada cara untuk mendapatkan Vim dalam mode perintah untuk melengkapi kata-kata dari file saat ini? Katakanlah saya punya file ini:

one
two
three
once

dan saya memasuki mode baris perintah

:myruncommand o|

di mana |menunjukkan posisi kursor. Bagaimana cara saya membuat Vim selesai oneatau oncesaat menekan Tab?

Nickolay Kolev
sumber
Kutipan dari deskripsi skrip: "Dalam mode ':', penyelesaian hanya tersedia setelah tanda '/'." Tidak benar-benar apa yang saya butuhkan.
Nickolay Kolev

Jawaban:

2

Tidak mungkin secara asli, tetapi butuh sekitar satu menit untuk menemukan skrip ini dan yang ini di vim.org .

romainl
sumber
4

jawaban jamesc akan sering menjadi yang paling nyaman, tetapi untuk ketika Anda tahu sebelumnya bahwa Anda akan ingin menggunakan autocomplete untuk perintah atau string pencarian, atau fungsi lain yang hanya tersedia di buffer, berikut adalah cara lain untuk mendapatkan buffer yang sesuai :

  • Ketik q :untuk membuka buffer perintah
  • Ketik auntuk mulai memasukkan perintah baru: myruncommand o
  • Gunakan Ctrl+ N/ Ctrl+ Puntuk penyelesaian kata kunci, seperti dalam jawaban jamesc

Pada dasarnya, q :lakukan hal yang sama dengan : Ctrl+ F: membiarkan Anda memasukkan perintah seolah-olah Anda memasukkan teks dalam buffer. Demikian pula, q /dan / Ctrl+ Fkeduanya memungkinkan Anda mengetik string pencarian di buffer.

Michael Scheper
sumber
Jawaban yang bagus Command buffer adalah sesuatu yang saya ingin menjadi lebih baik dalam menggunakan.
jamesc
@ jamesc: Saya senang itu membantu Anda. Saya tidak tahu Ctrl+F, jadi jawaban Anda juga membantu saya.
Michael Scheper
1

Penyelesaian tersedia jika Anda memasuki riwayat mode perintah. Sangat berguna untuk mengubah atau mengulangi perintah yang sebelumnya digunakan.

Tekan q: dalam mode normal untuk masuk ke panel riwayat perintah.

Lihat http://vim.wikia.com/wiki/Using_command-line_history untuk detail lebih lanjut.

rvrsd
sumber
Dalam mode baris perintah, jika Anda mengetik Ctrl-friwayat baris perintah terbuka, dan jika Anda ingin menutup jendela itu Anda bisa mengetikCtrl-w q
SergioAraujo
1

Meskipun benar bahwa ini tidak dapat diselesaikan secara native dengan 'tab', ada kemungkinan:

  • Memasukkan perintah yang Anda inginkan dalam mode baris perintah. Untuk contoh di atas ini adalah:

    :myruncommand o
    
  • Sekarang tekan Ctrl-Funtuk masuk ke jendela perintah.

  • Gunakan Apindah ke akhir baris dan masuk ke mode Sisipkan.
  • Gunakan Ctrl-N/ Ctrl-Puntuk membuka penyelesaian kata kunci dan pilih opsi yang Anda inginkan - dalam contoh ini keduanya onedan onceharus tersedia karena keduanya ada dalam buffer terbuka.

Saya telah menambahkan jawaban ini karena pencarian saya untuk "vim complete word in command mode" membawa saya ke sini dan sepertinya ini merupakan solusi yang bisa diterapkan, walaupun itu tidak menggunakan kunci 'tab'.

Ini berfungsi untuk saya dalam Vim 7.4

jamesc
sumber
Saya seharusnya sudah menebak ada cara mudah untuk pergi ke buffer perintah / pencarian sementara sudah memasukkan perintah atau string pencarian! Terima kasih! Saya telah menambahkan jawaban berdasarkan jawaban Anda, untuk cara yang sudah saya ketahui. Tetapi tanpa ragu, Ctrl+Fitu lebih nyaman dalam banyak kasus. superuser.com/a/1016058/219388
Michael Scheper