2016-04-06 3 views
1

Я не могу изменить свой .vimrc, потому что я использую логин, который используют несколько человек. Я хотел бы иметь возможность устанавливать параметры vim для текущей оболочки без изменения vimrc. Либо это, либо передать аргументы vim при вызове. Я надеюсь, чтобы иметь возможность установить следующее:Конфигурировать vim для текущей оболочки

:set nu 
    :set shiftwidth=4 
    :set tabstop=4 
    :set ai 
    :set expandtab 

Это длинный выстрел, но любые идеи были бы весьма признателен

+0

@JonathanLeffler: Или 'экспорт EXINIT = ': источник somefile'. –

ответ

6

Запуск :help EXINIT в vim показывает:

 *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc* *$MYVIMRC* 
c. Four places are searched for initializations. The first that exists 
    is used, the others are ignored. The $MYVIMRC environment variable is 
    set to the file that was first found, unless $MYVIMRC was already set 
    and when using VIMINIT. 
    - The environment variable VIMINIT (see also |compatible-default|) (*) 
     The value of $VIMINIT is used as an Ex command line. 
    - The user vimrc file(s): 
       "$HOME/.vimrc"  (for Unix and OS/2) (*) 
       "s:.vimrc"   (for Amiga) (*) 
       "home:.vimrc"  (for Amiga) (*) 
       "$VIM/.vimrc"  (for OS/2 and Amiga) (*) 
       "$HOME/_vimrc"  (for MS-DOS and Win32) (*) 
       "$VIM/_vimrc"  (for MS-DOS and Win32) (*) 
      Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist, 
      "_vimrc" is also tried, in case an MS-DOS compatible file 
      system is used. For MS-DOS and Win32 ".vimrc" is checked 
      after "_vimrc", in case long file names are used. 
      Note: For MS-DOS and Win32, "$HOME" is checked first. If no 
      "_vimrc" or ".vimrc" is found there, "$VIM" is tried. 
      See |$VIM| for when $VIM is not set. 
    - The environment variable EXINIT. 
     The value of $EXINIT is used as an Ex command line. 
    - The user exrc file(s). Same as for the user vimrc file, but with 
     "vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is 
     used, depending on the system. And without the (*)! 

Это указывает на то, что установка переменной окружения $VIMINIT получает приоритет, то файл .vimrc, то параметр в $EXINIT, затем .exrc файлы. Это согласуется с тем, что я нашел - не очень удивительно. У меня есть файл .vimrc; он имел приоритет над переменной $EXINIT, которую я устанавливал, но работала $VIMINIT, переопределяя файл .vimrc.

+0

Это именно то, что я делал в среде общего аккаунта. Это связано с параметрами 'AcceptEnv' и' SendEnv' ssh, благодаря чему все работает без проблем при входе в удаленную учетную запись. –

0

я обнаружил, что я могу написать сценарий для вызова Vim с параметрами, которые я хочу и использовать что вместо Vim:

vim -c "set tabstop=4" -c "set nu" -c "set ai" -c "set expandtab" $1 

теперь называет

./myvim fileToEdit 

открывает Vim с мои желаемые варианты. VIMINIT тоже работал, спасибо за подсказку.

4

Вы можете сделать:

$ vim -c "set nu sw=4 ts=4 ai et" 

Вы также можете поместить свои настройки в ~/my.vim и запустите Vim с:

$ vim -Nu ~/my.vim 
Смежные вопросы