Як ефективно надсилати текст, введений у командному рядку, до буфера обміну системи без використання миші?


14

Скажіть, я набрав наступну довгу команду в командний рядок

 $ some very long command that I want to copy to the clipboard

Як я можу це ефективно встановити на буфер обміну системи? Я використовую термінал Gnome 2.23.1.

Я знаю, що я можу отримати мишу та виділити її та скопіювати, але я хочу загальне рішення для клавіатури.

Було б також добре, якби він узагальнив кілька програм командного рядка.

Наприклад, у режимі bash in vi я можу натискати vта потім редагувати команду в vim, і таким чином використовувати функції копіювання Vim у буфер обміну, але це не працює при використанні R у командному рядку. Це також трохи повільно.

Мені б хотілося, щоб у режимі vi я міг натискати yyта копіювати вміст рядка в буфер обміну системи, але це, здається, не працює. Крім того, схоже, що жодні команди, що б'ються, не копіюють вміст у буфер обміну системи; вони, здається, копіюють лише в буфер, який використовується bash.

ОНОВЛЕННЯ:

Після публікації я знайшов


1
Не зовсім те, що ви просите: використовуючи екран, ви можете досягти того, що ви запитуєте, слідуючи за цією відповіддю: askubuntu.com/questions/56570/…
enzotib

Після цієї відповіді ( askubuntu.com/a/503861/43594 ) ви можете ввімкнути клавіші миші в універсальному доступі та використовувати цифрову клавіатуру для переміщення миші, при цьому цифра п'ять виконує роль клацання. Коли це швидко натиснути подвійним клацанням, воно вибере слово, на якому вказується курсор. Коли це швидко потрійне клацання, він вибере весь рядок. Це разом з відповідями про те, як скопіювати (Ctrl-Shift-C), має виконувати більшу частину того, що вам потрібно.
Джеймс

Відповіді:


3

Ви також можете використовувати менеджер буфера обміну, як parcellite. Це менеджер буфера обміну GTK +, який також має можливості буфера обміну командного рядка

Ви можете використовувати його за допомогою командного рядка від

echo "some very long command that I want to copy to the clipboard" | parcellite
##or##
parcellite "some very long command that I want to copy to the clipboard"

Він не встановлений за замовчуванням, тож вам доведеться встановити парцеліт на sudo apt-get install parcellite


1
дякую, принаймні, коли я в басі, я іноді використовував echo my command | xclip -se c; Однак, коли в команді є цитати та інші спеціальні символи, echoчасто не копіюйте команду буквально.
Джеромі Англім

1

Отже, закриття, яке я мав змогу отримати, - це використовуючи історію та xclip спільно, роблячи це

echo !! | xclip

Це помістить останню команду в буфер обміну центральної кнопки. Я все ще шукаю щось краще, хоча як би хотілося звести це до однієї команди. Однак я зависаю, оскільки історія не функціонує в сценаріях оболонок, і я не знаю, що існує спосіб !!належного використання в псевдонімі. Звичайно, це, здається, не зовсім те, що ви просите про мій намір використовувати це для запису записів про те, що я роблю. Хоч якісь?


Крім того, досі залишається питання про те, як скопіювати команди з лапок.
Джеромі Англім

0

Ви повинні мати можливість використовувати Ctrl+ Shift+ Cдля копіювання та Ctrl+ Shift+ Vдля вставки в будь-якому місці терміналу.


3
Вам ще потрібна миша, щоб вибрати текст.
enzotib

До! дуже дійсний пункт
Дірк Хартцер Уолдек

2
Звідки виникає питання, чи можливо налаштувати термінал або bash, щоб мати можливість вибору тексту за допомогою клавіатури?
Джеромі Англім

@JeromyAnglim пов'язані: stackoverflow.com/q/312213/1172302
Нікос Alexandris
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.