Я думаю, что это позволило бы функции визуального выбора 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, и, честно говоря, я бы хотел избежать попыток выучить еще один язык, так что, надеюсь, я не буду вынужден строить это как плагин.
:help? :help visual-modeимеет всю необходимую информацию о визуальном режиме, в том числе o.
Oделает заглавная буква О, но я запомню o. Второе, на что вы ссылаетесь, это, вероятно, использовать :helpбольше. И я использовал это больше, чем когда я начал.