Я хочу иметь возможность легко запускать Vim в приватном режиме. Давайте определим приватный режим как тот, который использует этот набор команд:
set history=0
set nobackup
set nomodeline
set noshelltemp
set noswapfile
set noundofile
set nowritebackup
set secure
set viminfo=""
Дайте мне знать, можете ли вы подумать о каких-либо дополнительных командах, подходящих для частного режима.
Дело в том, что я не могу придумать какой-либо короткий и простой способ запустить Vim с этой настройкой.
Вот некоторые идеи, которые я придумал:
Загрузите .vimrcprivate вместо .vimrc
Вы можете просто поместить все необходимые команды в .vimrcprivate и запустить Vim следующим образом:
vim -u .vimrcprivate
Определить и вызвать
Private()
функциюЕще одна идея - добавить такой код в ваш .vimrc:
function Private() " set of commands here endfunction
и затем вы можете запустить Vim в приватном режиме, например так:
vim -c 'call Private()'
Используйте переменную для запуска настройки ваших команд
Это очень похоже на второе решение. Просто добавь
if exists('privatemode') " set of commands here endif
на ваш .vimrc и затем запустите Vim, используя
vim -c 'let privatemode=1'
который не является ни умным, ни коротким.
Добавьте псевдоним к вашему .bashrc (или к любому другому. * Rc файлу, который использует ваша оболочка)
Например:
alias vimprivate="vim +\"set history=0\" +\"set nobackup\" +\"set nomodeline\"\ +\"set noshelltemp\" +\"set noswapfile\" +\"set noundofile\"\ +\"set nowritebackup\" +\"set secure\" +\"set viminfo=\"\"\""
что ужасно Мне это не нравится
Используйте переменную среды
Просто беги
VIM_PRIVATE=1 vim
и добавляйif $VIM_PRIVATE " set of commands here endif
на ваш .vimrc.
Некоторая магия (из комментария Carpetsmoker в этой теме )
Carpetsmoker говорит в этом комментарии, что
Я бы не рекомендовал использовать отдельный файл vimrc, по той простой причине, что его так легко забыть. Что-то вроде этого autocmd:
au BufRead * if &cryptmethod != "" | setlocal nobackup noundofile ... | endif
должно сделать магию за вас, и это невозможно забыть.Однако у меня нет ни малейшего представления о том , как эта магия работает еще .
У тебя есть идеи?
Идеальным решением было бы vim -private
или vim +Private
однако:
- Я совершенно уверен, что вы не можете добавить свои собственные параметры командной строки, такие как
-private
. - когда дело дошло до того, что
+Private
я не смог найти его в Интернете.
command! Private set history=0 nobackup secure ...
а затем вызвать ее из оболочки с помощьюvim +'Private'
. Что касается последней упомянутой вами автокоманды, при чтении буфера она проверяет, является ли значение'cryptmethod'
параметра или'cm'
для краткой версии не пустым. Эта опция контролирует метод шифрования, используемый для шифрования буфера, когда он записывается в файл с помощью команды Ex:X
. Если опция не пустая, то автокоманда устанавливает различные опции.vim -Nu .vimrcprivate
.alias vimprivate='vim -u .vimrcprivate'
и т. д.v:progname == "vimp"
и, если это правда, выполнить настройки в приватном режиме. См:help v:progname
.Ответы:
Ну, немного запоздалым, но ответить на:
Моя общая идея заключалась в том, что вы всегда хотите запустить «закрытый режим», если вы используете зашифрованный файл, поэтому эта автокоманда сделает это за вас:
По сути, каждый раз, когда файл читается с диска, он проверяет,
key
задан ли параметр (здесь хранится ваша парольная фраза), и, если это так, он устанавливает параметры. Смотрите:help autocommand
общий обзор того, как работают автокоманды.Преимущество этого состоит в том, что не может забыть использовать это.
Конечно, это требует, чтобы файл был зашифрован. Если это не так, ничего не делается. Но не все потеряно, мы можем использовать имя файла, чтобы указать, что файл является закрытым, например:
Помечает все файлы, заканчивающиеся
.private
как таковые.Если вы хотите случайным образом открывать файлы в «приватном» режиме, я бы порекомендовал использовать простой псевдоним оболочки, например:
И
~/.vim/private
будет содержать:Почему нет
-u
? Ну, таким образом, у вас есть свои собственные настройки и «личные» настройки. Вы также можете объединить два с:источник
Согласно документации Vim (
:help -c
) может быть не более 10+{command}
,-c {command}
и-S {file}
аргументы параметров объединяются при запуске Vim, и они выполняют _after_, когда читается первый файл.--cmd {command}
Опция позволяет дополнительно 10 команд , которые будут выполняться перед обработкой любого файла vimrc, но иметь в виду , что любые настройки могут быть переопределены vimrc.Поэтому я предпочитаю устанавливать параметры Vim заранее и избегать необходимости использования переменных среды или логики сценариев. Кроме того, плагины могут делать хитрые вещи, поэтому лучше их не загружать.
Самый безопасный способ вызова, который я могу придумать, - это использовать псевдонимы в
~/.bashrc
простом и точном файле vimrcprivate:источник