Чем отличается жесткая пленка от мягкой?

99

Я пишу текстовый редактор. Посмотрев на другие текстовые редакторы, я заметил, что некоторые из них ссылаются на «мягкую» и «жесткую» обертку. В чем разница? Кажется, я не могу найти ответ путем поиска.

титан
источник

Ответы:

137

Жесткий перенос вставляет фактические разрывы строк в тексте в точках переноса, при мягком переносе фактический текст все еще находится на той же строке, но выглядит так, как будто он разделен на несколько строк.

Фирас Ассаад
источник
19

Текстовые редакторы обычно автоматически переносят текст в абзацы с жесткими символами новой строки, но реже текст будет перетекать в красивый абзац, если вы вернетесь позже и отредактируете / добавите / удалите слова позже. (Вы можете сделать это вручную в emacs с помощью Mq.)

Это довольно раздражает, поскольку обсессивно-компульсивные люди, такие как я, затем возвращаются и должны вручную повторно вставлять жесткие паузы в соответствующие места.

С другой стороны, мягкое обертывание раздражает, потому что большинство инструментов командной строки используют сравнение на основе строк (контроль версий - это то, где это становится для меня наиболее заметным). Если у вас есть абзац на 1/3 страницы, который мягко обернут и исправлен опечатка, практически невозможно увидеть, где находится изменение в обычном diffили подобном выводе.

Уилл Робертсон
источник
2
Я знаю, что вы сказали «обычный» diff, однако я хотел бы отметить, что выделение - это находка.
SW.
1
@Will, Так какое решение рекомендуют такие люди, как вы?
Pacerier
Если вы используете Vim с включенными номерами строк (: set nu), вы обнаружите, что он мягко обертывает строки, но сохраняет их отдельно, поэтому, если отдельная строка шире экрана, вы все равно сможете прочитать весь текст. , но это не повлияет на вашу способность выполнять поиск по номерам строк. (Видимая линия отличается от реальной линии). Вы также можете перейти прямо к строке, набрав: 10 или: 30 и т. Д.
daviewales
Если вы используете Git, легко увидеть изменения с помощью мягкой упаковки. Использование git diff --word-diff
Энтони Эберт
14

soft : текст в текстовой области не переносится при отправке в форму. Это по умолчанию

жесткий : текст в текстовой области переносится (содержит символы новой строки) при отправке в форму. Когда используется "жесткий", необходимо указать атрибут cols.

Ссылка: W3Schools

РевантКришнаКумар В.
источник