Выделение нескольких слов не по порядку: все способы на клавиатуре

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

Проблема усложняется тем, что большинство текстовых редакторов и операционных систем не афишируют такие возможности. Например, в Microsoft Word или Google Docs функция выделения несмежных областей спрятана за комбинацией клавиш, а в терминале Linux для этого придётся использовать совсем другие подходы. Эта статья охватывает все актуальные способы — от универсальных горячих клавиш до нишевых методов для программистов и дизайнеров.

Особое внимание уделено проблемам совместимости: почему некоторые комбинации не работают в браузерах, как обойти ограничения в macOS и что делать, если выделение сбрасывается при прокрутке. Также разобраны уникальные случаи, когда стандартные методы бесполезны — например, выделение в защищённых PDF или терминальных редакторах вроде Vim.

1. Универсальный способ: клавиша Ctrl + мышь (Windows/Linux)

Самый распространённый метод, работающий в большинстве текстовых редакторов и браузеров. Алгоритм прост:

  1. Выделите первый фрагмент текста стандартным способом (зажмите левую кнопку мыши и проведите курсором).
  2. Удерживая Ctrl (или Cmd на Mac), кликните левой кнопкой мыши на начале второго фрагмента и протяните выделение до конца.
  3. Повторите шаг 2 для всех необходимых фрагментов.

Этот способ поддерживается в:

  • 📄 Microsoft Word, Excel, PowerPoint (начиная с версии 2010)
  • 🌐 Браузерах: Chrome, Firefox, Edge (кроме полей ввода)
  • 📝 Notepad++, Sublime Text, VS Code (с нюансами)
  • 📊 Google Docs/Sheets (только в десктопной версии)

Ограничения метода:

  • ❌ Не работает в полях ввода на веб-страницах (например, в формах комментариев).
  • ❌ В LibreOffice выделение сбрасывается при прокрутке документа.
  • ❌ В терминале Linux (gnome-terminal, konsole) требуется предварительно включить режим "Блочное выделение" (Ctrl + Shift + B).
Почему в браузерах не работает выделение в полях ввода?

Это ограничение безопасности HTML5. Поля <input> и <textarea> не поддерживают несмежное выделение из-за риска конфликтов с JavaScript-обработчиками событий.

2. Клавиатурный метод: Shift + F8 (Windows) и его аналоги

Малоизвестная функция расширенного выделения, доступная в Windows начиная с версии 7. Она позволяет добавлять фрагменты к существующему выделению без мыши:

  1. Выделите первый фрагмент текста (например, с помощью Shift + ←/→).
  2. Нажмите Shift + F8 — курсор останется на месте, но режим выделения активируется.
  3. Используйте клавиши со стрелками (, , , ), чтобы расширить выделение на новые фрагменты.
  4. Для добавления несмежного участка: переместите курсор стрелками в нужное место, зажмите Shift и выделите новый фрагмент.

Альтернативные комбинации для других ОС:

Операционная система Комбинация клавиш Применение
Windows Shift + F8 Любые текстовые поля, кроме терминала
macOS Option + Command + Shift + ←/→ Только в TextEdit и Pages
Linux (GNOME) Shift + F8 (требует настройки) Работает в Gedit и Pluma
Linux (KDE) Ctrl + Shift + F8 Только в Kate и KWrite

Убедитесь, что режим F Lock включён (на ноутбуках может требовать Fn)|Проверьте, что в редакторе не активен режим "Перезаписи" (Insert)|Отключите макросы или расширения, перехватывающие клавиши (например, AutoHotkey)

-->

⚠️ Внимание: В Windows 11 комбинация Shift + F8 может конфликтовать с функцией "Быстрое выделение" в некоторых приложениях (например, в Adobe Acrobat Reader). В этом случае используйте альтернативный метод с Ctrl + мышь.

3. Режим "Блочное выделение" в терминале и коде

Для программистов и администраторов, работающих с Linux-терминалом или редакторами кода, стандартные методы часто не подходят. Здесь на помощь приходит блочное выделение (rectangular selection), которое позволяет выделять вертикальные фрагменты или несмежные строки.

