LINUX.ORG.RU

vim пару вопросов


0

1

Настал момент когда я чётко вижу что меня тормозит при работе с vim.

1. Как передвигать выделенный блок. Т.е допустим выделил блок, нажал ctrl+shift+стрелка вниз и блок спустился ниже на строчку, а строка что была ниже блока, сместилась выше.

2. Как заменить выделенный текст значением хранящемся в буфере?



Последнее исправление: dunst (всего исправлений: 2)

>1. Как передвигать выделенный блок. Т.е допустим выделил блок, нажал dp и блок спустился ниже на строчку, а строка что была ниже блока, сместилась выше.

//fixed

2. Как заменить выделенный текст значением хранящемся в буфере?


в обычном буфере? никак. Ибо замена есть удаление+вставка, а удаляется в буфер. Хорошо, что есть штук 30 этих буферов (правильно регистров)

1. выделяем и «ay копируем
2. идём куда надо
3. выделяем и меняем d"ap

drBatty ★★
()
Ответ на: комментарий от yoghurt

>А ещё «+p, »+y и тому подобное. Этот вим точно для инопланетян)))

попробуйте набрать d"ap или выбрать меню->правка->вырезать->меню->правка->спецвставка->регистрА->такивставить На время. У меня первый вариант получается быстрее раз в 20, и кроме того, в этих ваших kate нет регистраА.

drBatty ★★
()
Ответ на: комментарий от drBatty

спасибо, тогда ещё вопрос. Что писать в vimrc чтобы после перемещения не пропадало выделение? И как вверх блок переместить

dunst
() автор топика
Ответ на: комментарий от dunst

>Что писать в vimrc чтобы после перемещения не пропадало выделение?

без понятия. Нажмите gv и выделение вернётся.

И как вверх блок переместить

Как обычно - вместо p (вставить после) пишите P.

Можно сразу на N строчек переместить вниз d3jp на три строчки очевидно. Если выделять словами/символами, то тоже работает. А вот блоками наверное не получится.

drBatty ★★
()
Ответ на: комментарий от yoghurt

>M-w, C-w, C-y.

кагбэ никто не заставляет. Я юзал и то и другое, и прекрасно знаю, что лучше.

drBatty ★★
()
Ответ на: комментарий от drBatty

У меня почемуто вместо того чтобы выделить перемещенную строку, gv выделяет то место где раньше была строка.

dunst
() автор топика
Ответ на: комментарий от dunst

я понимаю что оно просто меняет местами. Но хотелось бы именно чтобы без проблем блок таскать по файлу

dunst
() автор топика
Ответ на: комментарий от dunst

>У меня почемуто вместо того чтобы выделить перемещенную строку, gv выделяет то место где раньше была строка.

d вырезает выделенный блок
gv выделяет прошлый блок
p вставляет строки после текущей строки или символы после текущего символа.
Каким образом таскать блок по тексту - я, честно говоря не представляю. Лично мне такое в голову не приходило. ИМХО клавиатурой это по любому не удобнее.

drBatty ★★
()
Ответ на: комментарий от drBatty

Если есть gedit, то попробуй выделить текст а потом alt стрелка вниз или вверх. Очень удобно ведь. Я эти пользовался очень часто.

dunst
() автор топика

> 1. Как передвигать выделенный блок.

Его не надо «передвигать».
shift+v = режим построчного выделения
j/k = выделили нужные строки
d = удалили
j/k/whatever = перешли в нужное место
p = вставили

Всё.


2. Как заменить выделенный текст значением хранящемся в буфере?


1. Не выделяй текст.
2. Вставь значение до/после того текста, который хочешь удалить
3. Удали тот текст, который хотел удалить.

Ты действуешь по вендовому паттерну «выделил - скопировал, выделил - вставил вместо». Это не самая эффективная стратегия работы в виме.

Выделение реально нужно только для многострочного копирования, либо вертикальноблочной работы.

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.