VIM中的一些bash命令将输出发送到bash而不是VIM

时间:2017-02-25 13:07:23

标签: linux bash vim

每当我在vim命令行中键入以下内容时::read !readlink {somedir} ,它将输出发送到我从vim启动的bash,而不是vim缓冲区。 实际上,我正在尝试实现的是在使用vim编辑文件时获取文件的绝对路径,而不是在其中进行任何拼写错误。

另一方面,每当我使用例如::read !ls时,它会在我当前使用的vim缓冲区中打印输出。

为什么会发生这种情况,我该怎么办? 谢谢!

2 个答案:

答案 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>