【问题标题】:how to add vim keymap如何添加 vim 键盘映射
【发布时间】:2012-09-10 07:19:43
【问题描述】:

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

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

putrsUART(buff);

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

提前致谢。

【问题讨论】:

    标签: vim keymapping


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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


          答错了,抱歉:

          在你的 vimrc 中试试这个:

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

          这意味着映射到 Ctrl-W。

          【讨论】:

          • 谢谢,我在 ~/.vimrc 文件中添加了上面的行。并开始一个新的终端会话。我打开一个文件 tmp.c 并按 Ctrl-W 键,它显示以下错误代码。 "E492: 不是编辑器命令:sprintf(buff,"%s", func)".
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-03
          • 2012-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多