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 / killring
В 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 секунд.