пятница, 3 сентября 2010 г.

[советы по настройке] Исправляем выделение текста в Notepad++ клавишами Shift+Home и Shift+End

В «продвинутом» редакторе Notepad++ имеется проблема с выделением текста клавишами Shift+Home и Shift+End в режиме переноса строк. Дело в том, что эти сочетания по умолчанию выделяют текст до начала/конца физической строки в файле (т.е. до символов перевода строки), в то время как во всех остальных редакторах они выделяют текст до начала/конца экранной строки.  (Что есть правильно, поскольку всегда и везде Home и End перемещают курсор именно к границе экранной, а не физической строки.)

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

Итак, чтобы исправить работу этих команд, делаем следующее. Открываем в меню «Опции» → «Горячие клавиши» → «Scintilla Commands» и прокручиваем там список вот до этого места:

Абракадабра в левом столбце — это внутренние названия команд редактора. Нас интересуют следующие:
  • SCI_VCHOMEWRAP — перемещение курсора к началу экранной строки.
  • SCI_VCHOMEWRAPEXTEND — выделение текста до начала экранной строки.
  • SCI_LINEENDWRAP — перемещение курсора к концу экранной строки.
  • SCI_LINEENDWRAPEXTEND — выделение текста до конца экранной строки.
Аналогичные названия команд, не содержащие в себе WRAP, работают с физической строкой вместо экранной.

Свяжем сочетание Shift+Home с командой SCI_VCHOMEWRAPEXTEND. Для этого дважды щелкаем по строке с именем команды и в открывшемся окне задаём нужное сочетание: из списка выбираем Home, ставим флажок напротив Shift, нажимаем кнопку Add и затем Ok.

Теперь сочетание клавиш связано с новой командой, но еще необходимо удалить это сочетание у предыдущей команды. Дважды щелкнув по строке SCI_VCHOMEEXTEND, открываем окно привязки клавиш. Чтобы убрать привязку к Shift+Home, выбираем в выпадающем списке None и нажимаем Apply и затем Ok. (Почему нельзя просто нажать Remove для удаления привязки? Потому что «The Remove button will remove the selected shortcut from the list (you can remove all but the last). To remove a shortcut if more than one is present, use the Remove button. To remove a shortcut if it is the only one, set it to 'None' and Apply». Грёбаный пиздец. Не спрашивайте меня. Примите это как есть.)
Ну или вы можете вместо None задать другое сочетание, если выделение до начала физической строки вам может иногда понадобиться. Только следите, чтобы выбранное сочетание не конфликтовало с какой-нибудь другой командой: предупреждать о таких конфликтах Notepad++ не умеет, просто тупо что-нибудь не будет работать.



Аналогично вышенаписанному, связываем Shift+End с командой SCI_LINEENDWRAPEXTEND и убираем привязку у команды SCI_LINEENDEXTEND. После этого советую перезапустить редактор, поскольку окончательно настройки в файл конфигурации он сохраняет только при закрытии.

5 комментариев

Анонимный

Пока вы не сказали про это, я и не замечал что Shift+End / Shift+Home выделяют строку до физического конца/начала.
Мне, как программисту, это очень удобно, на столько удобно, что я даже не замечал этого удобства пока не прочитал эту статью.

Такая реализация хоткеев не проблема, а особенность данного продукта.
Удачи!

Анонимный

Спасибо большое!!

Анонимный

Notepad++ создавался как редактор исходных кодов программ, поэтому такие значения по умолчанию для сочетаний клавиш оправданы и более того — правильны.
По поводу "луча поноса" автору прекрасного _бесплатного_ продукта с открытым исходным кодом можно сказать только одно: Вам что-то не нравится? — Не пользуйтесь.

sdc

Узнаю бессмертный стиль ведения дискуссии завсегдатаев LOR-а и opennet-а, а потому отвечу симметричным образом.
На своём компьютере я сам решаю, что правильно, а что нет. Чем пользоваться, а чем нет. Также мне никто не может запретить высказывать мнение об авторах хоть бесплатных, хоть платных продуктов, покуда мы еще живём в свободной стране.
Без ваших ценных советов, аноним.

Анонимный

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

А если пользоваться программой как обычным текстовым редактором, то это очень неудобная особенность. Почёт и уважение автору, что не поленился описать, как это изменить.

А названия shortcuts и правда зубодробительные, даже с чёткой инструкцией не так просто сделать. Я не знаю как там насчёт лучей поноса разработчикам (в конце концов они её бесплатно распространяют), но программа удивительна своей гибкостью настроек и продуманностью в одних моментах и полной деревянностью и кондовостью в других.

Отправить комментарий