1

Бывает, что текст, скопированный из терминала и вставленный в nano заканчивается так:

auto host0
iface host0 inet static
        address 10.200.0.3
                netmask 255.255.255.0
                        gateway 10.200.0.254

Очевидно, есть проблема в том, как комбо-оболочка (fish в моем случае, но это также происходит с bash) + редактор обрабатывает строку возврата. Интересно, что в моем примере выше первые две строки были обработаны правильно (то есть возвращение первой строки).

Тот же файл, открытый с помощью vi позволяет выполнять обычную вставку (формат файла сохраняется).

Какая настройка, которая управляет этим поведением?

1 ответ1

3

Традиционно вставка в терминальные эмуляторы представляла собой не что иное, как вид, что пользователь быстро набирает заданные буквы с клавиатуры. В сочетании с функцией автоматического отступа многих редакторов (например, nano -i), если вставленный (псевдотипированный) текст содержит пробелы или TAB в начале каждой строки, это, очевидно, приводит к увеличению отступа, то есть лестничный эффект, который вы видите.

Один из возможных способов избежать этого - отключить автоиндентирование на время вставки. Обратитесь к документации nano , чтобы узнать, можно ли переключать этот параметр времени выполнения, я не знаю.

В последнее время большинство эмуляторов терминалов ввели "режим вставки в скобках", чтобы улучшить эту ситуацию. Это специальный режим, который могут активировать приложения (например, vim , nano), и он инструктирует эмулятор терминала заключать вставленный текст между специальными символами управления. Одна из основных целей - чтобы текстовые редакторы автоматически отключали автоиндентирование, когда это происходит, то есть, чтобы избежать эффекта лестницы. В данный момент я не вижу никаких признаков того, что nano поддерживает это. Запрос о функции подан здесь , возможно, вы могли бы спросить разработчиков, планируют ли они решить эту проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .