Bisakah saya menambahkan satu set kata ke kosakata pelengkap otomatis Vim?

13

Di Vim, saya sadar menggunakan CTRL-n dan CTRL-p untuk kata-kata pelengkapan otomatis yang ditemukan dalam dokumen. Ini bagus untuk mempromosikan penggunaan metode deskriptif dan nama variabel.

Saya ingin menambahkan satu set kata ke autocomplete yang saya sering tetapi tidak ada dalam file sumber yang sedang saya edit. Solusi saya saat ini adalah dengan hanya menambahkan daftar kata ke komentar di bagian bawah file templat saya, tetapi sepertinya sedikit boros dan kludgey di terbaik.

Apakah ada cara untuk menambahkan kata ke kosakata pelengkap otomatis Vim yang dapat diakses oleh setiap sesi Vim?

nyonya
sumber

Jawaban:

10

Anda dapat menggunakan singkatan dalam ~/.vimrcfile Anda hanya dengan beberapa kata:

: abbr supe superuser
: abbr autoc autocomplete
: pertanyaan abbr que

Ini akan selesai secara otomatis setelah menekan Spaceatau Enter. Jadi jika Anda mengetik quemaka tekan Spaceatau Enteritu akan menyelesaikan kata "pertanyaan" untuk Anda.

Jika Anda menambahkan banyak dan ingin antarmuka ini:

teks alternatif

Anda bisa menggunakan kamus . Cukup mengatur file dengan kata di setiap baris, lalu di .vimrc Anda tambahkan baris seperti ini:

set dictionary+=/home/john/dict.txt

Ganti jalur dengan lokasi file kamus Anda. Anda kemudian dapat menggunakan Ctrl+ xdan Ctrl+ kuntuk memunculkan saran. Ctrl+ ndan Ctrl+ puntuk memilih pilihan ganda berikutnya / sebelumnya.

John T
sumber
1
fantastis! saya akan menggunakan kamus!
madh
Ini berhasil! Saya tidak mendapatkan menu yang tampak bagus. Saya menggunakan VIM 6.3.82, yang bukan versi terbaru.
madh
Ah ... apakah memperbarui membantu? Anda perlu menekan urutan Ctrl-x, Ctrl-k untuk membuka menu. Senang bisa membantu :)
John T
Ini cara yang tepat.
di
Hanya memeriksa bahwa ini berfungsi di VIM 7.2. Terima kasih lagi!
madh
2

"Sumber" ke autocomplete reguler (yang Anda dapatkan dari Ctrl+ N) diambil dari completeopsi (lihat :h 'complete') Defaultnya adalah

complete=.,w,b,u,t

yang berarti

  1. . memindai buffer saat ini
  2. w memindai buffer dari jendela lain
  3. b memindai buffer yang dimuat lainnya yang ada di daftar buffer
  4. u memindai buffer yang tidak dimuat yang ada dalam daftar buffer
  5. t penyelesaian tag

Anda dapat menambahkan kamus Anda sendiri

set complete+=k~/.vim/keywords.txt

dan tambahkan satu kata kunci per baris di ~/.vim/keywords.txt. Dengan cara ini Anda dapat mengakses pelengkapan secara langsung dengan Ctrl+ N(tidak perlu menjabarkan penyelesaian kamus dengan Ctrl+ X, Ctrl+ K). Saya menemukan ini berguna khusus untuk melengkapi kode di mana saya memiliki semua nama fungsi yang umum digunakan dikeywords.txt

ecerulm
sumber