2009-07-06 25 views
19

Tôi đã cố thử nghiệm bằng cách sử dụng :make gần đây nhưng tôi không thích vim đó phải chuyển sang hiển thị đầu ra shell trước và yêu cầu nhập bấm phím, sau đó nó cho tôi thấy những gì tôi nghĩ là một danh sách các lỗi thu thập được dựa trên 'errorformat' mà tôi cũng cần phải xác nhận bằng cách nhấn Enter. Tôi muốn chỉ có một thông điệp "OK" ngắn mà không yêu cầu xác nhận bằng một phím bấm, hoặc vim đó sẽ mở :cwindow nếu có bất kỳ lỗi nào.Có thể gọi: thực hiện trong vim trong linux mà không hiển thị shell

+1

Câu hỏi của bạn trùng lặp với [Chạy: tạo từ gVim trong nền] (http://stackoverflow.com/questions/666453/running-make-from-gvim-in-background/666578#666578). –

+0

Câu hỏi này dường như là chạy 'make' in ** foreground ** và nhảy trực tiếp đến lỗi đầu tiên được tìm thấy sau khi' make' kết thúc, không gặp rắc rối và nhắc nhở phát triển chậm không cần thiết. ('make' thường mất một phần nghìn giây để nhấn lỗi đầu tiên và dừng lại. Vậy tại sao chạy nó trong nền?) – Tino

Trả lời

1

Hãy thử:

:silent make 

Để tự động mở cửa sổ QuickFix sau khi bạn chạy make, bạn có thể đặt này vào bạn .vimrc: gcc

autocmd QuickFixCmdPost * :copen 
+3

Tôi đã thử: im lặng làm nhưng nó chỉ làm cho cửa sổ vim hoàn toàn đen (dòng lệnh vim và laststatus vẫn được hiển thị) vì vậy tôi phải gọi: thực hiện để có được bộ đệm được hiển thị trong cửa sổ một lần nữa. – Sam

2

Bạn có thể lập bản đồ ví dụ F9 để sử dụng cho nhỏ Đoạn mã C không yêu cầu thư viện, liên kết, v.v.:

map <F9> :!gcc -o %< % <enter><CR><C-w> 

Điều này sẽ tạo cho tệp foo.c mã nhị phân foo. Tôi biết đó không chính xác những gì bạn muốn, nhưng điều này không hiển thị bất kỳ trình bao nào và hữu ích cho đoạn mã nhỏ.

-3

Hãy thử

map <F9> :make<CR> 

này có lẽ nên giải quyết vấn đề của bạn.

+0

Không hiệu quả với tôi. Việc thực hiện chạy, nhưng nó không im lặng. :-( –

12

Tôi đang sử dụng dòng tiếp theo chỉ cho mục đích chính xác mà bạn đã viết:

nnoremap <leader>m :silent make\|redraw!\|cc<CR> 

cc cuối cùng cho thấy lỗi đầu tiên hoặc No errors nhắn nếu đây là trường hợp.

+2

Ý tưởng tuyệt vời! Tuy nhiên, tôi không muốn được tự động đưa đến vị trí của lỗi đầu tiên, nhưng chỉ được hiển thị cửa sổ quickfix trong trường hợp lỗi, vì vậy tôi đã thay đổi thành 'make! \ | Redraw! \ | Cw '. – joelpet

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