2

在编程时,我经常使用以下两行:

sprintf(buff,"%s", __func__);

putrsUART(buff);

是否可以设置任何键盘快捷键来插入这两行?例如,当我在命令模式下键入 \sp 时,这些函数会添加到我文件中的光标位置。这可能吗?如果是这样,我如何映射我的键?

提前致谢。

4

4 回答 4

6

您可以使用为此设计的缩写。

:abbr spb sprintf(buff,"%s", __func__);
:abbr uart putrsUART(buff);

用于:help abbr血淋淋的细节。请注意,您需要在缩写形式之后键入另一个字符,以便 vim 识别它们。这对于这些来说很自然,因为您将键入 ENTER 作为下一个字符。也可以输入多行缩写。只需<CR>在您想要换行的地方使用。

于 2012-09-10T08:59:50.763 回答
2

这是正常模式的简单映射,可让您点击\sp(除非您已重新映射领导者,在这种情况下使用它而不是\)以插入 sprintf 语句。

map <Leader>sp isprintf(buff,"%s", __func__);<Esc>

话虽如此,我认为缩写是这里的方法

于 2012-09-10T09:04:50.073 回答
1

如前所述,缩写(我将其限制为插入模式 ( :iabbr),因为您可能在命令行中不需要它们)最适合简单的扩展;您也可以仅为某些文件类型定义它们(通过:iabbr <buffer> ...)。

__func__看起来像一个模板参数,你每次都需要调整。您不能通过缩写来做到这一点,但有各种插件(许多受 TextMate 编辑器中的功能启发)提供模板插入和参数扩展和一些高级功能。查看snipMatexptemplateUltiSnips 之一

于 2012-09-10T10:46:48.063 回答
0

尝试使用 snip-Mate 插入常用的代码片段。http://www.vim.org/scripts/script.php?script_id=2540


回答错误,抱歉:

在你的 vimrc 中试试这个:

map <c-w> :sprintf(buff,"%s",func)<cr> 

这意味着映射到 Ctrl-W。

于 2012-09-10T07:25:09.677 回答