копирование частичных строк в VI
есть много разных способов, которыми можно дергать полные одиночные / несколько строк. Есть ли способ, которым мы можем скопировать частичные строки в vi, например, всего 10 символов строки.
8 ответов
Я бы предположил, что наиболее общей долевой янки:
yaw
: дернуть слово курсор в настоящее время в2yaw
: потяните слово курсором в текущий момент и следующий (всего 2 слова)ya(
: дерните соответствующие круглые скобки, содержащие курсорyf.
: дернуть от курсора к следующему .
y$
: янки от курсора до конца строки
любые клавиши движения могут быть использованы.
можно сделать y
движение, поэтому для 10 символов:y10l
янки 10 символов из (и в том числе) текущей позиции курсора
вырезать и вставить:
поместите курсор туда, где вы хотите начать резку.
- пресс v для выбора символов (прописные или V выбрать все линии).
- переместить курсор в конец того, что вы хотите вырезать.
- пресс d вырезать (или y копировать).
- переместить туда, куда вы хотели бы вставить.
- пресс P вставить перед курсором, или p вставить после.
- копирование и вставка выполняется с теми же шагами, за исключением шага 4, где вы нажмете y вместо d:
d = удалить = вырезать
y = янки = копия
Я предпочитаю просто нажать клавишу v, а затем с помощью клавиш курсора переместить ваш выбор. Затем нажмите клавишу y, когда вы удовлетворены, чтобы дернуть выбор.
вы также можете сделать
yt<char> - tank 'till char - i use that a lot
or y/<pattern>/ - yank until pattern
конечно, с курсором в начале строки введите:
y10l
это тянет 10 символов вправо. Если вам нужно сделать это повторно по какой-то причине, просто добавьте это временное сопоставление kep:
:noremap ,m ^y10l
который будет дергать первые 10 символов строки каждый раз, когда вы нажимаете ,m
Если у вас есть несколько строк для копирования, попробуйте режим визуального блока
" beginning of line
C-v
" up-down move 10j or 5k
10l
" copy & paste
y
p
Подробнее см. wiki
это одно место, где мышь может фактически бить клавиатуру, особенно если текущий курсор мыши находится далеко от цели копирования, или если вы хотите выбрать несколько строк с частичной начальной или конечной линией.
использовать :set mouse=a
включить поддержку мыши. Затем выберите любые нерегулярные текстовые блоки с помощью мыши, а затем нажмите y