Я можу використовувати, vim -u filename
щоб використовувати filename
замість свого замовчування .vimrc
. Я використовую цей метод при перемиканні користувацьких контекстів ( su
), щоб використовувати мій, .vimrc
хоч і працює як суперпользователь.
Як я можу досягти того ж також для папки , в якій за замовчуванням є ~/.vim
таким , що я можу вказати Vim з командного рядка в іншу папку?
Чого я хочу досягти
Гаразд, припустимо, що користувач joe
( HOME=/home/joe
) і користувач root
( HOME=/root
). Користувач joe
має набір псевдоніму, vim
який виглядає так (але спочатку встановлений за допомогою $HOME
змінної, щоб зробити це динамічним):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Потім користувач joe
робить що - то вздовж ліній sudo su -
(але з додаванням магії), в результаті чого .bashrc
і інша смакота від /home/joe
бути завантажений для root
. root
Тепер у користувача є такий самий псевдонім для vim
набору, як показано вище.
Проблема полягає в тому, що це .vimrc
використовується в різних системах і в різних сценаріях. Часто викликають обліковий запис Джо joe
, але іноді це буде щось подібне local.joe
або що-небудь інше, в результаті чого значення має інше значення $HOME
. Тож жорстке кодування абсолютного шляху до ~/.vim
папки не здається гарною ідеєю. Однак у нашому вище сценарії у користувача root
немає папки, /root/.vim
яка, однак, очікується, що існує за замовчуванням через завантажений .vimrc
( /home/joe/.vimrc
).
Що я хочу досягти - бажано в командному рядку - це змусити Vim використовувати додатки тощо знизу, /home/joe/.vim
коли починається як root
(якщо вважати, що alias
встановлено так, як показано - інші випадки можна ігнорувати). Якщо є якийсь динамічний метод через VimScript, надайте покажчики. Але $HOME
я вважаю, що використання змінних, таких як, це призведе до виходу 22.
ln
. наприклад, 'mv ~ / .vim ~ / .vim-what && ln -s ~ / .vim-what ~ / .vim`, тоді зробіть те ж саме для.vimrc
. загортайте все це за допомогою псевдоніму "Баш", щоб ви могли легко переходити так чи інакше