Để đảm bảo hành vi không bị ảnh hưởng bởi cấu hình cá nhân của tôi, tôi muốn khởi động Vim theo cách bỏ qua tất cả các tệp cấu hình do người dùng cài đặt, như thể Vim mới được cài đặt lần đầu tiên và người dùng đã chạy nó ngay.
Điều này được giải quyết trong FAQ cho thấy câu trả lời là bắt đầu Vim bằng lệnh sau:
vim -u NONE -U NONE -N -i NONE
Điều này được hầu hết theo cách đó, nhưng runtimepath
tùy chọn vẫn chứa ~/.vim
và đáng chú ý là ~/.vim/after
(ví dụ: nếu sau đó tôi bật phát hiện loại tệp và thay đổi kiểu tệp, mã trong ~/.vim/after/syntax/the_relevant_filetype.vim
sẽ được thực thi).
Tôi có thể giải quyết vấn đề cụ thể này bằng cách gọi các lệnh sau khi khởi động *:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
... nhưng tôi không chắc nếu:
- Đây là một giải pháp mạnh mẽ: Có phải đó là những đường dẫn duy nhất có thể khiến cấu hình người dùng có hiệu lực? Có điều gì khác tôi chưa từng nghĩ đến?
- Có một cách tốt hơn để đạt được kết quả mong muốn.
* Bằng cách sử dụng --cmd
hoặc -u vimrc
shell đối số, hoặc đơn giản bằng cách nhập chúng bằng tay.
EDIT : Đây là một ví dụ cụ thể về loại sự cố tôi đang cố gắng khắc phục. (Mặc dù tôi muốn giải pháp khắc phục mọi sự cố có thể khác mà tôi có thể chưa gặp phải.):
Tạo một tệp ~ / .vim / after / ftplugin / c.vim, chứa nội dung:
noremap i :echom "This is not default behaviour"<CR>
Bây giờ chúng tôi có một số cấu hình do người dùng cài đặt mà chúng tôi muốn bỏ qua. Hãy thử nghiệm giải pháp được đề xuất bởi FAQ.
Chạy Vim bằng lệnh:
vim -u NONE -U NONE -N -i NONE
Nhập các lệnh:
:filetype plugin on :set ft=c i
Hành vi mong muốn : Vim nên vào chế độ Chèn. Đây là những gì nó sẽ làm nếu không có cấu hình người dùng tồn tại.
Hành vi quan sát : Vim in ra "Đây không phải là hành vi mặc định"
:cd ~
, ví dụ , nhưng vị trí mặc định của viminfo
tệp nằm trong $ HOME, có thể gây ra E138. Tôi đoán việc tạo một thư mục mới, trống và sử dụng thư mục đó cho $ HOME có thể là giải pháp tốt nhất.
-u NONE
?
/tmp
có thể tốt hơn, đó là suy nghĩ đầu tiên của tôi, nhưng sau đó tôi đã chọn / dev / null làm lỗ đen. ... Hoặc một cái gì đó như HOME=$(mktemp -d) vim ...
.
-u NONE
? Phụ thuộc vào hành vi bạn cần, tôi cho rằng.
HOME=/dev/null vim -u NONE
?