Подтвердить что ты не робот

Как вставить текущую визуальную выборку в командную строку?

При вводе аргумента в команде я знаю, что я могу ввести <C-R><C-W>, чтобы вставить слово под курсором и <C-R><C-A>, чтобы вставить WORD под курсором.

Есть ли способ вставить текущий визуальный выбор?

Спасибо!

4b9b3361

Ответ 1

Вы можете использовать содержимое любого регистра в командной строке ex или search с <C-R>, за которым следует имя регистра. Погружая ваш визуальный выбор, он помещается в регистр 0, поэтому <C-R>0 добавит ваш yanked-выбор в текущую командную строку.

Это единственный способ узнать, но я все еще использую его ежедневно.

Ответ 2

Есть несколько способов, чтобы ваш вопрос мог быть истолкован. Самое простое, если вы имеете в виду, что хотите передать выбранный текст в качестве аргумента диапазона для команды ex. Я сомневаюсь, что это ваш вопрос, поскольку это происходит автоматически, если вы набираете: с визуальным выбором, но синтаксис ex для этого

:'<,'>

Во-вторых, я думаю, что ваш вопрос может быть истолкован, так это то, что вы хотите вставить сам визуально выделенный текст в качестве аргумента в команду ex; Я не думаю, что это можно сделать. Если вы прочитали раздел руководства vim 40.2, где описаны аргументы диапазона, единственное, что может позволить команде получить из диапазона Аргумент - это номер первой строки и последней строки (с использованием тегов <line1> и <line2>).

Наконец, если вы хотите запустить выделенный текст в командной строке оболочки, все, что вам нужно сделать, это выбрать его и набрать

:!sh

(Часть '<,'> должна быть вставлена ​​для вас между: и.. Вы можете заменить "sh" на команду, чтобы запустить вашу любимую оболочку).

Ответ 3

Да, регистр * содержит текущий визуальный выбор...

Вы можете ввести <C-R>*, чтобы получить его из режима вставки или команды...

Однако это не очень удобно использовать в командной строке, так как вы не можете избежать '<,'> при входе в командный режим из визуального режима