我想在.vimrc
添加一个命令,允许在视觉选择范围内或当前折叠级别范围内
并作为奖励
和
具体的想法是减少编写常见的C语言失败goto-rollback的工作量,即(如果是一个函数的主体(或块)可以在很多C项目中找到最突出的Linux内核)是这个
someErrorType errorcode;
if(fail1) {
errorcode = someError1;
goto error_1;
}
prepare_a();
if(fail2) {
errorcode = someError2;
goto error_2;
}
然后所需转换的结果应为此。
error_2:
/* <insert cleanup code operation that did not fail1 here> */
error_1:
答案 0 :(得分:3)
对于“yanking all”,你可以这样做:
qaq
以清除注册a
:
,vim将自动添加'<,'>
,然后g/pattern/y A<Enter>
您需要的所有行都在注册a
中,您可以"ap
进行粘贴。对于逆转订单要求,我不明白。你期望什么输出。前后混凝土可能有所帮助。
答案 1 :(得分:1)
对于添加样板代码,通常的解决方案是通过片段插件,它以一般方式解决这个问题(至少部分),而不是构建一个(可能是脆弱的)特殊解决方案,内置Vim -INS。
片段就像类固醇上的内置:abbreviate
一样,通常带有参数插入,镜像和内部多个停止。第一个非常着名(并且仍然广泛使用)的Vim插件之一是snipMate(受 TextMate 编辑器的启发);不幸的是,它不再维持;虽然有a fork。现代替代方案(虽然需要Python)是UltiSnips。还有更多内容,请参阅this list on the Vim Tips Wiki。
有三件事要评估:第一,摘录引擎本身的功能,第二,作者或其他人提供的片段的质量和广度;第三,添加新片段是多么容易。