gpt4 book ai didi

vim - 使用 vim 的 -W 选项

转载 作者:行者123 更新时间:2023-12-04 14:30:24 26 4
gpt4 key购买 nike

-w-W vim 的选项理论上具有以下效果:

-w {scriptout} All the characters that you type are recorded in the file "scriptout", until you exit Vim. This is useful if you want to create a script file to be used with "vim -s" or ":source!". When the "scriptout" file already exists, new characters are appended. See also |complex-repeat|. {scriptout} cannot start with a digit. {not in Vi}

-W {scriptout} Like -w, but do not append, overwrite an existing file. {not in Vi}



但是当我这样做时,{scriptout} 文件将始终以十六进制序列开头,例如 80 fd 60 (有时是 80 fd 62 )。

我正在使用来自portableapps.com 的gvimportable.exe 7.3。与 -u NONE开关,它做同样的事情。

这个“神奇数字”是干什么用的?在带有 gvim.exe 的 Windows 下,在删除这三个前导字节之前,我无法重播我的脚本……

似乎此功能可能非常有用,但文档很少。

谢谢您的回答。

最佳答案

(这个答案可能非常支离 splinter ,我花了一段时间玩 - 我也想找到一个解决方案,因为它吸引了我 - 不仅仅是 200 的赏金:P。它或多或少显示了我的思路和实验。)

我现在可以用 gvim 重现它在 Linux 上,这是 /usr/bin/vim.gnome -g ;作为 vim -g 运行做同样的事情。

钻研代码: (在这种情况下是徒劳的,但做起来很有趣,学习如何做)

我已经浏览了源代码,现在可以稍微解释一下(但没有用!);它得到 outfile文件 ( src/globals.h:1004 ) 集 ( src/main.h:2275 );然后将其写入 src/getchar.h:1501 ,在 updatescript gotchars 使用的方法(第 1215 行)由 vgetorpeek 使用,由 vgetc 使用和 vpeekc ...(不,我不知道这是怎么回事!)然后这些被用在很多地方。

无论如何,我想 key 在 src/gui.c 中的某个地方。 ,但我现在不知道在哪里!也有可能“发送”了一些关键序列(物理上或虚拟上,我不知道),但鉴于跨平台的问题是相同的,它似乎更可能是 Vim 问题而不是其他问题。

有趣的情况导致一个可能的解释:

还值得注意的是,如果您自动退出,gvim -u NONE -w scriptout -c quit (加载后 :quit)或 gvim -u NONE -w scriptout -c quit (即时 :quit ,从不显示 GUI),文件脚本留空。

此外,如果您打开 gvim 然后使用 X 按钮关闭它,不按任何键:

0000000: 80fd 6280 fd63 80fd 62                   ..b..c..b

如果你打开 gvim,点击离开,点击返回并使用 :q :
0000000: 80fd 6280 fd63 80fd 6280 fd2c 80fd 2e3a  ..b..c..b..,...:
0000010: 710d q.

所以我认为是窗口事件在内部被翻译成别的东西。 80 fd 62是开序列和 80 fd 63 80 fd 62是近序。

我找到了另一种触发方式 80fd同样,这让我想到某种“用户可以访问窗口”;默认情况下,Ubuntu 中的 GNOME,Ctrl+Alt+S 对窗口执行某些操作(不记得它叫什么;将其全部滑入标题栏,里面的应用程序失去键盘控制等)。 gvim ... (你知道参数!), i Esc Z Q 为我生成这个:
0000000: 80fd 6269 3c80 fd63 80fd 623e 1b5a 51    ..bi<..c..b>.ZQ

摘要:所以我们有了我认为的解决方案; gVim 以某种形式捕获窗口消息,并且——不管它应该还是不应该——把它们放在它的 scriptout 中。 .如果你认为它不应该(或者想知道它们为什么被留下,或者它们是否应该存在或者你是否应该关心),我想在 Vim 列表中询问。

关于vim - 使用 vim 的 -W 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3981535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com