Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加vim键映射_Vim_Keymapping - Fatal编程技术网

如何添加vim键映射

如何添加vim键映射,vim,keymapping,Vim,Keymapping,编程时,我经常使用以下两行: sprintf(buff,"%s", __func__); putrsUART(buff); 可以设置任何键盘快捷键来插入这两行吗? 例如,当我在命令模式下键入\sp时,这些函数将添加到文件中的光标位置。这可能吗?如果是,我如何映射我的钥匙 提前感谢。请尝试使用snip Mate插入常用的代码片段 回答错误,对不起: 在vimrc中尝试以下操作: map <c-w> :sprintf(buff,"%s",func)<cr> map:

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

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

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


提前感谢。

请尝试使用snip Mate插入常用的代码片段


回答错误,对不起:

在vimrc中尝试以下操作:

map <c-w> :sprintf(buff,"%s",func)<cr> 
map:sprintf(buff,“%s”,func)
这意味着映射到Ctrl-W。

您可以使用缩写,这是为此而设计的

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

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

这里有一个普通模式的简单映射,可以让你点击
\sp
(除非你重新映射了leader,在这种情况下,使用它而不是
\
)来插入sprintf语句

map <Leader>sp isprintf(buff,"%s", __func__);<Esc>
map sp isprintf(buff、%s、\uuuuu func\uuuu);
话虽如此,我认为缩写是这里的方式

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


您的
\uuuu func\uuuu
看起来像是一个模板参数,每次都需要进行调整。您不能通过缩写来实现这一点,但是有各种插件(许多是从TextMate编辑器中的功能中获得灵感的)提供了带有参数扩展的模板插入和一些高级功能。查看snipMate、xptemplate或UltiSnips中的一个。

谢谢,我在~/.vimrc文件的上面一行添加了它。并启动一个新的终端会话。我打开一个文件tmp.c并按Ctrl-W键,它显示以下错误代码。E492:不是编辑器命令:sprintf(buff,“%s”,func)”。