2012-04-04 5 views
2

Ist es möglich, eine benutzerdefinierte Tastaturbelegung zu lynx (in der Konfigurationsdatei ~/.lynxrc), die Informationen (z. B. die aktuelle URL, HTML, Titel, etc.) zu senden ein Shellbefehl?Kartenschlüssel in Lynx zum Ausführen von Shell-Befehl

Ein Beispiel für einen Anwendungsfall: Ich bin auf OSX und die Shell hat einen Befehl open, der versucht, alles zu öffnen, die ihm in einer Standard-Mode gegeben. Also, wenn ich in Lynx bin und die aktuelle Webseite in den Standardbrowser verschieben möchte, würde ich open current-url von der Shell aufrufen.

Andere: Sortieren einer organisierten Bookmark-Datei durch Senden von URL und Titel an ein Shell-Skript (oder etwas anderes).

Mit der Standard-Keymap ! öffnet sich die Standard-Shell, aber es gibt mir weder die URL, noch führt es einen einzelnen Befehl aus und kehrt zurück zum Lynx, wie ich dies wollen würde.

Alle Ideen würden sehr geschätzt werden.

Antwort

1

Ich fand tatsächlich ein paar Wege, damit umzugehen. Manche sind idealer als andere. Es brauchte etwas durch die Standard-Datei lynx.cfg, um etwas davon herauszufinden.

Nachfolgend sind die beiden erfolgreichsten Möglichkeiten, wie ich das Senden von Informationen Luchs zu einem Shell-Befehl erreicht:

  1. Ort eine Variante dieses in Ihrer lynx.cfg Datei. Es kann nur die URL senden, daher ist es eingeschränkt, weil es nicht in der Lage ist, den Titel oder andere Informationen von der Webseite zu verarbeiten, ohne selbst einen Lynx-Dump zu analysieren. (Dies muss mit --enable-extern konfiguriert werden, was bei MacPorts-Version von Lynx nicht verfügbar ist, also müssen Sie von der Quelle installieren).

    # 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. ein Skript erstellen und es mit dem Drucker werden Druckumgebungsvariablen zu sammeln.

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

    Dann wird das Skript OpenURL, die die URL in einem Standard-Browser öffnet (OSX) enthält:

    #!/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 
    

es andere Möglichkeiten, wie mit der lynxified Proxies lynxexec, lynxprog sein können, und lynxcgi, aber ich konnte Variablen mit diesen Methoden in meinen eigenen Tests nicht erfolgreich übergeben. Wenn Sie einen Weg kennen, um Titel- und URL-Informationen von diesen Methoden zu erhalten, wäre ich daran interessiert, sie zu hören. Das obige Beispiel 1 könnte den Titel und andere Informationen im Wesentlichen durch Aufruf von lynx oder einem anderen Browser abrufen, so dass es im Wesentlichen möglich ist, alles mit dieser Methode zu erledigen. Außerdem ermöglicht es eine einzelne Taste, die zugeordnet ist, um die Funktion auszuführen, wobei der Druckbildschirm mehrere Tastenanschläge zu der Mischung hinzufügt, was unerwünscht ist. Ich empfehle # 1 oben.

Verwandte Themen