Есть ли способ не выделять пробелы после слова при двойном щелчке?

Вопрос или проблема

В Windows, по-видимому, стандартное поведение при двойном щелчке по слову заключается в том, чтобы выделить это слово и любые пробелы после него (пробелы или табуляции). Вы можете увидеть это поведение во всех программах, так что я предполагаю, что это не настройка для отдельной программы. Это может быть распространено и в других операционных системах, но я не знаю этого на личном опыте.

Может ли это быть настроено в ОС или это то, с чем мне просто нужно смириться?

Насколько я знаю, это стандартное поведение.

Что я часто делаю, так это двойной щелчок по слову, а затем удерживаю Shift и нажимаю левую стрелку (если приложение позволяет). Я нашел это самый быстрый метод, чем пытаться точно выделить слово с помощью мыши, что зачастую немного непросто и неудобно.

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

Быстрый способ выделить слово без лишнего пробела

  1. Дважды щелкните по слову.
  2. Не отпуская кнопки мыши после второго щелчка, немного переместите мышь влево.
  3. Отпустите.

Тестировалось на Windows 10 (сборка 17758).

демонстрационная анимация

Самый простой метод для меня: двойной щелчок сначала выделяет слово с последующим пробелом, затем удерживаю Shift и делаю один щелчок по тому же слову (или щелкаю по любому другому слову, чтобы расширить выделение). Это выделяет слово(а) без пробела.

Это поведение имеет некоторый смысл для текстовых редакторов; когда вы хотите удалить, вырезать или переместить слово, вы часто хотите включить пробел после слова; по крайней мере, это обоснование этого. Но это совершенно не имеет смысла для контента только для чтения, особенно в браузерах. Так как системного решения нет, я сосредоточусь на браузерах.


Firefox

Это легко исправить в Firefox: у него есть настройка layout.word_select.eat_space_to_next_word. Перейдите к about:config, найдите эту настройку и установите ее в false.


Chrome / другие браузеры на основе Chromium / приложения Electron

К сожалению, нет простого решения для Chrome и других браузеров на основе Chromium. Упомянутый трюк в трех предыдущих ответах (двойной щелчок, но на втором щелчке немного переместите курсор) обычно работает в браузерах Chromium. Моя проблема с этим заключалась в следующем:

  1. вам нужно делать это каждый раз, если вы никогда не хотите лишнего пробела
  2. Это работает с щелчками мыши или щелчками кнопок сенсорной панели, но не с “тапами” на сенсорной панели, так как двойной тап и перемещение по сенсорной панели имитируют клик и перетаскивание.

Чтобы помочь с пунктом 1, я написал следующий обходной путь на AutoHotkey:

#If WinActive("ahk_class Chrome_WidgetWin_1")
  ~LButton::
    if (A_TimeSincePriorHotkey < 400) and (A_TimeSincePriorHotkey <> -1)
      MouseMove, 1, 0, 0, R
    return
#If

Если вы делаете двойной щелчок (т.е. в течение 400 мс) в браузере на основе Chromium, курсор перемещается на один пиксель перед тем, как вы отпустите кнопку мыши, так что выделяется только слово.

Это работает нормально, если вы используете мышь, или если вы на самом деле дважды нажимаете на сенсорной панели (или кнопках, если они есть). Но это не работает хорошо, если вы дважды касается сенсорной панели. Предположительно, это потому, что когда вы впервые нажимаете на сенсорной панели, он немедленно не отправляет клик в систему, так как он еще не знает, хотите ли вы на самом деле кликнуть или сделать что-то другое, например, двойной тап и перемещение, что означает клик и перетаскивание. Так что если вы на самом деле делаете двойной тап, он отправляет оба клика в конце второго тапа как одно событие, так что AutoHotkey не может вмешаться. (Тем не менее, это работает, если вы двигаете медленно, чтобы первый тап был отправлен как клик сам по себе, но быстро, чтобы второй тап/клик все еще считался двойным кликом; но это сложно сделать правильно.)

Поэтому я изменил это следующим образом:

#If WinActive("ahk_class Chrome_WidgetWin_1")
  ~LButton::
    if (A_TimeSincePriorHotkey < 400) and (A_TimeSincePriorHotkey <> -1)
    {
      MouseMove, 3, 0, 0, R
      MouseClick
      MouseClickDrag, Left, 0, 0, -1, 0, 0, R
    }
    return
#If

Таким образом, я отменяю первый двойной щелчок, поскольку не могу вмешаться в него, и повторяю двойной щелчок с упомянутым трюком. Первое перемещение мыши необходимо, чтобы предотвратить интерпретацию этих новых щелчков как тройных/четверных, что выделяло бы весь параграф. Оказывается, что необходимо перемещение минимум на 3 пикселя. Так что старайтесь не щелкать на правом крае слова!

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

