Я думаю, что это позволило бы функции визуального выбора 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, и, честно говоря, я бы хотел избежать попыток выучить еще один язык, так что, надеюсь, я не буду вынужден строить это как плагин.