Notepad ++: отключить автоматический отступ после пустых строк

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
37
0
27 925
7

Ответы 7

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

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

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

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

Есть ли бесплатная (хотя бы как в пивной) версия комодо? на их сайте я могу найти только "пробную" версию.

Laurent 23.09.2008 06:16

Notepad ++ поставляется с макросом обрезки, который можно использовать для создания макроса обрезки и сохранения, но в нем есть ошибки. Предупреждение: мне потребовалось несколько лет, чтобы убедить моих коллег, что если они оставляют конечные пробелы в своем источнике, и я удаляю их при изменении файла, это не «загрязняет разницу» ...

Steve Jessop 23.09.2008 06:57

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

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

Я сейчас пишу прозу и это именно то, что мне нужно, ура!

JonnyRaa 11.04.2014 17:19

Это то, что я тоже искал. Спасибо.

user2023370 24.02.2016 15:01

Что я делаю в 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 ++ так, чтобы он не очищал буфер отмены при сохранении: в противном случае ошибка здесь была бы немного катастрофой. Но я все равно это установил.

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

Plugins > Plugin Manager > Show Plugin Manager, then install NppAutoIndent from the "Available" tab of that menu.

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

Plugins > NppAutoIndent > Previous line

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

Plugins > NppAutoIndent > Ignore language

Установка этого плагина на «Smart Indent» хорошо работала с PHP.

b01 28.01.2013 00:37

Мне пришлось перейти в «Плагины»> «Диспетчер плагинов»> «Показать диспетчер плагинов», затем установить NppAutoIndent из вкладки «Доступно» этого меню (онлайн-загрузка плагина не сработает). После установки перейдите в Плагины> NppAutoIndent, затем отметьте «Игнорировать язык» и «Предыдущая строка».

Qutorial 24.11.2013 18:20

У меня такой же отступ, но с табуляцией вместо пробелов. Это бесит питона. Как можно сделать такую ​​простую вещь так плохо.

jozxyqk 07.09.2014 13:30

Ааа, спасибо. Я прибегал к тому, чтобы ставить «проход» после каждого блока в Python, пока не нашел это.

Grault 06.11.2014 02:52

@Qutorial: Замечательный момент о необходимости «игнорировать язык» в некоторых случаях; Я взял на себя смелость добавить это к ответу.

Amos M. Carpenter 09.04.2015 08:03

это предполагает, что у вас включен плагин NppAutoIndent ... Мой не был включен, НО я все еще получал автоматический отступ ... это означает, что в Npp существует еще одна функция, которая также управляет автоматическим отступом.

dsdsdsdsd 18.05.2016 17:52

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

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

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

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

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

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

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

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

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

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

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

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

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

Используйте макрос «Обрезать трейлинг и сохранить», ярлык «Alt + Shift + S»

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

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

Другие вопросы по теме