Самый надежный способ, который я нашел, — использовать диски gnome -.
Откройте программу, выберите флешку и в верхнем правом значке настроек выберите «Восстановить образ диска» (обязательно выберите тот, который использует весь диск, а не только восстанавливает один раздел ).
Скорее всего, у вас останется большой сектор свободного места после операции, лучше оставить его как есть на тот случай, если он понадобится вам во время установки GuixSD для изменения файла config.scm.
У меня это работает в 100% случаев, нет необходимости использовать какие-либо команды терминала. Диски gnome -, кажется, могут программировать MBR для флешек.
Имейте в виду,это удалит ВСЕ данные на этом диске!
После небольшого исследования оказалось, что bash использует для этого внутреннюю переменную, а не любой доступный системный буфер. В руководствах по bash и readline он упоминается как «кольцо уничтожения», а реализацию можно прочитать на GitHub и в других местах. Возможно, можно было бы взломать этот механизм, чтобы вместо этого использовать системный буфер обмена, но мне кажется, что в данный момент это слишком сложно для меня.
Вместо этого я остановился на простом обходном пути ниже, используя встроенную команду bash bind
, описанную на страницах руководства для bash (search forbind \[
). Он довольно хорошо покрывает мой вариант использования, но не охватывает более сложные убийства и рывки с помощью vim-движений. Пожалуйста, сообщите мне, если вы видите что-то ужасное в моем решении, так как я не имею привычки писать сценарии bash.
В ~/.bashrc:
# Macros to enable yanking, killing and putting to and from the system clipboard in vi-mode. Only supports yanking and killing the whole line.
paste_from_clipboard () {
local shift=$1
local head=${READLINE_LINE:0:READLINE_POINT+shift}
local tail=${READLINE_LINE:READLINE_POINT+shift}
local paste=$(xclip -out -selection clipboard)
local paste_len=${#paste}
READLINE_LINE=${head}${paste}${tail}
# Place caret before last char of paste (as in vi)
let READLINE_POINT+=$paste_len+$shift-1
}
yank_line_to_clipboard () {
echo $READLINE_LINE | xclip -in -selection clipboard
}
kill_line_to_clipboard () {
yank_line_to_clipboard
READLINE_LINE=""
}
bind -m vi-command -x '"P": paste_from_clipboard 0'
bind -m vi-command -x '"p": paste_from_clipboard 1'
bind -m vi-command -x '"yy": yank_line_to_clipboard'
bind -m vi-command -x '"dd": kill_line_to_clipboard'
Редактировать1:На привязки "yy" и "dd", использующие два последовательных нажатия клавиш, влияет параметр readline keyseq-timeout
. Значение по умолчанию — 500 мс, то есть вам нужно будет ввести второй символ в течение 500 мс после первого. Поэтому, если вы установили keyseq-timeout
на гораздо более низкое значение, у вас могут возникнуть проблемы.
Редактировать 2:Обновлена вставка для более точной имитации поведения vim.