gpt4 book ai didi

shell - 映射 lynx 中的键以运行 shell 命令

转载 作者:行者123 更新时间:2023-12-05 05:28:29 29 4
gpt4 key购买 nike

是否可以向 lynx 添加自定义键盘映射(在配置文件 ~/.lynxrc 中),它将信息(例如当前 URL、html、标题等)发送到 shell 命令?

示例用例:我在 OSX 上,shell 有一个命令 open,它试图以默认方式打开给它的任何东西。所以,如果我在 lynx 中并想将当前网页移动到默认浏览器,我想从 shell 调用 open current-url

另一个:通过将 URL 和标题发送到 shell 脚本(或其他东西)来整理有组织的书签文件。

使用默认键盘映射 ! 打开默认 shell,但它没有给我 URL,也没有运行单个命令并返回到 lynx,正如我想要的那样。

任何想法将不胜感激。

最佳答案

实际上我最终找到了几种方法来处理这个问题。有些比其他的更理想。对默认的 lynx.cfg 文件进行了一些挖掘,以找出其中的一些内容。

以下是我从 lynx 向 shell 命令发送信息的两种最成功的方法:

  1. 在您的 lynx.cfg 文件中放置它的一个变体。它只能发送 URL,因此如果不解析 lynx 转储本身,就无法处理网页的标题或任何其他信息。 (这必须使用 --enable-extern 进行配置,它不适用于 MacPorts 版本的 lynx,因此您必须从源代码安装)。

    # in lynx.cfg
    # EXTERNAL:<url>:<command> %s:<norestriction>:<allow_for_activate>[:environment]
    # Ex 1: send the url to `open <url>` to open default browser
    EXTERNAL:http:open %s:TRUE
    # Ex 2: download with wget if ftp page
    EXTERNAL:ftp:wget %s &:TRUE

    # By default ',' and '.' map to running EXTERNAL on the page and link respectively
    # KEYMAP:,:EXTERN_PAGE # Run external program with current page
    # KEYMAP:.:EXTERN_LINK # Run external program with current link
  2. 创建脚本并使用打印机运行它以收集打印环境变量。

    # in lynx.cfg
    # PRINTER:<name>:<command>:<option>:<lines/page>[:<environment>]
    PRINTER:openurl:/Users/username/bin/openurl %s:TRUE

    然后在默认浏览器 (OSX) 中打开 url 的脚本 openurl 包含:

    #!/bin/sh
    # /Users/username/bin/openurl
    url=$LYNX_PRINT_URL
    title=$LYNX_PRINT_TITLE
    # other variables exist like the date etc... look them up :)
    # http://osr600doc.sco.com/en/INT_lynxDoc/keystrokes/environments.html

    # perform magic ...
    /usr/bin/open $url

可能还有其他方法,例如使用 lynxified 代理 lynxexec、lynxprog 和 lynxcgi,但我无法在自己的测试中使用这些方法成功传递变量。如果您知道从这些方法中获取标题和 url 信息的方法,我很想听听。上面的示例 #1 基本上可以通过调用 lynx 或其他一些浏览器来获取标题和其他信息,因此基本上可以使用该方法完成所有操作。此外,它允许映射单个键来执行功能,而打印屏幕会向混合中添加多个击键,这是不受欢迎的。 我推荐上面的#1。

关于shell - 映射 lynx 中的键以运行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10005225/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com