Как вставить текущую визуальную выборку в командную строку?
При вводе аргумента в команде я знаю, что я могу ввести <C-R><C-W>, чтобы вставить слово под курсором и <C-R><C-A>, чтобы вставить WORD под курсором.
Есть ли способ вставить текущий визуальный выбор?
Спасибо!
Ответ 1
Вы можете использовать содержимое любого регистра в командной строке ex или search с <C-R>, за которым следует имя регистра. Погружая ваш визуальный выбор, он помещается в регистр 0, поэтому <C-R>0 добавит ваш yanked-выбор в текущую командную строку.
Это единственный способ узнать, но я все еще использую его ежедневно.
Ответ 2
Есть несколько способов, чтобы ваш вопрос мог быть истолкован. Самое простое, если вы имеете в виду, что хотите передать выбранный текст в качестве аргумента диапазона для команды ex. Я сомневаюсь, что это ваш вопрос, поскольку это происходит автоматически, если вы набираете: с визуальным выбором, но синтаксис ex для этого
:'<,'>
Во-вторых, я думаю, что ваш вопрос может быть истолкован, так это то, что вы хотите вставить сам визуально выделенный текст в качестве аргумента в команду ex; Я не думаю, что это можно сделать. Если вы прочитали раздел руководства vim 40.2, где описаны аргументы диапазона, единственное, что может позволить команде получить из диапазона Аргумент - это номер первой строки и последней строки (с использованием тегов <line1> и <line2>).
Наконец, если вы хотите запустить выделенный текст в командной строке оболочки, все, что вам нужно сделать, это выбрать его и набрать
:!sh
(Часть '<,'> должна быть вставлена для вас между: и.. Вы можете заменить "sh" на команду, чтобы запустить вашу любимую оболочку).
Ответ 3
Да, регистр * содержит текущий визуальный выбор...
Вы можете ввести <C-R>*, чтобы получить его из режима вставки или команды...
Однако это не очень удобно использовать в командной строке, так как вы не можете избежать '<,'> при входе в командный режим из визуального режима