命令看起来像这样
autocmd! BufWritePost <buffer> mark s | $r ! ruby % | sed 's/^/\#=> /' | 's
在追加
之前,它会附加输出并将光标移动到原始位置这是我得到的错误:
Error detected while processing BufWritePost Auto commands for "<buffer=1>":
E485: Can't read file /var/folders/fw/045tt2q10zv1qkbfbw73y8c80000gn/T/vCDqw9b/7
如果删除| 's
,则在行尾。它工作正常,但没有返回标记的位置
答案 0 :(得分:3)
有两个问题:
:read ! ...
命令无法与其他Vim命令连接;它将 all 作为要执行的命令处理。这会导致shell错误。见:help :bar
。您可以使用:execute
。's
是普通模式命令;要在命令行中使用它,您需要在:normal
Ex命令前加上前缀。autocmd! BufWritePost <buffer> mark s | execute "$r ! ruby % | sed 's/^/\#=> /' " | normal! 's