从zsh
开始执行以下命令将返回在less
中打开的文件历史记录
git log -p file.txt
如果我从neovim nvim
运行相同的命令:
nvim -u NONE -N file.txt
git log -p %
它返回整个历史记录而不运行less
。
Vim可以正常工作,less
。
请,建议如何配置neovim进行修复。
答案 0 :(得分:1)
在Neovim中,:!
(爆炸)和system()
不是交互式的,这是设计使然。
有关详细信息,请参见Issue #1496上的讨论:
这不是错误,它是bang命令的新行为:我们不再使用将stdout连接到Nvim tty来生成程序,而是打开管道,读取输出并显示给用户。这是bang命令在各个UI之间保持一致的唯一方法,因此设计为从终端进行交互使用的程序将不再在nvim内部运行。
通过不将程序的标准输出附加到tty(并将其附加到管道),可以修改某些程序的行为。例如,git不会生成寻呼机,通常不会在其输出中使用颜色,等等。
建议的解决方法是:
- 从外壳(从另一个终端或使用ctrl + z)调用它
- 使用逃犯git插件
另一种选择是为此使用Neovim的:terminal
:
:terminal git log -p %
这是功能齐全的终端(tty),因此它将启用该终端激活的所有副作用,例如将less
生成为寻呼机。