Câu trả lời:
Nơi tốt nhất để giữ nội dung cấu hình của bạn là trong
tệp .vimrc của bạn . Tuy nhiên, nó có nguồn gốc quá sớm, hãy kiểm tra :h startup:
At startup, Vim checks environment variables and files and sets values
accordingly. Vim proceeds in this order:
1. Set the 'shell' and 'term' option *SHELL* *COMSPEC* *TERM*
2. Process the arguments
3. Execute Ex commands, from environment variables and/or files *vimrc* *exrc*
4. Load the plugin scripts. *load-plugins*
5. Set 'shellpipe' and 'shellredir'
6. Set 'updatecount' to zero, if "-n" command argument used
7. Set binary options
8. Perform GUI initializations
9. Read the viminfo file
10. Read the quickfix file
11. Open all windows
12. Execute startup commands
Như bạn có thể thấy, .vimrc của bạn sẽ được tải trước các plugin. Nếu bạn đưa :FindFileCache .nó vào sẽ xảy ra lỗi, vì lệnh đó chưa tồn tại. (Nó sẽ tồn tại khi plugin được tải ở bước 4)
Để giải quyết vấn đề này, thay vì thực hiện lệnh trực tiếp, hãy tạo một lệnh tự động. Các lệnh tự động thực hiện một số lệnh khi một sự kiện xảy ra. Trong trường hợp này, sự kiện VimEnter có vẻ thích hợp (từ :h VimEnter):
*VimEnter*
VimEnter After doing all the startup stuff, including
loading .vimrc files, executing the "-c cmd"
arguments, creating all windows and loading
the buffers in them.
Sau đó, chỉ cần đặt dòng này trong .vimrc của bạn :
autocmd VimEnter * FindFileCache .
Ngoài ra còn có cờ -c của vim. Tôi thực hiện việc này trong cấu hình tmuxp của mình để vim bắt đầu với sự phân chia dọc:
vim -c "vnew"
Ít nhất với neovim, bạn cũng có thể mở một tệp cùng lúc:
nvim -c "colorscheme mustang" some_file
vim -c ':colo default' test.txt
xolox/vim-notesvà tôi muốn một chức năng cá mở Vim với một ghi chú mới sẵn sàng hoạt động.
Để nhận được thậm chí muộn hơn các câu trả lời khác nhưng vẫn ngay sau khi khởi động, hãy sử dụng bộ hẹn giờ ở dạng .vimrc. Ví dụ: mã này trong .vimrc đợi nửa giây sau khi khởi động trước khi thiết lập một biến.
function DelayedSetVariables(timer)
let g:ycm_filetype_blacklist['ignored'] = 1
endfunction
let timer=timer_start(500,'DelayedSetVariables')
(Biến trong ví dụ là danh sách đen từ plugin YouCompleteMe. Tôi giả sử, plugin khởi động một số quy trình khác không đồng bộ, sau đó sẽ tạo ra các biến, nhưng không hoàn toàn sẵn sàng vào thời điểm vim đã bắt đầu. Biến không tồn tại khi tôi cố gắng đặt nó trong .vimrc, một tệp sau hoặc sự kiện VimEnter. Điều này dành riêng cho hệ thống Windows của tôi bằng cách nào đó, tài liệu YCM cho biết .vimrc sẽ hoạt động cho các tùy chọn thiết lập.)