我希望能够以私有模式轻松启动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
我无法在线找到它。
vim -Nu .vimrcprivate
。
alias vimprivate='vim -u .vimrcprivate'
等
v:progname == "vimp"
,如果为true,则执行私有模式设置。请参阅:help v:progname
。
command! Private set history=0 nobackup secure ...
,然后使用从外壳程序中调用它vim +'Private'
。关于您提到的最后一个自动命令,当读取缓冲区时,它将测试'cryptmethod'
选项的值('cm'
对于简短版本)还是非空值。当使用Ex命令将缓冲区写入文件时,此选项控制用于加密缓冲区的加密方法:X
。如果该选项不为空,则自动命令将设置各种选项。