【问题标题】:How to insert text from inside a vimscript loop?如何从 vimscript 循环中插入文本?
【发布时间】:2015-04-15 04:04:06
【问题描述】:

:help while 文档中可以看出:

NOTE: The ":append" and ":insert" commands don't work
properly inside a ":while" and ":for" loop.

我可以确认他们没有。但是我应该使用什么来从循环内插入文本?

【问题讨论】:

  • 你想做什么?但听起来你可以将整个字符串构建在一个变量中,然后插入该变量的内容。
  • 你试过 setline() 函数吗?如果您只想在我认为的while循环中将文本插入缓冲区,这应该可以工作。否则,您可以在 while 循环中缓冲文本,然后在循环之后插入它们。
  • @FDinoff 我刚刚编写了一个函数,可以帮助我在带头表达式中从一个参数导航到另一个参数,我想在重新组织多行长表达式的参数时重用它。我认为在变量中处理整个字符串确实是正确的解决方案。谢谢! :)
  • @Tacahiroy 是的,我认为你们都是对的,请不要犹豫发布答案。 :)

标签: loops vim while-loop insertion


【解决方案1】:

:insert:append 命令主要用于交互使用。在 Vimscript 中,您可以改用较低级别的 setline()append() 函数,它们在循环中运行良好。 (它们也更容易使用,因为您可以直接将行列表传递给它们。)

【讨论】:

  • 这成功了,也改变了我的 vimscripting 哲学:谢谢! ^ ^
猜你喜欢
  • 2019-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-31
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
相关资源
最近更新 更多