Tôi có thể sử dụng vim -u filename
để sử dụng filename
thay vì mặc định của tôi .vimrc
. Tôi đang sử dụng phương pháp này khi chuyển ngữ cảnh người dùng ( su
) sang sử dụng mặc dù tôi .vimrc
đang chạy như siêu người dùng.
Làm thế nào tôi có thể đạt được như vậy cũng cho thư mục mà theo mặc định là ~/.vim
vì vậy mà tôi có thể chỉ Vim từ dòng lệnh để một thư mục thay thế?
Những gì tôi muốn đạt được
Được rồi, giả sử người dùng joe
( HOME=/home/joe
) và người dùng root
( HOME=/root
). Người dùng joe
có một bí danh được đặt vim
giống như thế này (nhưng ban đầu được đặt bằng cách sử dụng $HOME
biến để tạo động này):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Sau đó, người dùng joe
thực hiện một số thứ theo dòng sudo su -
(nhưng có thêm phép thuật), dẫn đến .bashrc
và các tính năng khác /home/joe
sẽ được tải cho root
. Người dùng root
hiện có cùng một bí danh cho vim
tập hợp như được hiển thị ở trên.
Vấn đề là điều này .vimrc
được sử dụng trên các hệ thống khác nhau và trong các tình huống khác nhau. Thông thường tài khoản của Joe được gọi joe
, nhưng đôi khi nó sẽ giống như local.joe
bất cứ thứ gì khác, dẫn đến một giá trị khác $HOME
. Vì vậy, mã hóa cứng một đường dẫn tuyệt đối đến ~/.vim
thư mục dường như không phải là một ý tưởng tốt. Tuy nhiên, trong kịch bản trên của chúng tôi, người dùng root
không có thư mục /root/.vim
, tuy nhiên, dự kiến sẽ tồn tại theo mặc định thông qua tệp được tải .vimrc
( /home/joe/.vimrc
).
Những gì tôi muốn đạt được - tốt nhất là trên dòng lệnh - là để Vim sử dụng các plugin, v.v. từ bên dưới /home/joe/.vim
khi bắt đầu như root
(giả sử alias
được đặt như hiển thị - các trường hợp khác có thể bị bỏ qua). Nếu có một số phương thức động thông qua VimScript, vui lòng cung cấp các con trỏ. Nhưng sử dụng các biến như $HOME
sẽ dẫn đến một cái bẫy 22, tôi nghĩ vậy.
ln
. như 'mv ~ / .vim ~ / .vim-anything && ln -s ~ / .vim-anything ~ / .vim` sau đó làm tương tự cho.vimrc
. kết thúc tất cả những điều đó với một số bí danh bash để bạn có thể dễ dàng chuyển đổi cách này hay cách khác