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