'Thực tiễn tốt nhất' hiện tại cho các tùy chọn liên tục cho plugin là gì?


7

Tôi có một plugin (một mô-đun phụ hợp nhất) lọc các tệp văn bản cực lớn xuống để tạo ra một 'mục lục' hữu ích. Tôi muốn cung cấp cho người dùng khả năng bật / tắt nhiều bộ lọc ... và tôi muốn cài đặt đó được duy trì qua mỗi lần gọi vim. (không cần cập nhật tức thì qua các phiên đồng thời)

Có một cơ chế để làm điều này được xây dựng vào vim? Hoặc tôi có cần tạo và quản lý "tệp chấm" trong $ HOME của người dùng không? Hoặc có một cách tiêu chuẩn được chấp nhận để xử lý này?

EDIT: Tôi thực sự không thể để người dùng đặt biến toàn cục trong vimrc, vì danh sách các tùy chọn hiện dài hàng trăm mục và giao diện hiện tại chỉ đơn giản là "gõ d với chỉ mục mở" để xóa khỏi danh sách .


Tôi biết rằng đối với các biến người dùng, bạn có thể đảm bảo viminfobao gồm !và sau đó một số loại g: biến nhất định sẽ được lưu trữ liên tục trong tệp viminfo, nhưng hầu hết các plugin không thể sửa đổi viminfo trên người dùng.
jkerian

Tôi không quá am hiểu về chủ đề này, nhưng tôi nghĩ rằng tất cả các plugin tôi đã sử dụng chỉ được xác định g:boolVariablevà sau đó hướng người dùng đặt nó theo cách riêng của mình vimrc. Sau đó, bạn có thể chỉ cần kiểm tra các tùy chọn người dùng đã thiết lập và làm việc từ đó.
Tumbler41

Câu trả lời:


6

Một cách để làm điều đó là để plugin của bạn xác định một biến toàn cục lưu trữ đường dẫn đến tệp "cài đặt liên tục / bộ lọc được bật" cụ thể đó. Điều này tương tự như cách các plugin khác nhau phải 'lưu trữ' một số giá trị hoạt động. Vì vậy, tài liệu có thể trông như thế này:

g:myplugin_enabled_filters_path     *g:myplugin_enabled_filters_path*
    This variable points to the file that stores enabled filters for
    <myplugin> etc.

    Default value is "$HOME/.myplugin.filters"

Bạn có thể sử dụng $HOMEbiến để tạo giá trị mặc định cho đường dẫn này và lưu trữ các bộ lọc đã bật của bạn ở đó. Người dùng có thể thay đổi đường dẫn bằng cách thay đổi biến trên vimrc. Tôi giả sử bạn có ý định cung cấp một số phương tiện (chức năng, lệnh, bản đồ chính) để thuận tiện bật / tắt các bộ lọc khác nhau trong khi sử dụng plugin của bạn (bộ lọc mà bạn nhớ trong tệp đó), để người dùng không phải đối phó trực tiếp với họ. Mặt khác, đơn giản hơn là cho phép người dùng sửa đổi một biến toàn cục lưu trữ danh sách / dict, v.v. của các bộ lọc được kích hoạt (có thể "tồn tại" bằng cách lưu biến đó vào vimrc) và đọc thay vào đó (theo nhận xét của Tumbler41 ở trên).

Để biết thêm chi tiết, bạn có thể theo dõi cách g: neocomplcache_t tạm_dir được định nghĩa và sử dụng trong neocomplcache.vimplugin của Shougo .

Ngoài ra, bạn có thể dễ dàng tuần tự hóa (lưu / khôi phục) bất kỳ biến vim nào (thậm chí là từ điển) trong tệp đó bằng cách sử dụng một cái gì đó như thế này .

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.