pbpaste, pbcopy mit falschem Pasteboard?

Ich konvertiere ein Shell-Skript, das xclip und ähnliche Tools unter Linux verwendet, um pbpaste und pbcopy auf Mac zu verwenden. Das Problem ist, dass das Standard-Pasteboard ('allgemein' laut Manpage) für diese Tools nicht dasjenige ist, das von Stickies / Safari / TextMate / allen GUI-Apps verwendet wird.

Ich habe alle in 'man pbpaste' erwähnten Pasteboard-Namen ausprobiert, aber keiner enthält die Daten, die ich in eine GUI-App kopiere. Wenn ich Daten mit 'pbcopy' in das 'allgemeine' Pboard lade, kann ich sie problemlos über 'pbpaste' extrahieren - aber es ist vom GUI-Pasteboard getrennt.

Beachten Sie, dass ich keine ungewöhnlichen Shell-, Terminal- oder WindowServer-Einstellungen ausführe, dies ist Standard 10.7 Terminal und Bash.

Ich kann dieses Problem nicht replizieren. pbcopyund pbpastefunktionieren gut für mich mit den Methoden, die Sie angegeben haben.
Gerade auf einer zweiten Maschine getestet, und tatsächlich funktioniert es einwandfrei. Es ist also etwas Spezifisches für meine Konfiguration auf dieser bestimmten Box. Leider habe ich keine Ahnung was - es gibt nichts Ungewöhnliches in .profile oder .bashrc
Könnten Sie ein minimales Skript freigeben, das das Problem aufweist?
Das klingt nach klassischen Symptomen für den Tod des Pasteboard-Servers (z. B. apple.stackexchange.com/q/31866/22570 und ähnliches), was bei Lion ziemlich häufig vorkommt. Wenn Sie neu starten, funktioniert es?

Antworten (4)

Wie in einem der Kommentare angedeutet, war das Problem ein verwirrter Pasteboard-Server - durch einen Neustart funktionierte alles wie erwartet.

Es sind wahrscheinlich noch keine 24 Stunden vergangen, aber akzeptiere deine eigene Antwort, wenn möglich!
Ich habe das gleiche Problem, wie startet man den Pasteboard-Server neu?

Überprüfen Sie Ihre Bash-Aliase - ist etwas Aliasing für pbcopy/pbpaste, um eines der anderen Pasteboards zu verwenden?

Die Manpage für diese Befehle erwähnt vier mögliche Pasteboards, die sie verwenden können - General, Ruler, Find und Font. Versuchen Sie pbcopy -pboard general, es zu zwingen, die allgemeine Zwischenablage zu verwenden.

Diese Optionen wurden bereits ausprobiert - die Befehle verwenden das allgemeine Pasteboard, aber meine GUI-Apps verwenden anscheinend ein anderes Pasteboard.

Wenn Sie den Befehl unter tmux /screen verwenden, müssen Sie einige Einstellungen vornehmen. Es gibt tolle Beiträge zu diesem Problem.

https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/blob/master/README.md

Antworten auf Ask Different müssen mehr als nur ein Link sein. Es ist in Ordnung, einen Link einzufügen, aber bitte fassen Sie ihn in der Antwort zusammen oder fassen Sie ihn aus. Die Idee ist, die Antwort allein stehen zu lassen.
"Antworten auf Ask Different müssen mehr als nur ein Link sein." ist die Regel auf dieser Seite? Wenn ja, gib mir bitte den Link, der darauf verweist, da ich ziemlich neu hier bin. Ich habe diese Antwort gepostet, da sie für diejenigen nützlich sein könnte, die auf das gleiche Problem stoßen, das ich hatte. Und ist in einer anderen Bedeutung bereits alleinstehend, da keine andere Antwort darauf hinweist.
Nennen wir es eine gute Praxis. Links können mit der Zeit kaputt gehen und Ihre Antwort unbrauchbar machen, es wird jeden zukünftigen Benutzer frustrieren, wenn er glaubt, die Antwort gefunden zu haben, aber nur einen 404-Fehler zurückbekommt. Aus diesem Grund erwarten wir, dass die Antwort für sich steht (und gegebenenfalls auf die Quelle verweist).

Es kann vorkommen, dass Sie unterschiedliche Zwischenablagen erhalten,

  • eine mit den alten Apps gestartet , bevor die neue Zwischenablage verwendet wird,
  • und eine mit neuen Apps, die gestartet wurden, nachdem die neue Zwischenablage festgelegt wurde.

Ich denke also, dass die von der App verwendete Zwischenablage beim Start einer App festgelegt wird.


Ich habe derzeit nur Mail, Safari, TextEdit, die eine andere Zwischenablage teilen, und alle anderen Apps, die ein älteres Board teilen. Ich glaube, ich habe den Zwischenablage-Server zum Absturz gebracht/zurückgesetzt/neu erstellt/dupliziert, indem ich den folgenden Befehl ausgeführt habe (wobei man pboard(8) eindeutig ignoriert wurde Users should not run pboard manually.)

$ pboard

Leider konnte ich noch nicht herausfinden, wie ich den Server sauber neu starten kann (außer einem Neustart), aber das ist meine beste Vermutung, wann/warum sich die „Gruppe“ der Zwischenablage geändert hat.