LINUX.ORG.RU
ФорумTalks

А в vim'е это гораздо лучше ...

 ,


3

3

Самого добрейшего времени суток, амигос!

Вполне осознаю и отдаю себе отчет в том, что создаю тему, которая «холиварной» просто не может не быть. Но начинание мое, уверяю вас, благое - человеческая жысть не бесконечна, и если есть возможность найти профит в мелочах, то это благо, и этим надо пользоваться!

По-сему, нижайшая просьба, не клеймить меня «неасилятором» (типа я в курсе, и уже от этого страдаю душевно), а разговаривать по сути. А суть простая - поиск профита между «обычными редакторами» и редактором VIM. Поэтому давайте опеделим базис - VIM это наша точка отсчета, а все остальное - набор разнородных инвариантов.

Предлагаю «сценарий» обсуждения следующий:

1) Я часто использую следующее действие «бла-бла-бла», оно важное, и в VIM осуществляется следующими действиями «бла-бла-бла»

2) Ваш редактор, и как вы бы это осуществили?

Вполне возможно и наоборот. Ваш редактор, ваши действия, и как это возможно в VIM.

======================================================

Для затравочки...

В QtCreator'е есть участок программного кода, типа:

ActionOpen->Method_1

ActionOpen->Method_2

ActionOpen->Method_3

ActionOpen->Method_4

ActionOpen->Method_5

ActionOpen->Method_6

ActionOpen->Method_7

Я сделал копипасту и должен изменить «ActionOpen» на «ActionSearch». Для этого я в копипасте блока изменяю первую строку, копирую её в буфер обмена, выделяю вертикальный блок, и делаю инсерт из буфера обмена. Все визуально, все, при необходимости, откатываемо.

Ctrl+T

Ctrl+Ins

Shift+Alt+Стрелки

Shift+Ins

... а как вы это осуществили бы в VIM'е???

:%s/ActionOpen/ActionSearch/g
sed -i 's/ActionOpen/ActionSearch/g' source_file
> ed test2
174
1,$n
1          ActionOpen->Method_1
2
3          ActionOpen->Method_2
4
5          ActionOpen->Method_3
6
7          ActionOpen->Method_4
8
9          ActionOpen->Method_5
10
11         ActionOpen->Method_6
12
13         ActionOpen->Method_7
1,$s/ActionOpen/ActionSearch/
1,$n
1          ActionSearch->Method_1
2
3          ActionSearch->Method_2
4
5          ActionSearch->Method_3
6
7          ActionSearch->Method_4
8
9          ActionSearch->Method_5
10
11         ActionSearch->Method_6
12
13         ActionSearch->Method_7
saahriktu ★★★★★
()
Ответ на: комментарий от pacify

mcedit

Зто интерактив и это запрещено. VIM + что угодно,пусть даже скрипты на Эрланг

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

Если не в напряг, напиши построчно нажатие сочетаний клавиш в VIM'е. И стандартные ли они, или связка (binding)?

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

Нужно по выделенному

Не вижу в условиях задачи номера первой и последней строки блока. В таком случае их нужно указать через запятую вместо символа '%', как это показано в примере с ed'ом. За тем отличием, что в моём примере обрабатывается блок с первой строки по последнюю ($).

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

Да, ты ошибаешься. По выделенному не нужно.

Прошу дополнительную информацию. Не понимаю утверждения.

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

/g так понимаю по всему докумкнту.

Не совсем.

http://rghost.net/76fBJdlGG

Когда у тебя что-то выделено и ты нажимаешь : для ввода команды туда автоматически подставляется :'<,'> - что значит что команда будет применена к выделению, в данном случае замена.

pawnhearts ★★★★★
()
Последнее исправление: pawnhearts (всего исправлений: 1)
Ответ на: комментарий от Majestio

Всё стандартное.

ctrl+v - выделяешь блок верикальный.

Нажимаешь c и вводишь новый текст. После нажатие esc будет замена во всех строчках выделенных.

pawnhearts ★★★★★
()

Очередная задачка. Есть программный код. По регулярному выражению я должен заменить 25% из возможного. Нужен интерактив и мое согласие.Нужна визуализация. Это меняем на это - «да» или «нет». Как это в VIM'e?

Majestio
() автор топика
Ответ на: комментарий от Majestio
:%s/ActionOpen/ActionSearch/gc

