X11
Якщо ви використовуєте X11 (найпоширеніший графічний інтерфейс для традиційних систем на базі Unix або Linux), щоб скопіювати вміст файлу у вибір X11 CLIPBOARD, не відображаючи його, ви можете скористатися програмою xclip
або xsel
утилітою.
xclip -sel c < file
Або:
xsel -b < file
Для зберігання вмісту у file
вигляді вибору CLIPBOARD X11.
Зауважте, що він повинен зберігатися за допомогою кодування UTF-8 або іншим чином вставлення не працюватиме належним чином. Якщо file
кодування закодовано за допомогою іншого набору символів, слід спочатку перетворитись на UTF-8, наприклад:
iconv -f latin1 -t utf8 | xclip -sel c
Для файлу, закодованого в latin1 / iso8859-1 .
Щоб зберігати його як CUT_BUFFER (вони все ще запитуються деякими програмами, наприклад, xterm
коли нічого не претендує на вибір CLIPBOARD або PRIMARY X і не потрібно мати процес, що його виконує, як для вибору), хоча ви, ймовірно, не хочете або потрібно використовувати це сьогодні:
xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"
(з нього видаляються символи нового рядка file
).
Екран GNU
GNU screen
має readbuf
команду перенести вміст файлу у власний буфер копіювання-вставки (який ви вставляєте ^A]
). Тому:
screen -X readbuf file
Apple OS / X
Хоча Apple OS / X може використовувати X11. Це за замовчуванням, якщо ви не запустите програму X11. Ви могли б використовувати xclip
або xsel
там, як OS / X повинен синхронізувати вибір X11 CLIPBOARD з буферами картонних карток OS / X, але це буде трохи марно запускати сервер X11 саме для цього.
На OS / X, ви можете використовувати pbcopy
команду для збереження довільного вмісту в картонні буфера:
pbcopy < file
(кодування символів файлу очікується як локальне).
Раковини
Більшість оболонок мають власні буфери копіювання та вставки. У режимі emacs операції вирізання та копіювання зберігають скопійований / вирізаний текст у стек, з яким ви потягуєте / вставляєте Ctrl-Y, та переходите за допомогоюAlt+Y
zsh CUTBUFFER / вбивство
В zsh
, стек зберігається в $killring
масиві, а верхня частина стека в $CUTBUFFER
змінній, хоча ці змінні доступні лише у віджетах Zsh Line Editor (zle), а кілька спеціалізованих віджетів є кращим способом маніпулювання ними.
Оскільки вони доступні лише через ZLE, робити це за допомогою команд є дещо складним:
zmodload zsh/mapfile
zle-line-init() {
if [ -n "$FILE_TO_COPY" ]; then
zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
unset FILE_TO_COPY
fi
}
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A
zle-line-init
Спеціальний віджет виконується один раз на початку кожної нової командного рядка. Це означає, що файл буде скопійовано лише під час наступного підказки. Наприклад, якщо ви робите:
file-copy file; sleep 2
Файл буде скопійовано лише через ці 2 секунди.