为了账号安全,请及时绑定邮箱和手机立即绑定

vim更改:x函数删除缓冲区而不是保存和退出

vim更改:x函数删除缓冲区而不是保存和退出

vim更改:x函数删除缓冲区而不是保存和退出我想:x在vim gui-mode中设置,delete buffer因为我总是杀死整个gvim,这有点烦人。我知道我可以专门设置gui问题,if has("gui running")但不知道如何重新映射:x提前致谢ps。:也许标签/术语remap是错误的,但我不知道正确的术语,这就是谷歌没有提供任何帮助的原因。
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

我发现最安全的替代方法是使用表达式缩写:

cnoreabbrev <expr> x getcmdtype() == ":" && getcmdline() == 'x' ? 'bd' : 'x'

这将确保缩写只会扩大到bd时候:x使用,否则只是扩大到x

如需更多帮助:

:h map-<expr>:h getcmdtype():h getcmdline()

经过进一步检查,似乎有一个插件正是由Hari Krishna Dara执行的,名为cmdalias.vim。它使用了上述技术的变体。


查看完整回答
反对 回复 2019-08-28
?
MMTTMM

TA贡献1869条经验 获得超4个赞

这并不像看起来那么容易。:map将无法使用命令,:command只接受以大写字母开头的命令。但你可以使用:cabbrev

if has("gui_running")
  cabbrev x bdendif

更新::cmap 实际使用::cmap x bd,但它不工作的权利:每次出现x在命令立即被替换bd


查看完整回答
反对 回复 2019-08-28
  • 2 回答
  • 0 关注
  • 550 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信