Загрузка Fedora27.iso с помощью grub2

  • Начало строки
  • Начало команды

Легко доказать, что различие между этими двумя (в многострочной команде) вещами внутри readline/bash не может быть выполнено. И поскольку различение не может быть выполнено, не может быть привязки клавиш для каждого.

Все нижеприведенное предполагает, что set -o vi

Допустим, я ввожу в командной строке bash следующее (я также нажимаю Return и генерируется вывод):

[~]$ echo "yay
> yep
> yup"
yay
yep
yup

Next Я нажимаю Esc, k и получаю следующее ({.} — это положение курсора):

[~]$ {e}cho "yay
yep
yup"

Обратите внимание на пару вещей:

  1. PS2 (> на моей машине) не распечатывался, как когда я набирал его напрямую.
  2. Если я продолжаю нажимать k и/или j, я прокручиваю предыдущие команды, а не строки в команде.

Поэтому предположим, что на самом деле мы редактируем не несколько строк, а одну строку, содержащую символы новой строки (да, разница огромная. История команд ( в памяти) хранится в виде связанного списка, а не в виде текста, разделенного символами новой строки.).

А давайте попробуем найти способ доказать, что строка становится несколькими командами только тогда, когда ее разбирает интерпретатор. Вот команда из раздела readline man bash:

comment-begin (``#'')
              The  string that is inserted when the readline insert-comment command is executed.  This command is bound to
              M-# in emacs mode and to # in vi command mode.

По сути, если мы нажмем #, строка должна быть закомментирована и передана интерпретатору (не знаю, почему это так). передан интерпретатору, чтобы появиться в истории, я думаю).Во всяком случае, мы знаем, что если мы нажмем #, будет выполнена команда readline, то есть это не запрос на редактирование (который на самом деле должен быть «искать дальше» в Vi).

Давайте сначала переместим курсор в конец, нажав $:

[~]$ echo "yay
yep
yup{"}

И теперь мы нажимаем #, что-то происходит, и вот как выглядит сеанс оболочки:

[~]$ #echo "yay
yep
yup"
bash: yep: command not found
> { }

Это кажется странным, не так ли? Но это именно то, что мы просили, readline прокомментировал строку и передал парсеру. echo "yay закомментировано, оболочка попыталась запустить yep и мы видим PS2, потому что у нас есть незаконченная цитата из yup" . Введите " Return, чтобы выйти.

Итак, мы можем заключить, что readline не различает строки в многострочной команде , которую мы ввели выше. Если readline не делает различий, тогда режим Vi, который находится поверх него, также не может различать.

Если вам нужно редактировать несколько строк отдельно друг от друга, следуйте ответу @BartonChittenden (+1) и введите Редактор разделяет строки на разные объекты, чтобы вы могли перемещаться между ними.

1
02.03.2018, 05:08
1 ответ

Была такая же проблема. Вот обновленная запись с параметром загрузки из «EFI/BOOT/grub.cfg» в iso. [используйте grub2 -mkconfig для обновления grub.cfg пользовательской записью]

Я поместил iso в корневую папку и вот что у меня сработало.

menuentry 'Fedora-Workstation-Live-x86_64-27-1.6' {
    loopback loop (hd0,msdos1)/Fedora-Workstation-Live-x86_64-27-1.6.iso
    linux (loop)/isolinux/vmlinuz iso-scan/filename="/Fedora-Workstation-Live-x86_64-27-1.6.iso" root=live:CDLABEL=Fedora-WS-Live-27-1-6 rd.live.image quiet
    initrd (loop)/isolinux/initrd.img
}
1
28.01.2020, 00:39

Теги

Похожие вопросы