Инструкции для популярных инструментов:

  • 🐧 Терминал Linux (gnome-terminal, konsole):
    1. Нажмите Ctrl + Shift + B для активации блочного режима.
    2. Удерживая Shift, используйте клавиши со стрелками для выделения прямоугольной области.
    3. Для добавления несмежных блоков: отпустите Shift, переместите курсор и повторите выделение.
  • 💻 Vim:
    :set virtualedit=block
    

    Ctrl + V → перемещайте курсор стрелками → выделите блок

  • 💻 VS Code:
    1. Зажмите Alt + Shift и кликайте мышью в начале/конце каждого фрагмента.
    2. Или используйте Ctrl + Alt + ↑/↓ для добавления курсора в нескольких строках.
  • ⚠️ Внимание: В PuTTY (Windows-клиент для SSH) блочное выделение работает только при включённой опции "Rectangular selection mode" в настройках терминала (Window → Selection).

    📊 Какой терминал вы используете чаще?
    Встроенный в VS Code
    Windows Terminal
    iTerm2 (macOS)
    GNOME Terminal
    Другой

    4. Специфика macOS: Command + клики и жесты

    В экосистеме Apple выделение несмежных фрагментов реализовано иначе, чем в Windows. Основные способы:

    1. Клавиша Command + мышь:
      1. Выделите первый фрагмент.
      2. Удерживая Command, кликните на втором фрагменте и протяните выделение.

      Работает в TextEdit, Pages, Numbers, но не в Terminal.

    2. Жесты на трекпаде:
      1. Выделите текст стандартным жестом (проводя тремя пальцами).
      2. Коснитесь трекпада четырьмя пальцами, чтобы добавить новый фрагмент.

      Требует включения опции "Трекпад → Указатель и клики → Вторичный клик" в настройках.

    3. Клавиатурный режим (Option + Command + Shift):

      Аналог Shift + F8 для Windows, но поддерживается только в родных приложениях Apple.

Ограничения macOS:

  • ❌ В Safari несмежное выделение работает только в режиме редактирования (⌘ + E).
  • ❌ В Terminal для блочного выделения требуется установить iTerm2 и включить "Semantic History".
  • ❌ Жесты не работают в виртуальных машинах (Parallels, VMware Fusion).

5. Расширения браузера для несмежного выделения

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

Расширение Браузер Функции Ограничения
Copyfish Chrome, Edge Выделение OCR-текста с изображений + несмежные фрагменты Не работает на страницах с Content-Security-Policy
MultiCopy Firefox, Chrome Сохранение нескольких выделений в буфер Требует прав на доступ к данным на всех сайтах
Select Like a Boss Chrome Горячие клавиши для выделения (Alt + клик) Конфликтует с LastPass и 1Password

Как установить и использовать:

  1. Перейдите в магазин расширений вашего браузера (например, Chrome Web Store).
  2. Найдите одно из расширений выше и установите его.
  3. Настройте горячие клавиши в параметрах расширения (обычно Alt + клик или Ctrl + Alt + выделение).
  4. На веб-странице удерживайте заданную комбинацию и выделяйте фрагменты мышью.

⚠️ Внимание: Расширения для выделения могут конфликтовать с менеджерами паролей (например, Bitwarden или KeePassXC). Перед установкой проверьте список разрешений — некоторые инструменты запрашивают доступ к "данным на всех сайтах", что небезопасно.

6. Продвинутые методы: скрипты и Autohotkey

Если вам нужно автоматизировать выделение несмежных фрагментов (например, для обработки больших объёмов текста), можно воспользоваться скриптами. Ниже приведены готовые решения для разных задач.

Скрипт для AutoHotkey (Windows):

^!n::  ; Ctrl + Alt + N - начать несмежное выделение

Send {Shift down}

KeyWait, LButton ; Ждём клика мыши

Send {Shift up}

return

^!m:: ; Ctrl + Alt + M - добавить фрагмент к выделению

Send {Ctrl down}{LButton}{Ctrl up}

return

Этот скрипт позволяет:

  • Начать выделение с Ctrl + Alt + N.
  • Добавлять новые фрагменты с Ctrl + Alt + M.

Скрипт для AppleScript (macOS):

tell application "System Events"

keystroke "a" using {command down, shift down} -- Выделить всё

delay 0.5

keystroke "c" using {command down} -- Скопировать

end tell

Для работы с несмежными фрагментами в macOS потребуется доработать скрипт с учётом координат кликов (используйте click at {x, y}).

Bash-скрипт для терминала (Linux):

#!/bin/bash

Сохраняет выделенные фрагменты в отдельные файлы

xclip -o -selection primary > fragment1.txt

xclip -o -selection secondary > fragment2.txt

Этот скрипт использует утилиту xclip для работы с буферами обмена primary и secondary (установите её через sudo apt install xclip).

Как отладить скрипт AutoHotkey?

Используйте #InstallKeybdHook в начале скрипта и запускайте его с правами администратора. Для вывода отладочной информации добавьте строку FileAppend, %A_ThisHotkey%`n, debug.log.

7. Особенности выделения в специфичных приложениях

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

Adobe Photoshop (выделение текста в слоях):

  • Активируйте инструмент Текст (T).
  • Удерживая Ctrl (Cmd), кликайте на текстовых слоях в панели слоёв, чтобы добавить их к выделению.
  • Для копирования текста из нескольких слоёв используйте Ctrl + C после выделения.

