Notepad ++: отключить авто-отступ после пустых строк - PullRequest
35 голосов
/ 23 сентября 2008

Я нахожу стиль автоиндексации в Notepad ++ немного странным: когда я печатаю строку с отступом, я делаю хочу, чтобы он отступал в следующей строке после нажатия клавиши Enter (это правильно). Однако, когда я нахожусь на пустой строке (без отступа, без символов) и нажимаю клавишу Enter, она делает отступ для следующей строки, используя тот же отступ, что и для последней непустой строки. Я нахожу это чрезвычайно раздражающим; Вы когда-нибудь сталкивались с этой проблемой и знаете, как ее исправить?

(Примечание: я редактирую файлы HTML / PHP.)

(Также приветствуются предложения других хороших бесплатных редакторов для HTML / PHP, если нет способа изменить это поведение.)

Ответы [ 7 ]

23 голосов
/ 06 декабря 2008

1) Сначала установите плагин NppAutoIndent, если у вас его нет.

Плагины> Менеджер плагинов> Показать диспетчер плагинов, затем установить NppAutoIndent на вкладке «Доступные» этого меню.

2) Это поведение можно отключить, выполнив:

Плагины> NppAutoIndent> Предыдущая строка

3) Если эта опция отключена, вам может понадобиться сначала проверить эту опцию:

Плагины> NppAutoIndent> Игнорировать язык

15 голосов
/ 23 сентября 2008

Я могу подтвердить, что эта проблема возникает с Notepad ++ версии 5.0.3. Единственный связанный параметр, который я обнаружил, находится в меню «Настройки»> «Установки»> «MISC»> «Автоотступ», но он просто включает или выключает все функции автоотступа.

Я использовал Editra (http://editra.org) в прошлом и был доволен этим, и он, кажется, справляется с отступом, как вы описываете.

3 голосов
/ 28 января 2013

Я нашел другой способ:

Используйте макрос "Trim Trailing and save" ярлык "Alt + Shift + S"

Если вам это нужно все время, просто поменяйте местами ярлык сохранения с макросом "Обрезать трейлинг и сохранить".

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

2 голосов
/ 19 мая 2010

К сожалению, Notepad ++ не обрезает вторую пустую новую строку автоматически. Но, как обходной путь, я согласен с user108570 : макрос был бы идеальным.

Мне нравится проводить концептуальное различие между "мягким" и "жестким" переводами строк, аналогично двум типам вкладок. Выход первого зависит от текущего стиля и настроек отступов. Выход последних, однако, всегда должен быть простым, незапятнанным, простым ванильным переводом.

Наиболее часто используемый вид перевода строки, конечно, должен быть сопоставлен с более простой комбинацией клавиш. Для большей части вашего редактирования вы, вероятно, захотите оставить «мягкий перевод строки» сопоставленным с клавишей «Enter» и изменить «Ctrl + Enter», чтобы вызвать «жесткий перевод строки».

В «Меню -> Настройки -> Ярлык ярлыков -> Главное меню» вы увидите, что по умолчанию «Ctrl + Enter» сопоставлен с «Завершение слова». Это нужно отключить сначала, сопоставив его с «None».

Затем просто запишите макрос:

  1. Меню -> Макрос -> Начать запись
  2. Клавиатура -> Ввод
  3. Клавиатура -> Вкладка
  4. Клавиатура -> Shift + Home
  5. Клавиатура -> Удалить
  6. Меню -> Макрос -> Остановить запись
  7. Меню -> Макрос -> Сохранить текущий записанный макрос

На последнем шаге появится диалоговое окно, в котором вы назовете макрос (например, «Жесткий перевод строки») и установите его отображение (т.е. «Ctrl + Enter»).

На шаге 3 мы могли бы добавить что-нибудь (для печати). Его единственная цель - добавить что-либо, чтобы удалить, если ничего не было раньше, так что любой текст, следующий за курсором, останется нетронутым.

1 голос
/ 22 июля 2009

Trim Trailing Space и Save раздражает. Вы заметите, что вы вставляете несколько символов в документы непреднамеренно.

Вместо этого запишите макрос и свяжите его с вашими Ctrl + S.

Вот как это сделать:

  1. Макрос -> Начать запись
  2. Редактировать -> Обрезать завершающий пробел
  3. Файл -> Сохранить
  4. Макрос -> Остановить запись
  5. Макрос -> Сохранить текущий записанный макрос (обрезать и сохранить)
  6. Настройки-> Ярлык быстрого доступа
  7. Главное меню -> Сохранить -> Ctrl + Alt + Shift + Сохранить
  8. Макросы-> Обрезать и сохранить -> Ctrl + S
1 голос
/ 23 сентября 2008

Что я делаю в Notepad ++:

  • В TexFX> TexFX Edit есть макрос "обрезать конечные пробелы".
  • Используйте это для создания макроса «обрезать и сохранить».
  • Привязать этот макрос к CTRL + S и привязать «Сохранить» к чему-то еще.

Я бы сказал вам, как записать макрос, который использует другой макрос, но это было много лет назад, когда я делал это, а сейчас просто копирую файл. Я ожидаю, что это просто работает, или, возможно, я сделал это путем ручного редактирования файла ярлыков. Это выглядит так (в shortcuts.xml):

<Macro name="Trim and save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
    <Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
    <Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
    <Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
</Macro>

Два предупреждения:

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

  • Некоторые люди расстраиваются, если вы удаляете конечные пробелы из «своих» файлов - либо потому, что им это нравится, либо потому, что они иногда используют diff, не игнорируя пробелы (например, в отчетах об изменениях), и не хотят видите, что вы изменили половину файла, когда на самом деле это была одна строка. Поэтому для этих файлов просто оставьте конечный пробел как есть и сохраните его с помощью alt-f-s (или «чего-то еще», в которое вы переместились сохранить) вместо ctrl-s. Вам, вероятно, нужно установить Notepad ++, чтобы не очищать буфер отмены при сохранении: в противном случае ошибка здесь будет немного катастрофической. Но я все равно это установил.

0 голосов
/ 23 сентября 2008

Если честно, мне кажется, это ожидаемое поведение. Я часто использую пустые строки, чтобы разбить код на части, чтобы сделать его более читабельным, а наличие программы, заставляющей меня снова выводить текст, было бы ОЧЕНЬ раздражающим.

Я могу понять это как разочарование чем-то вроде Python, но не PHP ... Хотя до скобок и т. Д. Это может раздражать.

Попробуйте Komodo Edit однако, это бесплатно, и я обнаружил, что в целом он был лучшим для авто-отступа для меня. Кажется, он изучил мой стиль кодирования (или у него есть опции для всех стилей кодирования, и он улавливает то, что вы используете) и автоматически корректирует все отступы.

Редактировать: Как вы отметили в своем ответе, проблема связана с «замыкающим пробелом» - я не слишком хорошо знаю Notepad ++, но большинство современных редакторов, предназначенных для кодирования, имеют опцию «раздвигать пробелы после сохранения ( Я знаю, что Комодо делает!)

...