Редактор вскрытия: поддерживать новые строки в конце предложений - PullRequest
7 голосов
/ 13 февраля 2009

При редактировании прозы, не относящейся к WYSIWYG (LaTeX, HTML и т. Д.), Вы, вероятно, захотите, чтобы в конце предложений были новые строки. Это имеет несколько преимуществ:

  1. Проще переставить предложения.
  2. Проще комментировать предложения.
  3. Проще заметить чрезмерно длинные предложения.
  4. Проще комментировать на предложениях.

Например:

% The following isn't strictly true; maybe excise or comment out for now:
After all, people who use Word or other WYSIWYG editors are aiding and 
abetting terrorists.

И, вероятно, самое важное преимущество заключается в том, что оно значительно облегчает совместное редактирование под управлением версиями. В противном случае вы столкнетесь с конфликтами, которые просто сообщат вам «следующие две версии этого огромного абзаца находятся в конфликте».

Но поддерживать переводы строк в конце предложений легче, чем сделать ...

As you edit the prose
it will get all chopped up, like this.
Normally you'd do a "reformat paragraph"
to clean it up, but then
you lose the newlines at the ends of your sentences!

Следующий вопрос о том, как решить эту проблему в emacs:

Как заставить Emacs заполнять предложения, но не абзацы?

Я хотел бы знать, как люди справляются с этим в других редакторах, включая vim, TeXShop, TextMate и любые другие, которые, по вашему мнению, было бы полезно собрать здесь. Консультации по мягкой и жесткой упаковке также приветствуются.

Ответы [ 8 ]

3 голосов
/ 13 февраля 2009

Я думаю, что самое простое решение - добавить новые строки после полной остановки. Тогда ваши правки никогда не будут разбивать строки на части.

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

1 голос
/ 08 апреля 2011

Что бы вы ни делали, не используйте редактор, который автоматически жестко оборачивает весь документ, если вы находитесь в среде совместной работы. Друзья не позволяют друзьям использовать WinEdt.

1 голос
/ 29 апреля 2009

В vim вы можете заполнить до конца текущего предложения gw). Он не будет переформатировать весь абзац или регион для вас, но если вы старайтесь вставлять после каждого предложения новые строки, и вы переформатируете с gw), как вы пишете, это работает довольно хорошо.

1 голос
/ 13 февраля 2009

Обычный текстовый редактор не должен пытаться изменить файл, который вы пишете, если вы явно не попросите его об этом. Это может изменить внешний вид файла на экране для удобства чтения, но это все.

Поэтому большинство приличных редакторов в моем опыте делают мягкую переноску и сохраняют разрывы строк, где бы вы их не вставляли.

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

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

1 голос
/ 13 февраля 2009

Vim:

Вы можете отключить перенос текста (set formatoption-=t), и он не будет добавлять разрывы строк, если вы не нажмете клавишу ввода. Более того, если вы можете выяснить, как настроить параметр 'comments', чтобы он распознавал ваши комментарии, вы можете установить ширину автоматической переноски только для ваших комментариев, а не для чего-либо еще:

set comments=b:%
set textwidth=80
set formatoption+=c
set formatoption-=t

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

0 голосов
/ 13 февраля 2009

вам не нужны переводы строк в конце предложений.

конечно, легче делать 4 вещи, которые вы перечислите, но это не стоит делать иначе, чем то, что делает остальной мир (даже если мировые причины столь же глупы, как и причины CR LF = newline).

и ваше самое большое преимущество не соответствует действительности:

В противном случае вы столкнетесь с конфликтами где он просто информирует вас " следующие две версии этого огромного параграф "в конфликте".

Как он узнает, когда он будет основан на строках, а когда - на предложениях?

Вы можете использовать Meld или другой подобный инструмент сравнения и позволить ему делать свою работу.

0 голосов
/ 13 февраля 2009

Я хотел бы знать, как люди справляются с это в других редакторах,

FWIW на платформе Windows, редактор Zeus имеет настраиваемое правое поле и встроенную функцию перенос строки .

Так, например, с правым полем, установленным на 60 символов, отмечая текст вашего примера и затем используя меню Macros, Linewrap Paragraph , Zeus переформатирует текст следующим образом:

As you edit the proseit will get all chopped up, 
like this. Normally you'd do a "reformat 
paragraph"to clean it up, but thenyou lose the 
newlines at the ends of your sentences!

Обтекание hard в том смысле, что во всех строках выше вставлен символ конца строки.

0 голосов
/ 13 февраля 2009

Все это выглядит довольно надуманным способом обойти ограничение diff. Почему бы не создать дифференциал, чувствительный к предложению, а не связываться с вашим источником?

...