3

カスタム キーマップを lynx (構成ファイル ~/.lynxrc 内) に追加して、情報 (現在の URL、html、タイトルなど) をシェル コマンドに送信することはできますか?

使用例: 私は OSX を使用しており、シェルには commandopenがあり、デフォルトの方法で与えられたものを開こうとします。そのため、lynx を使用していて、現在の Web ページをデフォルトのブラウザーに移動したい場合はopen current-url、シェルから呼び出す必要があります。

別の方法: URL とタイトルをシェル スクリプト (またはその他のもの) に送信して、整理されたブックマーク ファイルを照合します。

デフォルトのキーマップを使用すると!、デフォルトのシェルが開きますが、URL が表示されず、単一のコマンドを実行して lynx に戻ることもありません。

どんなアイデアでも大歓迎です。

4

1 に答える 1

2

私は実際にこれを処理するいくつかの方法を見つけました。いくつかは他よりも理想的です。これを理解するには、デフォルトの lynx.cfg ファイルを掘り下げる必要がありました。

以下は、lynx からシェル コマンドに情報を送信するのに最も成功した 2 つの方法です。

  1. これのバリエーションを lynx.cfg ファイルに配置します。URL のみを送信できるため、lynx ダンプ自体を解析しないと Web ページのタイトルやその他の情報を処理できないという制限があります。(これは--enable-extern、lynx の MacPorts バージョンでは使用できない で構成する必要があるため、ソースからインストールする必要があります)。

    # 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
    

lynx 化されたプロキシ lynxexec、lynxprog、lynxcgi を使用する方法は他にもあるかもしれませんが、私自身のテストではこれらの方法で変数を正常に渡すことができませんでした。これらのメソッドからタイトルと URL の情報を取得する方法をご存知でしたら、ぜひお聞かせください。上記の例 #1 は、lynx やその他のブラウザーを呼び出すことで、基本的にタイトルやその他の情報を取得できるため、その方法ですべてを完了することが基本的に可能です。また、マッピングされた 1 つのキーで機能を実行できますが、印刷画面では複数のキーストロークが混在するため、望ましくありません。上記の#1をお勧めします。

于 2012-04-05T01:23:34.267 に答える