我可以让“less”使用单个按键序列执行任意命令吗?

我可以让“less”使用单个按键序列执行任意命令吗?

阅读lesslesskeys手册页,我创建了一个文件,其中包含:

^B shell touch ~/testfile

并运行它lesskey生成.less-test,然后执行less -k .less-test file。这一切都工作正常并且达到了我所希望的效果,除了我需要按两次 Enter 键才能实际执行 shell 命令并返回到file.更改命令以touch ~/testfile\n消除对其中一个回车键的需要,但touch ~/testfile\n\n无法消除它们。有没有办法绕过这里按回车键?

作为后续问题(并解释为什么我首先要问)——我将其作为文件标记的过程来执行,其中我使用 less 检查文件并希望使用这些热键写入另一个带有两个标签之一的文件(我计划将其绑定到两个不同的键序列)。因此,除了不必像上面那样按两次 Enter 之外,我还想知道是否有一种方法可以立即移动到下一个文件(与next-filelesskey 命令一样)(即除了标记之外不按其他键)键序列)。

答案1

它将始终显示“!完成”消息。

如果需要,您可以在 command.c(第 272 行和第 274 行)中将“!done”更改为 NULL 以消除此行为。

例如,要使其在 touch 命令之后执行下一个文件,您可以添加以下绑定:

^B shell touch ~/testfile\n:n\n

(:n 是下一个文件的默认绑定)

相关内容