Что такое режим выбора и когда уместно его использовать?

37

Я случайно нажал ghв обычном режиме и начал выбор, поэтому я посмотрел документ и нашел :h Select-mode.

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

  • Ввод печатного символа <CR>или <BS>удалит выделение, запустит режим вставки и заменит выделение вводом.
  • hjkl и другие движения в обычном или визуальном режиме не расширят выделение, если они не имеют префикса <Shift>
  • <CTRL-O>и <CTRL-G>переключится в визуальный режим.
  • Документ также говорит следующее, что, если я правильно понимаю, означает, что можно сделать выбор, который затем обрабатывается символически:

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

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

Кроме того, все выполненные мной поиски дают результаты о выполнении выбора в визуальном режиме, но не относятся к режиму выбора.

Итак, мои вопросы:

  • Почему был создан режим выбора?
  • В чем его преимущество по сравнению с визуальным режимом?
  • Что такое случай использования, когда более интересно использовать режим выбора?

MetaNote Я понятия не имею, какой тег имеет отношение к этому вопросу, не стесняйтесь пометить при необходимости.

statox
источник
Для меня это звучит как то, что вы ожидаете от большинства графических редакторов. (Выбор строки не означает, что она будет переходить на новую строку при вставке, клавиши Shift + растягивают ее, ввод текста заменяет выделение, все, что я ожидаю от, скажем, блокнота).
Муру
@muru: Я согласен, что это напоминает редактор такого типа, но означает ли это, что этот режим был бы реализован просто для того, чтобы порадовать некоторых пользователей, которые хотели бы использовать Vim в качестве плохого текстового редактора? Это кажется довольно странным для меня на самом деле.
statox
на самом деле, это свойство вставки полезно в некоторых случаях. Я уверен, что кто-то разместил здесь вопрос о вставке. А что касается перезаписи, это сохраняет нажатие клавиши (вам не нужно нажимать c), поэтому в зависимости от того, что вы хотите сделать, режим выбора может быть полезен. Жаль, я продолжаю забывать об этом.
Муру
Я постараюсь найти этот вопрос тогда. Для перезаписи я не чувствую, что cэто сохраненная нажатие клавиши , потому что выбор не так удобно , как в визуальном режиме (так как вы не можете использовать eили iwнапрямую).
statox
1
Вы правы: когда 'selectmode'содержит mouseи 'mouse'содержит флаг для текущего режима, выбор с помощью мыши запускает режим выбора (в соответствии с документом).
statox

Ответы:

23

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

В то же время, есть mswin.vim, который изменяет множество опций и отображений, чтобы Vim чувствовал себя как обычный редактор.

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

В любом случае, режим выбора важен для плагинов расширения фрагмента и может использоваться для удовольствия и получения прибыли:

nnoremap § *``gn<C-g>
inoremap § <C-o>gn<C-g>
snoremap <expr> . @.
romainl
источник
2
Я думаю, что довольно удивительно портировать Vim на Windows и создать такой режим, чтобы порадовать пользователей: если им нужен «классический» редактор, зачем им тогда использовать Vim? Но, похоже, это единственное объяснение, поэтому ... Кроме того, я не очень понимаю выгоду ваших отображений: насколько я понимаю, они выбирают слово под курсором в режиме выбора, как только вы это сделали, почему это так? полезно?
statox
1
Как только слово выбрано, введите что-то, затем нажмите, §чтобы выбрать следующее вхождение, введите что-то еще, затем нажмите еще §раз, чтобы выбрать следующее вхождение, и так далее. Вы можете нажать, .чтобы повторить последнюю вставку. Это вариант «точечной формулы».
Ромен,
Я до сих пор не понимаю. Каким образом поведение выбора больше похоже на обычные редакторы?
still_dreaming_1
7
@ still_dreaming_1, в обычном редакторе введите fooи выберите его. Вам не нужно нажимать любую клавишу, чтобы заменить то, что было выбрано, не так ли? Вот что эмулирует режим выбора.
romainl
1
@romainl, что это за символ "двойной S", который ты печатаешь? Как вы печатаете этот символ?
Майкл