当我使用命令:e filename
打开一个文件,并且该文件已经被另一个vim实例打开时,我会收到一个提示,询问我是否要以只读模式打开该文件,无论如何,是否要编辑、恢复、退出或中止。
当我尝试:silent! e filename
时,所发生的是vim似乎已经被绞死了。但是它确实是在问我如何处理这个交换文件,只是我看不见它,因为我告诉它要保持沉默。
如果文件不能以写模式打开,并且不需要用户交互,那么有什么命令可以告诉它在只读模式下打开文件吗?(我希望将其集成到宏中以跳转/打开文件)。
发布于 2013-02-04 17:05:59
如果您有vim >= 7(我认为),您可以在事件SwapExists
中使用autocmd
。在那里,你可以做从非常简单的事情到非常复杂的事情。
下面是一个简单的示例,可以放在您的~/..vimrc中:
autocmd SwapExists * let v:swapchoice = "o"
如果存在交换文件,则将触发此事件。上面的autocmd将简单地以只读模式打开文件。
如果v:swapchoice
在autocmd中获得一个值,它将不会提示您要执行的操作。您可以使用的值在这里列出,V:交换选择。
有关非常高级的autocmd,请参见此处:editexisting.vim
从vim的安装开始,脚本可能已经在您的服务器上,搜索editexisting.vim
。
发布于 2013-01-22 10:19:58
我的.vimrc
中有一个脚本,它就是这样做的。但是,对于所有打开的具有swp文件的文件,它都是这样做的。不确定你是否总是想要这种行为。也许你可以在你正在写的宏中调整它以满足你的需要。
若要打开ro (如果存在swp文件),请将其放在.vimrc
中:
func CheckSwap()
swapname
if v:statusmsg =~ '\.sw[^p]我从这里获得了这个脚本,还有一个更高级的例子,这可能会让我感兴趣。
set ro
endif
endfunc
if &swf
set shm+=A
au BufReadPre * call CheckSwap()
endif
我从这里获得了这个脚本,还有一个更高级的例子,这可能会让我感兴趣。
发布于 2013-01-22 09:59:24
RHEL和ubuntu中的命令view
在只读模式下打开vim,但是可以使用:w!
覆盖只读模式。
https://unix.stackexchange.com/questions/62191
复制相似问题