Этот обходной путь работает во всех браузерах на основе Chromium, а также в приложениях Electron, которые наследуют такое же выделение текста из Chromium (я тестировал на Whatsapp), так как у них у всех есть ahk_class Chrome_WidgetWin_1. Если вы хотите, чтобы это работало только в браузере или конкретном приложении, вы можете сделать это, изменив условие if, например, #If WinActive("ahk_exe vivaldi.exe") в моем случае, так как я использую Vivaldi.


AutoHotkey достаточно гибкий, и вы можете использовать его для решения на уровне системы, которое работает вне браузеров и приложений Electron. Например, каждый раз, когда вы дважды щелкаете в любом месте (определяется тем же методом, что и выше), AutoHotkey может проверить, включен ли лишний пробел в выделение, и отправить Shift + Левая стрелка, если это так. Я не стал заморачиваться, так как браузеры были тем местом, где это поведение меня больше всего раздражало.

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

Однократный щелчок после последнего символа слова, затем нажмите и удерживайте CTRL + SHIFT + ЛЕВАЯ СТРЕЛКА (в таком порядке).

На моем ПК с Windows 10 я назначил макрос на свою среднюю кнопку мыши, чтобы убрать последний символ из выделения и затем скопировать его в буфер обмена.

Макрос из MS Mouse & Keyboard Center выглядит следующим образом:
макрос копирования без лишнего пробела

Что странно в этой “функции”, так это то, что если вы применяете атрибут к выделенному тексту (жирный, курсив, подчеркивание, шрифт и т.д.), он применяется только к тексту и не к следующему пробелу. С другой стороны, если вы удаляете слово, пробел тоже исчезает.

С третьей стороны, если вы вручную выделяете слово и следующий пробел (т.е. не дважды щелкая), а затем применяете атрибут, он также будет применяться к следующему пробелу.

Другими словами, двойной щелчок и ручное выделение выглядят как одно и то же выделение (слово + следующий пробел), но поведение различается.

Я могу понять логику в этом, но это все равно меня раздражает. В течение многих лет я неоправданно убирал следующий пробел из выделений при двойном щелчке по слову (Shift + левая стрелка) перед применением атрибутов шрифта. Теперь я пытаюсь приучить себя перестать это делать, так как это не имеет значения, но старые привычки умирают тяжело.

Конкретно в Microsoft Word вы можете настроить это поведение:

Сначала перейдите в Файл > Параметры > Дополнительно > Вырезать, копировать и вставлять.

Затем либо:

  • Отключите “Умный вырезание и вставка”
  • Или в “Умное вырезание и вставка” > Настройки отключите “Автоматически настраивать интервалы между предложениями и словами”

Ответ или решение

Как избежать выбора пробела после слова при двойном щелчке мышью в Windows

Введение

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

Почему это происходит?

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

Способы обойти проблему

1. Использование клавиатуры

Одним из самых простых и быстрых способов избежать выбора пробела является использование комбинации клавиш:

  • Двойной щелчок по слову.
  • Удерживание Shift и нажатие клавиши ← (влево) для исключения пробела из выделения.

Этот метод требует некоторой практики, но он быстро становится привычным.

2. Неполное щелчок при выделении

Существует метод, который позволяет выбрать только слово без пробелов:

  • После двойного щелчка не отпускайте кнопку мыши и переместите курсор на чуть-чуть влево, а затем отпустите кнопку. Это также поможет избежать выделения лишнего пробела.

3. Альтернативные методы выделения с помощью мыши

Если вы предпочитаете использовать мышь:

  • Двойной щелчок по слову, а затем, не отпуская кнопку, потяните указатель мыши немного вверх или вниз. Это часто помогает выделить именно слово без пробела.

4. Использование настроек браузеров

В браузере Firefox имеется одноимённая настройка, которая может помочь решить эту проблему:

  • Зайдите в about:config, найдите настройку layout.word_select.eat_space_to_next_word и установите её значение на false. Это позволит избежать выделения пробелов при двойном щелчке.

К сожалению, в браузерах на базе Chromium (таких как Google Chrome) такая настройка отсутствует. Однако, как уже упоминалось, вы можете использовать специальные скрипты AutoHotkey для изменения поведения выделения.

Скрипты AutoHotkey для автоматизации

С помощью AutoHotkey вы можете написать скрипт, который будет автоматически удалять пробел из выделения после двойного щелчка:

#If WinActive("ahk_class Chrome_WidgetWin_1")
  ~LButton::
    if (A_TimeSincePriorHotkey < 400) and (A_TimeSincePriorHotkey != -1)
      MouseMove, 1, 0, 0, R
    return
#If

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...