Вопрос или проблема
Я хочу использовать _
в качестве курсора терминала (konsole/gnome-terminal).
Однако из-за этого использование визуального блочного выделения в Vim становится проблемой, так как Vim не выделяет символ под курсором как часть выделения. (в то время как этот символ является частью самого визуального блочного выделения).
Кто-нибудь знает, как заставить Vim выделять последний символ выделения (символ под курсором) как часть визуального блока выделения?
Vim имеет определенные ограничения в визуальном отображении, особенно в терминале. Даже если это было бы возможно, вам, вероятно, пришлось бы изменить исходный код Vim для этого. Поэтому только некоторые идеи:
- В многострочном блочном выделении конец выделения затемнен только в текущей строке, а не в предыдущих. Поэтому вы все равно должны иметь возможность визуально воспринимать весь блок таким образом. (Единственное исключение: визуальные блоки, extending до конца строк.) Я предполагаю, что реальная проблема заключается в выделениях по символам.
- Вы можете
:set selection=exclusive
, где позиция перед курсором обозначает конец выделения. Это другой парадигма, иногда имеет другое поведение, но вам может это понравиться. - Когда вы включили
:set ruler
, вы увидите текущее положение курсора и размер визуального выделения в числах в правом нижнем углу. Это может быть полезно, чтобы убедиться, что вы выбрали правильную область.
.
Ответ или решение
Чтобы настроить Vim для подсветки последнего символа визуального выделения, особенно когда вы используете символ подчеркивания (_
) в качестве курсора терминала (например, в konsole или gnome-terminal), необходимо учитывать некоторые ограничения и возможные решения. Давайте подробнее рассмотрим несколько подходов к этой задаче.
Проблема
Когда вы используете символ подчеркивания в качестве курсора, это может привести к тому, что Vim не будет выделять символ под курсором в блоке выделения. Этот символ становится практически невидимым, даже если он является частью выборки. Стандартное поведение Vim исключает последний символ выделения, что может затруднить работу при использовании блокового выделения.
Решения
-
Использование
:set selection=exclusive
:- Одним из вариантов является изменение параметра выделения на
exclusive
. Это значит, что выделение будет происходить до позиционного символа курсора, что может быть предпочтительнее в вашем случае. - Для активации этого настроения введите команду:
:set selection=exclusive
- Однако стоит отметить, что поведение выделения изменится, и вам может понадобиться привыкнуть к новому способу работы.
- Одним из вариантов является изменение параметра выделения на
-
Отображение позиции курсора с помощью
:set ruler
:- Подсказкой для контроля выделения является использование параметра
ruler
. Включите его следующей командой::set ruler
- Это позволит вам видеть текущую позицию курсора и размеры визуального выделения в правом нижнем углу окна. Эта информация поможет избежать ошибок в выделении и лучше контролировать процесс редактирования.
- Подсказкой для контроля выделения является использование параметра
-
Выделение пробела на концах строк:
- Если выделение проходит через несколько строк, вы можете помочь себе визуально, так как на предыдущих строках выделение будет видно. Однако это не решает проблему выделения последнего символа в пределах одной строки.
-
Использование плагинов:
- Существуют плагины для Vim, которые могут улучшить визуальное выделение. Например, плагин
vim-visual-multi
добавляет возможность более гибкого выделения текста и может помочь вам с выделением последнего символа. - Установка плагина осуществляется через менеджер плагинов, такой как
vim-plug
:Plug 'mg979/vim-visual-multi'
- Существуют плагины для Vim, которые могут улучшить визуальное выделение. Например, плагин
-
Настройка цветовых схем и фоновых цветов:
- Рассмотрите возможность изменения цветовой схемы вашего Vim или настройку явных фоновых цветов для символа курсора и выделенного текста. Например, вы можете попробовать установить интенсивный цвет для выделения, чтобы выделяемый текст был более заметным, даже если курсор закрывает его.
Заключение
Хотя в Vim отсутствует встроенная функция, позволяющая подсвечивать последний символ визуального выделения при использовании символа подчеркивания в качестве курсора, вышеперечисленные методы могут помочь вам улучшить видимость и управление выделением текста. Применение указанных решений должно значительно облегчить редактирование и повысить вашу продуктивность при работе в Vim.
Если у вас есть дополнительные вопросы или вы хотите более детально рассмотреть конкретный аспект, пожалуйста, дайте знать!