我有以下小 shell 脚本,称为
md
:
#!/bin/sh
if [ -z $1 ]; then
echo "Error: No argument supplied"
else
(pandoc -t pdf $1 | zathura - &)
fi
它在我的终端中运行良好,允许我运行
md foo.md
并使用生成的 pdf 启动 Zathura。但是,我尝试添加自定义 Vim 命令来执行相同的操作,但它不起作用!这是我的 init.vim
发出的命令:
command Md ! md %:p
当我在 Vim 中的 Markdown 文件中运行
:Md
时,我从 Vim 获得以下输出:
:! md /absolute/path/to/file.md
Zathura 启动,但文件为“空”,即底部显示“[无名称]”。如果我复制粘贴 Vim 所说的运行命令,并在我的终端中运行它,Zathura 会以相同的方式启动,但会显示文件。
为什么不起作用?
您可能会更幸运地将当前缓冲区的内容通过管道传输到脚本,而不是依赖文件。
在
~/.vimrc
:
command! -buffer -range=% Md <line1>,<line2>w !md
您的
md
脚本:
#!/bin/sh
pandoc -t pdf | zathura - &