我试图实现的目标
我需要查看分布在十几个目录中的一堆 C 源代码。我已经有一个 bash 脚本,它执行以下操作:它搜索我感兴趣的目录中的所有源代码。对于找到的每个代码,它使用以下命令生成一个 pdf(源文件所在的位置):
a2ps $source -R --columns=1 --prologue='color' --line-numbers=1 -T2 -M A4 \
--chars-per-line=100 --borders=no --encoding=iso1 -o - | \
ps2pdf -sPAPERSIZE=a4 - $dest
然后它使用 PDF 查看器打开生成的 pdf,让我使用便签查看它。然后我保存它,关闭它,脚本对下一个 c 源代码执行相同的操作,等等。
这样我就可以自动查看所有源代码,并将评论以方便的 pdf 格式分发回来。
失败的地方
我找不到合适的 PDF 阅读器,可以让我完全执行上面提到的操作。基本上我已经尝试过了:
表明
不允许将便签保存在同一个文件中,我需要“另存为...”并证明然后打开以前使用的位置,而不是当前 pdf 的位置。这迫使我手动导航目录以找到源 pdf 来覆盖它。
期刊
它没有便签,这对我来说是强制性的。
奥库拉
Adobe Reader 中看不到便签,这对我来说也是必需的。
Adobe 阅读器 9
Linux 的旧版本(感谢 Adobe)不支持便笺。
因此我需要什么
总结一下我上面所说的,我需要一个 PDF 阅读器:
- 能够节省直接或至少带注释的pdf另存为直接放在同一个目录下
- 使用官方 pdf 便签
- 创建至少可以看到的便笺Adobe阅读器和表明
非常感谢您的帮助,它可以节省我很多时间!如果符合我的要求,也请随意提出一个完全不同的工作流程想法。
答案1
涉及 evince 和 bash 脚本的快速想法:
dir=$(dirname $source)
rm -f ~/evince_save
ln -s $dir ~/evince_save
当您明显“另存为”时,保存到~/evince_save
.正如您所观察到的,evince 每次都会使用相同的目录,但自动化脚本每次都会替换其链接;您无需进行任何导航,文件就会到达正确的位置。
删除rm
符号链接而不是目录;如果尚不存在则-f
表示没有错误。~/evince_save
答案2
如果这些 C 源文件尚未受到修订控制,请将它们置于修订控制之下(我的建议是 Mercurial)。如果它们在某些过时的版本控制系统(SVN、CVS)下转换源库。
(之后)克隆存储库并进行分支“修订”,使用带有语法突出显示的普通编辑器(应该与 PDF 一样可读)以及一些可识别的方式来标记您的评论:
/*CID: need to review the following in more detail */
可以通过提交和推送您的更改来提供审核反馈,其他人只需执行(图形差异)即可查看您的评论在哪里(每个文件或一堆文件)。
您不必标记评论,但如果有人合并您的评论中的“更改”,则更容易被识别。
(我不太确定为什么您觉得 PDF 格式很方便。)