11

Tôi đang cố gắng đạt được điều gì đó đơn giản, thường được gọi là "gợi ý chức năng". Ví dụ, biên tập Scintilla dựa trên có nó:Các gợi ý về chức năng Vim cho C

enter image description here

Bạn gõ một cái tên, và chỉ nhận được nguyên mẫu. Có một vài vấn đề với điều đó trong vim:

  • Bạn cần phải xây dựng lại các ctags để giữ cho nó được cập nhật
  • Bạn không thể gõ CX CO sau các (, bạn sẽ chỉ nhận được " Pattern không tìm thấy"
  • Bạn không thể gõ CX CO ở chế độ bình thường, con trỏ sẽ chỉ nhảy quanh
  • Bạn nhận được cửa sổ xem trước khó chịu ở đầu

tôi đã thử một fe w plugins; hầu hết trong số họ làm mọi thứ rối loạn hơn [^ 1] .Có ai có thể giới thiệu một cách đơn giản để có được điều đó không? Một hình chữ nhật đơn giản chứa nguyên mẫu hàm và không có gì khác.

[^ 1] Nó thực sự là tâm-numbing như thế nào ngu ngốc một số các plugin này. Một plugin (tôi sẽ không đề cập đến nó) thực sự chứa trong tệp .vim một danh sách các hàm từ libc.

+1

* Một plugin (tôi sẽ không đề cập đến nó) thực sự có trong tệp .vim một danh sách các hàm từ libc *. Có chuyện gì vậy? Bạn sẽ có một cơ sở dữ liệu ở đâu đó, đúng không? Hoặc là vấn đề mà DB không được lưu trữ trong một định dạng độc quyền không thể đọc được bí mật? – eckes

+0

@eckes Plugin đó đã sử dụng ctags. – user1497069

+0

:-) ok. Sau đó, đó là một ý tưởng tồi. – eckes

Trả lời

0

Hãy thử sử dụng eclim (plugin để tích hợp với Eclipse).

Giải pháp này là quá nhiều nhưng nó hoạt động trong mọi trường hợp.

8

ctags để tự động hoàn thành là một mớ hỗn độn. Tôi đề nghị bạn thử một trình biên dịch dựa trên plugin như clang-complete hoặc gcc-sense (chưa thử cái này). Ưu điểm là:

  • hơn độ chính xác như những gì họ làm được khá nhiều biên soạn
  • biên dịch lỗi được đánh dấu một cách nhanh chóng trên các mã nguồn

Bạn cần phải xây dựng lại các ctags để giữ cho nó đến ngày

bạn không cần phải đối phó với ctags (chúng vẫn hữu ích khi nhảy xung quanh)

Bạn không thể gõ C-X C-O sau (, bạn sẽ chỉ nhận được "Pattern không tìm thấy"

những gì bạn mong đợi?

Bạn không thể gõ CX CO ở chế độ bình thường, con trỏ sẽ chỉ nhảy quanh

bạn luôn có thể remap chuỗi rằng nếu bạn nghĩ rằng đó là một sai lầm thường xuyên (cái gì đó như nnoremap <C-x><C-o> a<C-x><C-o>)

Bạn nhận được cửa sổ xem trước khó chịu ở đầu

Bạn có thể vô hiệu hóa điều này bằng cách loại bỏ preview từ tùy chọn completeopt. thấy :help completeopt

Tôi đang sử dụng các thiết lập sau:

here

và một số vimrc:

set pumheight=10    " so the complete menu doesn't get too big 
set completeopt=menu,longest " menu, menuone, longest and preview 
let g:SuperTabDefaultCompletionType='context' 
let g:clang_complete_auto=0 " I can start the autocompletion myself, thanks.. 
let g:clang_snippets=1  " use a snippet engine for placeholders 
let g:clang_snippets_engine='ultisnips' 
let g:clang_auto_select=2 " automatically select and insert the first match 

Thưởng thức!

Các vấn đề liên quan