Як зробити так, щоб блокнот ++ видалив рядки, як Eclipse?


74

Eclipse має комбінацію клавіш, яка видаляє або поточний рядок (якщо нічого не вибрано), або всі рядки, що входять до тексту, вибраного на даний момент: Ctrl+ D.

Чи є спосіб зробити Ctrl+ Dзробити те ж саме в Блокноті ++?

Найкраще, що я міг би зробити, - це перевстановити ярлик до Scintilla SCI_LINE_DELETE, але це видаляє лише один рядок, навіть якщо виділення охоплює кілька рядків.

Відповіді:


93

Ctrl+ Shift+ Lдосягне того ж ефекту.

Ctrl+ Lвидалить рядок, але також збереже її у буфері обміну, замінивши вміст буфера обміну.

Я не впевнений, ви можете зіставити Ctrl + D, щоб зробити те саме чи ні. Я не дуже заплутався з відображенням на клавіатурі за допомогою Notepad ++, оскільки вони дуже схожі на такі у Visual Studio


14
Блискуче! Тепер я просто повинен знайти те, що Ctrl+Lвідображено ... редагувати ага, це відображено SCI_LINECUT. Це було буквально наступною командою Scintilla нижче SCI_LINE_DELETE.
Метт Бал

26
Зверніть увагу, що Ctrl+Lбуде перерізана лінія (скопіюйте її у буфер обміну). Якщо фактично видалити рядок Ctrl+Shift+L, це видалить вибрані рядки, не перезаписуючи буфер обміну.
Росді

1
@ RØŠÐÎ SCI_LINEDELETEце те, що Ctrl+Shift+Lбуло відображено. Я спробував це, але лише видалив (не копіюючи в буфер обміну) перший із вибраних рядків, подібний до ОП. Я щось пропускаю?
jinglesthula

4
Чому цього немає в менюEdit > Line Operations
aliopi

20

Мені довелося скласти карту Ctrl+ Dдо обох SCI_LINEDELETE і SCI_LINECUTдля того, щоб вона поводилася як Eclipse. Сподіваюся, це корисно.

Вам також потрібно відключити чи повторно зв’язати, SCI_SELECTIONDUPLICATEщоб не було конфлікту на Ctrl+ D.
Щоб відключити ярлик, виділіть його, натисніть кнопку ModifyУстановити список DropDownList None, клацніть Applyспочатку, а потім Okay.


1
Як прийти потрібно було обом?
Джонатан Бенн

1
Коли я зіставляю один і той же ярлик обох тих, що трапляються, це переходить від видалення лише першого рядка вибраних рядків до видалення лише рядка, на якому був курсор. (Я використовував Ctrl + Shift + D, тому мені не довелося турбуватися про прив'язку дублікатів вибору.)
jinglesthula

14

Макрос тут хороший вибір. Хоча макрос, який я придумав, трохи відстає (ви можете бачити, що може бути чверть секунди затримки між хітом CTRL-D і рядками, видаленими у великих виділеннях), він працює чудово як для вибору одного рядка, так і для вибору декількох рядків. хитрі справи.

Отже, мій макрос:

CTRL + J - якщо вибрано кілька рядків, вони об'єднуються в одну лінію
HOME - звичайну кнопку HOME. Приводить курсор до початку рядка (або початку об'єднаного рядка)
SHIFT + END - вибирає рядок до кінця, починаючи з позиції курсора
CTRL + SHIFT + L - видаляє весь рядок

Цей набір дій охоплює всі можливі сценарії видалення рядків, з якими я стикався до цих пір під час великого використання блокнота ++.


Я знаю, що я запізнююсь на кілька років, але хіба цей макрос не працює так само добре, як тільки DELETE замість CTRL + SHIFT + L як остання команда? Якщо я вас правильно зрозумів, ви вже позначили весь текст, який хочете видалити, першими трьома командами.
Bjarte Aune Olsen

9

У Блокноті ++ є ярлик для видалення рядка: Ctrl+ Shift+ L..але це видалить лише один рядок.

Навіть якщо вибрано кілька рядків, він видалить рядок лише там, де курсор перебуває в спокої, а не виділеними лініями.

Отже, найпростіший спосіб видалити ряд вибраних рядків, вам потрібно записати макрос за допомогою цих комбінацій клавіш швидкого доступу:

Ctrl+J

слідом за ним

Ctrl+ Shift+L

Це спочатку JOINвибрані рядки, а потім DELETEі всю лінію.

Це краще, ніж використовувати комбінацію CUTта DELETEпідхід, як згадувалося вище (що я намагався), оскільки в деяких випадках він також видалить не вибрані рядки.


4

Як не-макро альтернатива відповіді @Jan Domozilov, я дотримувався цих кроків (використовуючи Notepad ++ v6.5.1 (UNICODE)):

  1. У меню Налаштування виберіть Shortcut Mapper.
  2. На вкладці Головне меню встановіть Join Lines(рядок 26) на Ctrl+Alt+D.
  3. Перейдіть на вкладку Команди Сцинтилли.
  4. Встановіть SCI_LINEDELETE(рядок 90) на Ctrl+D.
  5. Закрити вікно.

Це дозволяє виконати бажану поведінку з невеликою модифікацією. Ви вибираєте текст, запускаєте команду Join Lines Ctrl+Alt+D, відпускаєте лише Altключ і Dзнову натискаєте, щоб видалити текст.


0

Ще один простіший спосіб - скористатися backspaceкнопкою після вибору, це замінить обраний рядок на зворотній простір.


-1

Ви можете використовувати CTRL + DELETE, щоб видалити весь вміст рядка. Тоді все, що потрібно зробити, - це знову використовувати DELETE для видалення каналу рядка. Якщо цього вам недостатньо, ви можете створити макрос для виконання обох дій.

Оскільки, здається, перестали працювати в останній версії, я рекомендую вам використовувати підхід Macro для всієї проблеми. Перейдіть до Макросу, "Почніть запис", потім натисніть "Додому", "Зсув" + "КІНЦЕ", "ВИДАЛИТИ", "ВИДАЛИТИ", потім перейдіть до Макроса і зупиніть свій Макрос. Після цього перейдіть до Зберегти поточний записаний макрос "і виберіть ім'я та ярлик (наприклад, CTRL + DEL). Це відновлює ярлик для рядка видалення.


Ctrl+Deleteне видаляє рядки в «Блокноті ++» для мене (я не перезаписав жодної клавіші, окрім Ctrl+D).
Метт Бал

Яку версію Notepad ++ ви використовуєте? Він працює над Notepad ++ 5.8.2 під Win7
private_meta

5.8.7 (остання версія) на Win7 x64. Ви мали на увазі Ctrl+Backspace? (теж не працює для мене)
Метт Бал

Ах, я тільки тестував його з 5.8.7, і він не працював, дозвольте побачити
private_meta

Я оновив свою відповідь
private_meta

-1

CTRL + SHIFT + DELDETE для мене чудово працює для видалення цілого одного рядка.


2
ОП хоче видалити всі рядки, які є частиною поточно вибраного тексту . Ваш ярлик видаляє лише перший рядок вибору.
nixda
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.