c означает что будет спрашивать подтверждения на каждую замену. Собсвенно, я во втором видео это использовал.

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

Очередная задачка

сынок, асиль ман, он клевый.

про C-v я написать не успел :(

Rastafarra ★★★★
()

Считая, что курсор стоит в начале первой строки:

V6j:s,Open,Search<CR>

Вариант с ctrl+v:

fO^V6jceSearch<ESC>
Jini ★★
()

... а как вы это осуществили бы в VIM'е???

/ActionOpen
cwActionSearch
n
.

andreyu ★★★★★
()
ActionOpen->Method_1

ActionOpen->Method_2

ActionOpen->Method_3

...

Этот код попахивает.

true_admin ★★★★★
()

Если курсор на ActionOpen в normal mode:

*:%s//ActionSearch/gc

kazufukurou
()

Задротный этот вим донельзя - четыре хоткея ради элементарного действия это перебор.

Deleted
()
Ответ на: комментарий от arturpub

Хуле ты тут викторину устроил, туториал слабо прочитать?

Ни какие туториалы не заменят радость живого общения с дружелюбными форумчанами!

сынок, асиль ман, он клевый

Папа, ман - это как некролог, а нужно больше жизни, больше эмоций!

Этот код попахивает

В Qt и не такое можно увидеть. Я давно подозревал, что в разработке Qt не обошлись без челябинских программеров. К гадалке не ходи ))))

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

какие 4 хоткея? какое элементарное действие? че ты несешь?

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

Очередной квест: весь текст файла отодвинуть на символ вправо.

В «обычном редакторе» - Ctrl+A, Ctrl+[ Чем ответят бойцы партии «Vim»?)))

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

Побибикал бы и испортил конечно же

За честность - уважуха! )))

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

А можно быстро попасть в низ параграфа в ту же колонку, не переходя вручную «стрелками» вертикально или горизонтально?

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

saahriktu, я так понимаю, это во всем документе ниже курсора? А как такое интерактивно (с подтверждением каждой замены)?

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

Для этого я в копипасте блока изменяю первую строку, копирую её в буфер обмена, выделяю вертикальный блок, и делаю инсерт из буфера обмена.

Вот детсад... Как минимум можно сразу в вертикальном блоке править.

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

Это же часть выделения блока. На видео по строкам переходят вручную; мне это делать надоело. По колонкам можно переходить с помощью f и t, но это тоже переход.

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

Хотя если невозможно, то спасёт опция relativenumber, подсказывающая, сколько строк до нужной (какое число надо ввести перед «j»).

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

Не не не ... давай по порядку ...

распиши последовательность, что и когда

В моем случае:

1) Ctrl+A - выделить блоком все содержимое файла

2) Ctrl+[ - сдвинуть выделенное блоком

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

Зачем тебе это всё, чувак?

Доказать, что тебе всё же нужен vim? Да если понадобится, ты к этому сам придёшь, без лишних обсуждений на форуме.

Не нужен — ну и ладно, пользуйся другими текстовыми редакторами.

1) Ctrl+A - выделить блоком все содержимое файла

Выделять строчки можно при помощи visual mode. Войти в него можно нажатием v (посимвольное выделение), V (построчное выделение) или Ctrl-V (выделение блоком).

Выделить весь файл проще всего при помощи перехода на начало файла (gg), включения visual mode (V) и достижения в нём конца файла (G).

2) Ctrl+[ - сдвинуть выделенное блоком

>

b0r3d0m
()
Ответ на: комментарий от kwinto

ggvG>

Другая последовательность нажатий Shift:

:%><Enter>

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

А как такое интерактивно

Не знаю, мне такое не интересно.

я так понимаю, это во всем документе ниже курсора?

Номера строк в текстовом файле не зависят от курсора. Для текущей строки можно использовать '.'. ".,$s" - от текущей строки до последней. «1,.s» - от первой строки до текущей.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 2)
Ответ на: комментарий от Majestio

VIM. iyay<Esc>yy5p^Vljjso<Esc>. и то небось неоптимально донельзя. а у тебя буфер какой-то, муть.

t184256 ★★★★★
()

Ты лучше книжку прочитай «Practical Vim», а потом смешные вопросики задавай. Серьезно.

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