Не работает отступ NetBeans (Shift + Tab), когда курсор находится внутри линии (без выделения)? - PullRequest
0 голосов
/ 20 января 2020

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

(a) Курсор в начале строки (без выбора)

    |hello world!

(b) Курсор внутри строки (без выбора)

    hell|o world!

В Netbeans, когда я нажимаю Shift + Tab в версии (a), отступ удаляется. Это то, что я ожидаю. Однако, когда я нажимаю Shift + Tab в версии (b), тогда ничего не происходит. Это отличается от редакторов кода, к которым я привык. Я ожидаю, что отступ будет удален, или курсор переместится в начало строки, так что следующая комбинация клавиш Shift + Tab удалит отступ.

Есть ли в Netbeans конфиг, который делает отступ с помощью Shift + Вкладка работает, когда курсор находится внутри строки?

Ответы [ 2 ]

1 голос
/ 21 января 2020

Чтобы сдвинуть линию влево, независимо от положения курсора, вы можете использовать действие редактора «Shift line left». В сопоставлении NetBeans по умолчанию это назначается Alt + Shift + KP_LEFT и Alt + Shift-LEFT

. Просто откройте страницу параметров раскладки клавиатуры и найдите действие "линия смещения"

enter image description here

Это не совсем то, что вы просите, но вы можете попробовать переназначить это действие на «Shift-Tab» и посмотреть, работает ли оно.

1 голос
/ 21 января 2020

TLDR: Кажется, есть ошибка в способе, с помощью которого NetBeans обрабатывает отступы / отступы.

Я ожидаю, что отступ будет удален

Я не см. любую формальную документацию о том, как предполагается, что отступы работают в NetBeans, но он, кажется, перемещает текст справа от курсора влево, при условии, что слева от курсора есть только пробел. Хотя это отличается от того, как работает деиндентирование в других редакторах кода, таких как Intellij IDEA и Eclipse, где вся строка смещена влево, даже если курсор находится внутри текста, это не обязательно неверно.

Если Вы хотите удалить отступы в NetBeans, есть две простые альтернативы: либо поместите курсор в начало строки, либо выделите какой-нибудь текст - что угодно! - в этой строке перед отступом.

Некоторые комментарии в отчете об ошибках NetBeans Ошибка 212353 - Сочетание клавиш Shift + Tab (Удалить вкладку) не работает в редакторе может иметь значение:

Обратите внимание, что эти действия должны быть обратными - я имею в виду, когда вы выбираете блок и нажимаете <TAB> <TAB> <Shift-TAB> <Shift-TAB>, вы всегда должны получать один и тот же текст. То же самое должно быть верно, если вы измените порядок на <Shift-TAB> <Shift-TAB> <TAB> <TAB>, у вас должен получиться тот же текст.

При этом NetBeans не придерживается этого стандарта. Используя ваш второй пример, нажатие <TAB><TAB> работает нормально, но последующее нажатие <SHIFT><TAB> ничего не делает, поэтому невозможно " закончиться тем же текстом ". Это похоже на ошибку (по крайней мере, в Apache NetBeans 11.2). Вы можете подать отчет об ошибке здесь .

Стоит также отметить, что <Shift> + <Tab> фактически определено как таблица ключей для "Удалить вкладку", а не для "отступа".

Есть ли в Netbeans конфиг, который заставляет работать отступы через Shift + Tab, когда курсор находится внутри строки?

Я так не думаю. Все, что вы можете сделать, используя Tools > Options > Keymap, это изменить сочетания клавиш с <Shift> + <Tab> на что-то другое, но это не изменит поведение.

...