每当我在vim命令行中键入以下内容时::read !readlink {somedir}
,它将输出发送到我从vim启动的bash,而不是vim缓冲区。
实际上,我正在尝试实现的是在使用vim编辑文件时获取文件的绝对路径,而不是在其中进行任何拼写错误。
另一方面,每当我使用例如::read !ls
时,它会在我当前使用的vim缓冲区中打印输出。
为什么会发生这种情况,我该怎么办? 谢谢!
答案 0 :(得分:1)
如果您想使用绝对路径:
:read ! realpath directory-name
答案 1 :(得分:0)
当stderr出现问题时,您可以使用2>&1
所有req的命令行都会变得无聊。当你经常需要时,采取另一种方法
首先制作一个脚本,它将提供正确的路径作为满足您要求的输出。
该脚本可以在路径中使用查找,定位,读取链接或某些AI解析错误。之后你可以使用
:r !myscript path
当你经常使用它时,将它分配给像
这样的功能键nnoremap <F1> :r !myscript
"Off topic: I like the next one for testing scripts
nnoremap <F9> :w<Enter>:!%:p<Enter>