vim.less 在 Windows 上运行吗?

vim.less 在 Windows 上运行吗?

Vim 附带一个脚本,可以让它的行为类似于 less 的高级版本。

按照这篇博客文章,可以通过设置此别名将 vim 用作分页器:

alias lessv='/usr/share/vim/vim71/macros/less.sh'

但是,如果我在 Windows 上这样做:

type console.aspx |vim -u "C:\Program Files (x86)\Vim\vim73\macros\less.vim"

Vim 只是挂在那里,不响应按键。我必须终止 vim 进程才能恢复命令行。有没有办法在 Windows 上实现这一点?

答案1

您必须创建一个与 macros\less.sh 等效的 DOS 批处理文件。macros\less.vim 文件只是一组宏,它们重新映射键以使 Vim 的行为更像 less;macros\less.vim 必须由 Vim 读取,而不是由其自身执行。

我对批处理文件编程了解不够,无法为您提供完整的解决方案,但这可以处理读取管道输出的情况:

"C:\Program Files\Vim\vim73\vim.exe" --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -

将该行放入名为 less.bat 的文件中。您可能需要更改安装中 vim.exe 的路径,或者仅vim.exe当 vim.exe 在您的 PATH 中时才将其替换。

答案2

我不知道你们 2011 年的人是否已经有了这个,但是我们 2023 年的人有一个名为的方便文件,less.bat它位于与该less.vim文件相同的目录中。

因此,我建议查看C:\Program Files (x86)\Vim\vim73\macros\目录中是否存在该less.bat文件。如果存在,只需将该目录添加到您的PATH(环境变量)中,您就可以less像在大多数 Unix 系统中一样使用该命令:

less file.txt
some_command_with_output.exe | less

当然,现在已经是 2023 年了(如果你来自未来,那么可能更晚),你可能想要升级到 的较新版本(如果你还没有升级的话)vim。那么即使你不在 Windows 平台上,你也几乎肯定会得到less.bat。(请注意,路径肯定会有所不同,因为macros在 下找不到 Vim 8 的文件夹Vim\vim73。)

玩得开心!

相关内容