<Tab> 从函数按键进入缓冲区



我正在创建一个函数,将:

  • 检查我正在处理的当前文件
  • 在我的test目录中基于我的文件名
  • 创建一个新的缓冲区
  • 编辑该文件并启动我的snipmate "test"模板

到目前为止,我有一切工作,除了触发snipmate。我要做的是插入一个<Tab>字符,就像我处于插入模式一样,以触发snipmate启动

" Only works for modules and models right now
function! MakeTest()
  " sub out any prefix
  let base_test_path = substitute(expand('%:r'), '(lib/|app/models/)', '', 'g')
  execute 'edit ' . 'test/unit/' . base_test_path . '_test.rb'
  norm i test<Tab>
endfunction

实际上是将test<Tab>映射到我的模板中。我的猜测是,我不想使用norm,但我不太热衷于我应该用什么代替。

任何想法吗?

是否有办法从函数进入插入模式?

:normal之后的全部按字面处理;要插入特殊字符,需要使用双引号:execute对它们求值:

execute "norm i test<Tab>"

对于tab键,您可以选择写"t";然而,:help key-notation是更常见和通用的。

相关内容

最新更新