如何设置包含特殊字符的特定字词的缩写,例如“:,;”。等,例如,我想将std :: map的缩写设置为std :: map
:ab std::map std::map<string,int>
无效
答案 0 :(得分:1)
缩写触发器文本有限制:它必须是 full-id , end-id 或非id 类型(基本上,哪些字符是关键字;有关详细信息,请参阅:help abbreviations
。)
对于C / C ++文件类型,冒号:
通常不属于'iskeyword'
,导致E474
错误。由于不建议混淆该设置(它会影响导航,语法高亮等),您必须从缩写中删除/替换它:
:ab stdmap std::map<string,int>
答案 1 :(得分:0)
我在Using backslashes in vim abbreviations中提出的解决方案应该适合您的情况。您必须将测试getline('.')[col('.')-2]=='\'
调整为getline('.')[:col('.')-2] =~ '.*std::$'
(未经测试)
但是,老实说,你应该考虑使用代码片段引擎,而且还有很多。