Tại sao tôi cần cả vimrc và gvimrc?


38

Dường như có hai cách để lưu trữ các tùy chọn cụ thể cho gvim:

  1. Giữ một .vimrctệp cho vim và một .gvimrctệp cho các bổ sung cụ thể của gvim.

  2. Giữ tất cả các cài đặt trong .vimrcvà bao bọc các cài đặt cụ thể của gvim trong điều kiện phát hiện tính năng:

    if has('gui_running')
        " gvim specific settings here
    endif
    

Với sự tồn tại của tùy chọn thứ hai, tại sao tôi lại cần một .gvimrctệp?


Một ví dụ cụ thể mà tôi thấy hữu ích là winposthay đổi vị trí của cửa sổ được sử dụng bởi gvim. Điều này không có tác dụng (và không có ý nghĩa) bên trong ~/.vimrc, nó phải ở trong~/.gvimrc
jalanb

Câu trả lời:


29

Khi GUI khởi động, một số cài đặt được đặt lại và sau đó .gvimrcđược xử lý.

Do đó, nếu bạn muốn một giá trị không mặc định cho bất kỳ cài đặt nào trong số đó, bạn sẽ cần đặt nó trong một .gvimrc; kiểm tra chế độ GUI .vimrcsẽ không hoạt động.

Một cài đặt như vậy là t_vb, mã đầu cuối được sử dụng cho chuông trực quan; trong thực tế, tất cả các tùy chọn đầu cuối được đặt lại về mặc định cho chế độ GUI (xem :help terminal-options).

Ngoài ra, một loạt các thiết lập GUI và tùy chỉnh menu được thực hiện; nếu bạn muốn điều chỉnh bất kỳ thứ gì trong số đó, bạn sẽ muốn nó trong một .gvimrchoặc nó có thể không có bất kỳ tác động nào.

Đọc qua :help gvimrccung cấp một cái nhìn tổng quan tốt về những điều có thể thay đổi về bạn giữa nguồn của bạn .vimrc.gvimrcrằng bạn có thể muốn xem xét điều chỉnh lại sau này.


3
IIRC bạn có thể sử dụng :guilệnh ( has("gui_running")dĩ nhiên là bên trong ) để buộc chuỗi khởi động gui xảy ra trước bất kỳ lệnh .vimrc nào sau đó. .Vimrc của tôi sử dụng điều này để cho phép cài đặt sáng / tối nền mặc định được đặt dựa trên màu nền GUI thực tế.
Random832
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.