Упаковка длинных линий в Нано


66

При редактировании файла authorised_keys в Nano я хочу обернуть длинные строки, чтобы я мог видеть конец строк (то есть сказать, чей это ключ). По сути, я хочу, чтобы это выглядело как результатcat authorised_keys

Итак, я нажимаю Esc + Lмета-ключ для включения переноса длинных строк на моей платформе и вижу сообщение о том, что перенос длинных строк включен, но перенос строк не соответствует ожидаемому.

Я использую терминал на OSX 10.8.5

Ответы:


90

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

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

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

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

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


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

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

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


3
Это была моя самая большая любимая мозоль в нано. Спасибо, что разобрались с этим.
user208145

1
Я бы порекомендовал включить номера строк Alt + Shift + 3или set linenumbersв ~/.nanorcфайле настроек.
Даниэль Соколовский

1
Обратите внимание, что в старых версиях nano эта функция мягкого переноса отсутствует. На версии 2.0.9 он не включен, но на версии 2.5.3 он есть. Если вы используете версию, которая не имеет этой функции, она выдаст предупреждающее сообщение «Неизвестная команда» в нижней центральной части области редактирования текста.
frederickjh

15

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

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

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

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

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

Кроме того, вы бы нашли эти ярлыки с ^ G (т.е. Ctrl- G) в Nano.


5
Meta $= Alt+ Shift+4
JamesTheAwesomeDude

1
Мягкая упаковка включена в Nanorc с set softwrap, а жесткая упаковка в Nanorc с set nowrap.
mwfearnley

14

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


7

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

set nowrap

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

set softwrap

1
В pfSense (и, возможно, в более общем случае во FreeBSD) требуется файл / usr / local / etc / nanorc. В противном случае, я думаю find / -type d -name etc, найдут другие возможные места.
Mwfearnley

5

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

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

(Установите их в ~/.bashrc(или .bash_aliasesв некоторых системах) или в вашем любимом запуске оболочки)

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

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

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


3

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

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

На нано 2 , set softwrapбыл добавлен, который позволяет softwrapping и отключает hardwrapping. set nowrapбыл изменен, чтобы отключить только упаковку

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

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

set nowrap
set softwrap

Это также вдумчивый ответ, и я ссылаюсь на него из моего ответа выше.
Корейт

2

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

Esc + L работает как положено.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.