我正在使用Janus(虽然不是解决这个问题的关键)。基本上他们所做的是重写:e为:编辑以使用NERDTree,但NERDTree不支持强制打开文件(例如e!)。所以我写了一些重写的内容:编辑! to:e!,但我喜欢使用Just:Edit!的好处,所以我试图欺骗,如果它已经内置了。这就是我提出的:
ca Edit! e! <bar> Edit
唯一的问题是,对于尚未保存至少一次的文件,您无法执行此操作。但我知道这样做
ca Edit! bd! <bar> Edit
将起作用:它将关闭未保存的缓冲区,并保持移动状态。我需要做的就是编写逻辑,它将始终在正确的场景中使用正确的命令。优选地,逻辑不会在每个页面上运行:只有当我实际运行命令时才应该尝试解决它。有什么想法吗?
编辑:我试过问#vim频道(给了我很多帮助)......他们说使用expand(“%”)并检查它是否存在可能有助于我的情况?不知道,只提供尽可能多的细节。
答案 0 :(得分:0)
试试这个。定义这样的函数:
function! CommandAbbrForEdit()
if &modified
return 'bd! | Edit'
endif
return 'e! | Edit'
endfunction
然后定义您的缩写:
cabbrev <expr> Edit! CommandAbbrForEdit()