VIM:如何检查当前脚本是否在宏中运行?

史蒂夫·维穆伦(Steve Vermeulen)

在很多情况下,我有一些vim脚本,只在不在宏中运行时才要执行。例如,在某些情况下,我会闪烁光标以提醒自己现在的位置(在宏中运行时毫无意义,只会使宏占用10倍的时间)。

因此,对于这些情况,我想检查它是否作为宏运行,并避免在这种情况下进行不必要的操作。我搜索了一下帮助,但找不到标志来检测到这一点。这可能吗?

英戈·卡卡特(Ingo Karkat)

没有像mode()或特殊v:macro_running变量这样的函数,许多人认为这些函数只会鼓励不良做法。

您可以使用的行为feedkeys(),其传递的键通常在命令/映射之后立即执行,但仅在宏执行的最后执行。如果将长时间运行的命令放在其中,它们将像往常一样直接降低正常命令的速度,但是仅(累计)降低了宏执行后的速度(通常可以使用来中止该命令<C-C>)。

例子

let @q = ',a,b'

代替:

nnoremap ,a aHello<Esc>2gs
nnoremap ,b aWorld<Esc>2gs

使用

nnoremap ,a aHello<Esc>:call feedkeys('2gs', 'n')<CR>
nnoremap ,b aWorld<Esc>:call feedkeys('2gs', 'n')<CR>

这将立即将整个HelloWorld文本插入宏中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查我的脚本是否在crontab中成功运行

如何检查 PowerShell 脚本是否在 Azure 中运行

如何确定document.write()是否将覆盖页面,即当前脚本是否已异步加载?

如何检查当前的tensorflow版本是否至少是python脚本中的特定版本?

在与当前脚本相同的目录中运行脚本

如何检查脚本是否在Node.js下运行?

检查 bash 脚本是否在 bitbucket 管道中运行

检查运行脚本是否在数组中

检查脚本是否成功运行?

检查脚本是否正在运行

检查脚本是否正在运行?

是否检测当前脚本是否已更改而没有使用subshell?(并启动新脚本)

如何确定脚本是否在Linux或OSX中运行

如何在Fish Shell中检索当前脚本的路径

如何在Python中获取当前脚本的代码?

如何获取GNU Octave中的当前脚本路径?

如何检查npm脚本是否存在?

如何从脚本本身检查脚本是否正在运行?

如何判断当前bash脚本是否已从调用脚本中调用

如何获取当前脚本的路径?

如何获取当前脚本的名称?

获取Python中当前脚本的名称

如何检查我的 python 脚本是否以某种方式运行(使用某种调试器)

如何检查脚本是否从正确的 git 根文件夹运行?

如何检查Shell脚本/ Vim是否在VS Code集成终端中运行?

Linux命令以检查Shell脚本是否正在运行

检查python脚本是否正在运行

检查Python脚本是否正在运行

在继续当前脚本的同时异步运行单独的 PowerShell 脚本