سؤال مثل pbcopy الخاص بـ OSX لنظام Linux


في محطة في OSX يمكنني إخراج الأنابيب إلى pbcopy ثم انتقل إلى مستعرض ويب ولصقه. لقد جربت هذا في Linux مع xcopy لكن عندما أتحول إلى المتصفح ، فإنه بالكاد يقوم بالكتابة فوق الحافظة مع ما كان عليه في آخر مرة تم فيها استخدام المتصفح. ما الذي يعمل مثل pbcopy في لينكس؟


132
2018-05-25 09:08


الأصل


... وبالنسبة لأولئك الذين لا يعرفون ما هو pbcopy ، وهنا الصفحة الرجل developer.apple.com/library/mac/#documentation/Darwin/Reference/... - Rob Cowell
الأداة التي يمكن أن تكون مفيدة مع هذا ClipIt (ومديري الحافظة مماثلة). ليس فقط أنها تلعب بشكل جيد في المحطة ، كما أنها تحافظ على تاريخ الحافظة. مفيدة للغاية. - brandizzi


الأجوبة:


إذا كان لديك X مثبتًا ، فيمكنك تجربة xsel بهذه الطريقة:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

أو مع xclip:

alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'

الآن يمكنك استخدام:

echo 'go to my clipboard' | pbcopy

عندما لا أملك X أستخدم وظيفة شاشة غنو لنسخ بين الأصداف المفتوحة في جلسة باستخدام لوحة المفاتيح

لنسخ : Ctrl-a -> Esc -> go to wanted position * -> Space (to begin selecting) -> press k to go forward mark text -> Enter

لصق : Ctrl-a + ]

* تتم الحركات مع vim مثل الارتباطات الرئيسية (j ، k ، l & m).


154
2018-05-25 09:33



شكرا هذه هي بالضبط المعلومات التي أردتها. ثو الآن أتساءل عما إذا كان هناك طريقة يمكن أن تجعل الشاشة اسمحوا لي استخدام أوامر إيماكس لتحديد المنطقة التي أريد نسخها ... - Noah Sussman
xsel: لا يمكن فتح العرض: (خالية): ioctl غير مناسب للجهاز - itsazzad
أنا حل مشكلة "لا يمكن فتح العرض" على ويندوز عن طريق تثبيت Xming وتعيين DISPLAY =: 0 - scottgwald
بالنسبة لمستخدمي tmux ، فإن الأمر أشبه Ctrl-b, [ -> go to position -> Space -> select texts -> Enter ولصق من قبل Ctrl-b, ] - elquimista


ضع نصًا مثل هذا يسمى pbcopy في مجلد سلة الخاص بك:

#!/bin/bash
xclip -i -sel c -f |xclip -i -sel p

سيؤدي هذا إلى وضع STDIN في كل من مخزن المعلومات المؤقت وحافظة الصور:

echo Hello world |pbcopy

8
2018-01-26 10:20



لماذا سوف cat تكون هناك حاجة؟ لن يعيد فقط توجيه stdout إلى stdout في هذه الحالة وبالتالي إساءة قطة غير مجدية أو هل أنا في عداد المفقودين شيء؟ - Hultner
أنت على حق أنها لا تبدو مثل سوء استخدام القطط :-) - Erik
إذا كنت (مثلي) تتساءل عن أين هي "القط عديم الفائدة" الغامضة ، فقد تمت إزالته بواسطة التعديل. NTS: في حالة وجود تعليقات مربكة ، تحقق من التاريخ ^^ " - yaitloutou
كيف تلصق المحتويات بعد استخدام هذا؟ فقط باستخدام xclip -o ؟ او هل هناك طريقه افضل؟ - n1k31t4


للتوسع في حلولErik وxpixelz ؛ يجب أن يعمل هذان البرنامجان على كلا النظامين الأساسيين:

pbcopy:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  cat | /usr/bin/pbcopy
else
  # copy to selection buffer AND clipboard
  cat | xclip -i -sel c -f | xclip -i -sel p
fi

pbpaste:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  /usr/bin/pbpaste
else
  xclip -selection clipboard -o
fi

4
2018-04-14 18:10



ولكن لماذا لديك هذا البرنامج النصي على OS X حيث يكون جزءًا من المستخدم الأصلي؟ - Hultner
* كمرجع لوظيفة مماثلة ، * dotfiles عبر النظام الأساسي: github.com/westurner/dotfiles/blob/develop/scripts/pbcopy - Wes Turner
لا يزال سوء استخدام القط وماذا لا تحقق من وجود xclip بدلا من ذلك وتعيين اسم مستعار إذا كان كذلك؟ أو تحقق مما إذا كان ثنائي pbpaste موجودة سيكون أيضا خيارا. التحقق من uname يبدو وكأنه نهج غريب للمشكلة. - Hultner
Hultner "يبدو أن التحقق من uname هو نهج غريب للمشكلة" يمكنك أيضًا البحث عن الثنائيات ، بشكل تفضيلي ، بالترتيب ، من خلال استثناء مع ${a:-${b:-${c:+${d}}}} و البعض type -P/ has تعيينات متغير و / بن / اختبار execs. - Wes Turner


تشير هذه الإجابة إلى نظام Linux الفرعي لنظام Windows.

الجواب باختصار: الاستخدام clip.exe كما لو كان pbcopy من أجل وضع شيء ما على حافظة Windows. انه سحر. مثال echo "Hello Windows" | clip.exe في bash أو Ubuntu bash terminal ، ثم `ctrl-v 'في برنامج Windows.

سياق أكثر:

في تعليق أعلاه ذكرت أنه عند استخدام Xming على Windows لتمكين هذه الوظيفة ، من الضروري تعيين متغير DISPLAY (export DISPLAY=:0في كثير من الحالات) قبل xsel و xclip حلول العمل. بشكل مثير للغضب ، يعمل هذا الحل بطريقة عشوائية لا يمكن الاعتماد عليها - عند اللصق من لينكس إلى Windows ، بالضغط ctrl-v ما بين مرة وعشر مرات يؤدي إلى لصق الحافظة (مرة واحدة) (هذا على Windows 10 Surface Book 2). لا تضيع وقتك ، استخدم clip.exe.

ملاحظة: لا تنسوا .exe. وإلا سيقترح "أوبونتو" أن تقوم بتثبيت حزمة Linux geomviewوهو ليس ما تريده.


1
2018-01-07 17:18