Что такое pbcopy OSX для Linux

в терминале в OSX я могу передать вывод в pbcopy, а затем перейти в веб-браузер и вставить его. Я пробовал это в Linux с xcopy, но когда я переключаюсь на браузер, он просто перезаписывает буфер обмена с тем, что было в нем в последний раз, когда браузер использовался. Что работает как pbcopy в Linux?

16
задан tony_sid
30.04.2023 9:40 Количество просмотров материала 3042
Распечатать страницу

4 ответа

если у вас установлен 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, я использую функциональность экрана GNU для копирования между открытыми оболочками в сеансе с помощью клавиатуры

скопировать : 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
отвечен xpixelz 2023-05-01 17:28

поместите скрипт типа pbcopy в папку bin:

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

это поместит STDIN как в буфер выбора, так и в буфер обмена:

echo Hello world |pbcopy
8
отвечен Erik 2023-05-01 19:45

для расширения на решениях @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
отвечен Wes Turner 2023-05-01 22:02

этот ответ относится к подсистеме Linux для Windows.

короткий ответ: используйте clip.exe как будто pbcopy для того, чтобы положить что-то в буфер обмена Windows. Это волшебство. Пример echo "Hello Windows" | clip.exe в вашем bash или Ubuntu bash терминала, а затем 'ctrl-v' в программе Windows.

более подробно:

In комментарий выше я упомянул, что при использовании Xming в Windows для включения этой функции необходимо установить дисплей переменная (export DISPLAY=:0 во многих случаях) перед xsel и xclip решений. Раздражающе, это решение работает ненадежным, стохастическим способом-при вставке из Linux в Windows, нажав ctrl-v от одного до десяти раз вызывает буфер обмена для вставки (один раз) (это на моем Windows 10 Surface Book 2). Не тратьте свое время, используйте clip.exe.

примечание: не забудьте .exe. В противном случае Ubuntu bash предложит вам установить пакет Linux geomview, которым это не то, чего ты хочешь.

1
отвечен scottgwald 2023-05-02 00:19

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх