Длинная линия, переносящаяся в Нано

Что-то вроде этого:

$ while read -r title
> do
>  read -r url
>  read -r uploader
>  echo "Title is $title "
>  echo "Url is $url "
>  echo "Uploader is $uploader"
> done < file
72
02.04.2014, 19:23
7 ответов

Чтобы увидеть стиль переноса слов, который вы описали, используйте «мягкое обтекание» nano: Esc + $ .

Команда Esc + L , которую вы (и все) попробовали, выполняет «жесткую упаковку».

Обратите внимание на нотацию нажатия клавиш - если вы новичок в Linux, запись Esc + $ означает нажатие и отпускание Esc , а затем нажатие $ . Полная последовательность нажатия клавиш будет Esc , Shift + 4 .

(Это не означает удержание клавиши escape при нажатии $ .)

Источник: https://www.nano-editor.org/dist/ v2.9 / нано.html (ищите --softwrap)


Примечание об ошибках softwrap и форматирования - Если вы новичок в nano, будьте осторожны с softwrap. Если вы редактируете файл конфигурации или что-то еще, что чувствительно к новой строке или отступам, могут быть сделаны ошибки форматирования. Пока вы не освоитесь с поведением softwrap, я предлагаю выполнить быструю проверку с отключенным softwrap (повторите последовательность клавиш) перед сохранением.

Обратите внимание на доброту, предоставленную другими в их ответах ниже - потому что разные операционные системы и разные версии nano делают вещи немного по-разному:

  • Если вам нравится softwrap постоянно, установите его в своем .nanorc, как описано в ответе x0a ниже , так как он немного больше, чем у Прашанта.
  • Если у вас Raspberry Pi, обратите внимание на ответ бензопилы о необходимости дополнительного нажатия клавиши для включения softwrap.
  • Если у вас Mac, например lodeOfCode, ответ ниже , вы всегда можете обновить nano и здесь и, таким образом, насладиться теплым сиянием softwrap!

98
27.01.2020, 19:31

Просто искал нанообертывание линии, и это дало высокие результаты, так что я выложу свои результаты для GNU nano 2.2.6 на Raspberry Pi, Raspbian GNU/Linux 7: Esc+L дал мне то же самое сообщение; но для того, чтобы обертывание линии вступило в силу, мне пришлось изменить линию. Как только я набрал другой символ на длинной строке, обертка сработала.

14
27.01.2020, 19:31

Я читаю здесь ответы, и мне нужно это исправить!

Nano поддерживает две разные формы переноса строк, и может быть важно знать разницу!

Во-первых, мета-клавиша ниже часто является клавишей Alt, но не обязательно.

  • Мягкий перенос строк активируется с помощью Мета - $ . Переносит строки без вставки символов разрыва строки в файл. То есть эффект чисто визуальный.
  • Жесткий перенос строк активируется с помощью Мета - L . Переносит строки путем вставки разрывов строк в файл. Файл физически изменен.

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

Кроме того, вы можете найти эти ярлыки с помощью ^ G (т.е. Ctrl - G ) в Nano.

17
27.01.2020, 19:31

Установка псевдонимов для редактора nano также работает хорошо.
Обычно я использую:

 alias  e='nano -\$cwS'
 alias se='sudo nano -\$cwS'

Добавьте псевдонимы в конец вашего ~/.bashrc, ~/.bash_aliasesили ваш любимый файл запуска оболочки.

Использование:

e [filename]

или версия sudo:

se [filename]

Используемые флаги/параметры:

\$= Включить мягкий -перенос строк(экранированных с использованием обратной косой черты)
c= Показать постоянное положение курсора (внизу)
w= Отключить любой «жесткий перенос»
S= Плавная прокрутка

И (как уже упоминалось )один раз в редакторе используйте Esc , $ для включения/выключения мягкого -переноса.

5
27.01.2020, 19:31

Обычно открыть nanorc по адресу ~/.nanorc или /etc/nanorc, закомментировать строку

set nowrap

И раскомментируйте строку

set softwrap
13
27.01.2020, 19:31

Вы можете установить значения по умолчанию в ~/.nanorc. Но имейте в виду, что настройки конфигурации для nano 1, nano 2 и nano 3 различаются.

На nano 1 у вас есть только настройка set nowrap, которая отключает все переносы.

На nano 2 , set softwrapбыли добавлены, которые включают программную упаковку и отключают жесткую упаковку. set nowrapбыл изменен так, что он только отключает жесткую упаковку

На nano 3 , set softwrapигнорируется, и nano продолжает выполнять жесткую переноску, если только вы не set nowrap.

Таким образом, если вы хотите, чтобы перенос текста для длинных строк не нарушал ваши файлы конфигурации (только программный перенос ), это работает для версий 2 и 3:Добавьте следующие 2 строки до~/.nanorc

set nowrap
set softwrap
12
27.01.2020, 19:31

Уведомляем пользователей Mac, что версия Nano, поставляемая с High Sierra (v2.0.6 )или более ранней, не поддерживает плавный перенос строк, как описано здесь. Вы получите неизвестную ошибку команды. v2.2 — самая ранняя версия, в справочных страницах которой упоминается мягкая упаковка. Так что не тратьте час, пробуя все эти решения, как я.

Esc+L работает должным образом.

5
27.01.2020, 19:31

Теги

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