Maplynx中的键以运行shell-command

ars1skjm  于 2023-05-01  发布在  Shell
关注(0)|答案(1)|浏览(114)

是否可以在lynx中添加一个自定义键Map(在配置文件~/中)。lynxrc),其发送信息(e.例如,当前URL、html、标题等。)到shell命令?
示例用例:我在OSX上,shell有一个命令open,它试图以默认方式打开任何给定的东西。所以,如果我在lynx中,想将当前网页移动到默认浏览器,我想从shell调用open current-url
另一个:通过发送URL和标题到shell脚本(或其他东西)来整理有组织的书签文件。
使用默认的keymap !打开了默认的shell,但是它没有给予我URL,也没有运行一个命令并返回lynx,这是我想要的。
任何想法将不胜感激。

gupuwyp2

gupuwyp21#

实际上,我最终找到了几种方法来处理这个问题。有些人比其他人更理想。我们花了一些时间来研究默认的配置文件。
以下是从lynx通过shell命令的两种方法:
选项A:运行shell命令。将新变量EXTERNAL:添加到/etc/lynx.cfg文件,一些示例:

.h2 EXTERNAL   
# EXTERNAL:<url>:<command> %s:<norestriction>:<allow_for_activate>[:environment]

# Example 0: use xclip to set clipboard text
EXTERNAL:http:echo %s | xclip -selection clip-board:TRUE

# Example 1: send the url to `open <url>` to open default browser
EXTERNAL:http:open %s:TRUE

# Example 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

注:Lynx只能发送URL(如果不解析Lynx转储本身,则无法从网页发送标题或任何其他信息)
选项B:使用自定义sh脚本启动浏览器。将新变量PRINTER:添加到/etc/lynx.cfg文件,示例:

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

然后创建一个单独的sh脚本/Users/username/bin/openurl.sh,在触发PRINTER时调用该脚本。

#!/bin/sh
# /Users/username/bin/openurl.sh
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

# opens the url in a default browser.
/usr/bin/open $url

可能还有其他方法,比如使用lynxified代理:lynxexeclynxproglynxcgi,但我在自己的测试中无法成功地通过这些方法传递变量。
如果你知道如何从这些方法中获取标题和URL信息,我会很有兴趣听听。EXTERNAL和PRINTER方法只需按一次键即可实现。不像打印屏幕选项,这将需要几个按键。

相关问题