Я думаю, что это позволило бы функции визуального выбора vim превзойти эффективность даже мыши, предоставляя возможность "переключать" текущую конечную точку выбора:
Иллюстрированный (| должен представлять курсор (Vim должен работать с левой стороны от символа, на котором он включен), а [text] представляет выделенный текст, только притвориться, что он занимает нулевую ширину). Фон пространства между [ ] выглядит серым, а символ сразу после | зеленый):
Начать с
Some |text here
Some second line of text
Some more text in the third line
Нажмите v2j ; Обратите внимание, что символ m включен в выделение (теперь он выделен курсором):
Some [text here
Some second line of text
Some |m]ore text in the third line
Пресс 10l:
Some [text here
Some second line of text
Some more text |i]n the third line
Именно в этот момент я могу решить, что хочу начать выбирать из другого места. например, включая "Some" в первой строке.
У меня нет выбора в типичном редакторе /IDE. Мне, вероятно, пришлось бы подвести руку к мышке, обычно слишком больно выделять текст традиционными методами, использование переключения слов через Ctrl и page-up /down несколько помогает, но, несмотря ни на что, я должен передайте один из моих завершающих пунктов выбора, прежде чем я начну выбор.
Поэтому в Vim я хотел бы получить возможность взять мое текущее состояние и довести его до этого, нажав тайну:
Some [|text here
Some second line of text
Some more text i]n the third line
Затем я могу просто нажать ^ или <Home> (оба делают то же самое в этом случае, когда нет пробела), чтобы превратить его в
[|Some text here
Some second line of text
Some more text i]n the third line
Скажем, я снова передумал, я хочу настроить другой конец!
[Some text here
Some second line of text
Some more text |i]n the third line
Хит e:
[Some text here
Some second line of text
Some more text i|n] the third line
Красивая! Теперь я могу делать все, что захочу, с этим выбором.
Так что же это за загадка?
Кроме того, еще более потенциально эффективным будет набор альтернативных привязок для некоторых из наиболее часто используемых команд перемещения к другому ряду клавиш, и они (в визуальном режиме) будут всегда перемещать другой конец выделения. Таким образом, в этой операции выбора визуального режима, если бы клавиши перемещения для другого конца выделения были установлены на "yuio" (вероятно, не лучший выбор, так как нам нужно y но просто потерпите меня), мы могли бы набрать
v2j10l5ye
скорее, чем
v2j10lX^Xe
Эй, ты знаешь что, это даже не так уж много улучшения. Просто дай мне эту особенность X. :)
Идеальные ответы, которые я ищу:
- Эй, посмотрите вверх
:help some_awesome_vim_feature_that_just_does_this - Эй, посмотрите на
https://github.com/awesome_user/vim_plugin_that_does_this - Эй, посмотрите на
:help vimscript_functions_that_allow_mutation_of_visual_selections
Я довольно новичок в этом увлечении Vim, поэтому я очень зеленый, когда дело доходит до Vimscript, и, честно говоря, я бы хотел избежать попыток выучить еще один язык, так что, надеюсь, я не буду вынужден строить это как плагин.