AutoCAD (выделение объектов):

  • Введите команду SELECT.
  • Используйте опцию Add/Remove (A/R) для добавления или исключения объектов из выделения.
  • Для выделения по фильтру введите 'FENCE и проведите линию через нужные объекты.

Защищённые PDF (Adobe Acrobat Reader):

  • Если документ разрешает копирование, используйте инструмент Выделение текста (T).
  • Удерживайте Ctrl для добавления несмежных фрагментов.
  • Если копирование заблокировано, воспользуйтесь OCR-инструментами (ABBYY FineReader или онлайн-сервисами).

⚠️ Внимание: В Adobe Illustrator выделение несмежных текстовых блоков возможно только через панель Слои (F7). Кликайте по названиям текстовых объектов с зажатым Ctrl (Cmd).

8. Альтернативные подходы: буфер обмена и регулярные выражения

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

Метод 1: Поэтапное копирование в буфер

  1. Выделите и скопируйте (Ctrl + C) первый фрагмент.
  2. Вставьте его в промежуточный документ (Ctrl + V).
  3. Повторите шаги 1–2 для всех фрагментов.
  4. В конце скопируйте весь текст из промежуточного документа.

Метод 2: Регулярные выражения (для программистов)

Если текст имеет повторяющуюся структуру (например, лог-файлы или CSV), используйте regex для извлечения нужных фрагментов:

  • В VS Code: Ctrl + F → Включить regex (Alt + R) → Ввести шаблон.
  • В Notepad++: Поиск → Найти → Режим "Регулярное выражение".
  • Пример шаблона для выделения всех email-адресов: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b.

Метод 3: Макросы в Microsoft Office

Для автоматизации выделения в Word или Excel запишите макрос:

  1. Перейдите в Вид → Макросы → Записать макрос.
  2. Выполните ручное выделение фрагментов с помощью Ctrl + клик.
  3. Остановите запись и сохраните макрос для повторного использования.

FAQ: Частые вопросы

Можно ли выделить несмежные фрагменты на смартфоне?

На Android и iOS стандартные клавиатуры (например, Gboard или встроенная в iPhone) не поддерживают несмежное выделение. Альтернативы:

  • Используйте приложения вроде Microsoft Word или Google Docs в десктопной версии сайта (через режим "Для компьютера" в браузере).
  • Установите клавиатуры с поддержкой мыши (например, Hacker's Keyboard для Android).
  • Скопируйте фрагменты по очереди в буфер обмена, затем объедините их в заметках.
Почему в Excel не работает Ctrl + клик для выделения ячеек?

В Excel комбинация Ctrl + клик по умолчанию используется для добавления/удаления ячеек из выделения, но не для текста внутри них. Чтобы выделить несмежный текст в ячейках:

  1. Дважды кликните на ячейке, чтобы перейти в режим редактирования.
  2. Используйте Ctrl + Shift + F8 (режим "Добавление к выделению").
  3. Выделите фрагменты текста внутри ячейки с помощью клавиш со стрелками.

Для выделения несмежных ячеек (не текста!) просто удерживайте Ctrl и кликайте по ячейкам.

Как выделить несколько строк в Vim не подряд?

В Vim для этого используется визуальный блочный режим:

:set virtualedit=block

Ctrl + V -- перейти в блочный режим

j/k -- перемещаться по строкам

l/h -- расширять выделение по символам

Для добавления несмежных блоков:

  1. Выделите первый блок (Ctrl + V → стрелки).
  2. Нажмите :normal! (двоеточие вводится в командной строке).
  3. Переместите курсор на новую позицию и повторите выделение.
Есть ли горячие клавиши для несмежного выделения в Linux-терминале?

Да, но они зависят от используемого терминала:

  • GNOME Terminal: Shift + Ctrl + B (блочный режим) → Shift + стрелки.
  • Konsole (KDE): Ctrl + Shift + B → выделите область мышью.
  • XTerm: Удерживайте Shift и кликайте мышью в начале/конце каждого фрагмента.

Для копирования выделенного в буфер используйте Ctrl + Shift + C.

Можно ли сохранить несколько выделений в буфер обмена?

Да, для этого используйте менеджеры буфера обмена:

  • Windows: Ditto, ClipClip (поддерживают историю и теги для фрагментов).
  • macOS: Paste, Alfred (с плагином Clipboard History).
  • Linux: CopyQ, GPaste (интегрируются с xclip).
  • Кросс-платформенные: ClipboardFusion, 1Clipboard.

Пример работы в CopyQ:

  1. Выделите фрагмент и скопируйте (Ctrl + C).
  2. Повторите для всех фрагментов — они сохранятся в истории.
  3. Откройте CopyQ (Ctrl + Shift + V) и выберите нужные фрагменты для объединения.