从终端窗口启动firefox,打开一个文本文件,并将显示的文本放置在指定行

从终端窗口启动firefox,打开一个文本文件,并将显示的文本放置在指定行,firefox,browser,fortran,command-line-interface,Firefox,Browser,Fortran,Command Line Interface,我想通过在单独的浏览器(Firefox)窗口中打开用户指南来改进Fortran程序中的帮助功能,只要用户键入a? 作为对程序所问问题的回答 我可以使用呼叫系统('path/firefox-file user\u guide.hlp')) 打开帮助文件。但是,另外,我想将浏览器窗口中的文本定位在帮助文本中的指定行 我知道帮助文件中哪些行应该与用户相关,因为在Fortran程序中,我跟踪用户发出的命令(我使用命令行界面,没有GUI)。目前,我在运行程序的终端窗口中打印这些行,但这限制了我可以打印的行

我想通过在单独的浏览器(Firefox)窗口中打开用户指南来改进Fortran程序中的帮助功能,只要用户键入a? 作为对程序所问问题的回答

我可以使用呼叫系统('path/firefox-file user\u guide.hlp'))

打开帮助文件。但是,另外,我想将浏览器窗口中的文本定位在帮助文本中的指定行

我知道帮助文件中哪些行应该与用户相关,因为在Fortran程序中,我跟踪用户发出的命令(我使用命令行界面,没有GUI)。目前,我在运行程序的终端窗口中打印这些行,但这限制了我可以打印的行数,并使程序输出变得模糊。由于整个用户指南在单独的窗口中可用,用户也可以轻松地在用户指南的其他地方搜索其他解释,我不希望他或她会自愿阅读用户指南

谢谢你的帮助


Bo Sundman

您无法转到特定行,但可以尝试使用命名锚定选项卡。在帮助文件中

<a name="1"/>
help topic 1
<a name="2"/>
help topic 2
这应该适用于所有浏览器。较新的版本也将采用id=而不是name=

编辑 如果上述方法无效,请尝试

system('path/firefox "file://path/user_guide.html#2"')
编辑2 如果firefox路径和html文件路径都有空格,那么在Windows上可以使用8.3文件名。使用dir/x找出8.3文件名是什么。或者,可以使用带空格的文件名;语法很奇怪

 call execute_command_line('""C:\...\firefox.exe" "file://x:\...\userguide.html#2""')
  • 以'
  • 对第一个双引号“”使用两个双引号
  • 将您的路径名添加到firefox
  • 使用1个双引号终止路径名
  • 添加一个空格
  • 使用1个双引号开始参数
  • 添加参数
  • 使用2个双引号终止
  • 以'

  • 注意:系统不是标准Fortran。您可能需要查看execute_命令行,例如,我很确定系统是标准Fortran 2008或laterBoSundman:不,正如@IanBush所说,它不是标准Fortran,例如,请参阅其gfortran文档。execute_command_line是Fortran 2008为此目的引入的固有子例程,下一版本标准的最后草案(中的文档N2146)没有提到任何固有的“系统”子例程。对,假设您在Linux上(使用“path/firefox”而不是“path\firefox”),您可以使用“xdg打开”,这将使用用户首选浏览器打开页面。在OSX上,“打开”“也是这样,FWIW。另外,不需要使用显式路径,这两个路径应该在用户默认的$path中找到。谢谢,这似乎是我需要的,我将进行测试。记住添加其他HTML标记,如,原始用户指南是一个LaTeX文件,但我可以从中生成PDF或HTML。是否有办法在LaTeX文件中包含HTML版本的“锚定选项卡”?如果这样做可以简化用户指南的维护,那么它就不起作用了。在文件名后加上#n,将找不到帮助文件,如果没有它,将打开html文件的第一页。我的html文件是使用htlatex从LaTeX文件生成的,我只是手动添加了一些。文件名是以.htm还是.html结尾?添加HREF-请参阅
     call execute_command_line('""C:\...\firefox.exe" "file://x:\...\userguide.html#2""')