LINUX.ORG.RU

Задачка по многострочной модификации + новый ресурс.

 ,


0

3

Если кто не знал, то открылся: http://vi.stackexchange.com

А теперь задачка, есть вот такое:

<article>
  <ul>
    Vim
    Atom
    Emacs
    Sublime
    TextMate
  </ul>
</article>
нужно сделать вот так:
<article>
  <ul>
    <li>Vim</li>
    <li>Atom</li>
    <li>Emacs</li>
    <li>Sublime</li>
    <li>TextMate</li>
  </ul>
</article>
ваши действия? Surround не использовать, другие плагины тоже.



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

Surround не использовать, другие плагины тоже

а руки использовать можно?

макросом, или вставкой в блочном выделении

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

/thread

nice try, но нет, вообще те варианты не подходят, если мы говорим об универсальной, быстрой и удобной многострочной модификации, кстати, как правило, все трики и читы из vim.wikia — безнадежно устарели.

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

макросом, или вставкой в блочном выделении

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

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

мы говорим об универсальной, быстрой и удобной многострочной модификации

учите регулярки, господа. Мой ответ выше

//close thread

emulek
()
Ответ на: комментарий от Siado

Да, можно усложнить, например в каждой строке разное к-во слов.

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

Vim Shvim

:%s/\s[^<]\(\w.*\)/ <li>\1<\/li>/gc

так наверное. До конца строки. И это упрощение, а не усложнение.

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

Мне более симпатично такое решение:

qqw<li>EscA</li>q
а теперь трик, который узнал недавно, выделяем область, в которой нужно модифицировать и:
:norm @q

весь прикол в :norm .

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

что значит «быстрее»?

если там дофига сложный кусок с массой деталей, то на регулярку уйдёт больше времени, чем создание макроса и :norm на него в visual mode.

Это не относится к данному простому куску выше, к более сложным вещам относится.

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

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

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

эти макросы плохо регулируются. На практике я только «точка» использую, не больше.

Впрочем это дело привычки.

emulek
()
Ответ на: комментарий от funeralismatic

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

Сейчас я пытаюсь решать вот такие обыденные проблемки и вопросы в виме, чтобы решить для себя этот вопрос, оставаться на виме, либо же начинать использовать и контрибьютить в Atom (в котором есть неплохой vim-mode).

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

почему именно в Atom? потому, что коре-тим атома разрабатывает редактор с возможностью использовать вим как бэкенд, т.е. отмазки типа а вот в ssh и т.п. не умеет - прокатывать уже не будут.

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

Простой макрос:
qq
I<li><ESC>A</li>j
q

andreyu ★★★★★
()

А вообще есть vimgolf.com - посоревнуешься там, насмотришься как делают гуру и будешь тоже гуру.

andreyu ★★★★★
()

Смотрю я на весь этот бдсм и думаю: а действительно-ли вим дает какой-то буст производительности?

p.s. в саблайме просто нажимаешь контрол и ставишь курсоры где хочешь.

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

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

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

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

Deleted
()

курсор на V, ctrl+v, jjjj, I, <li> ESC

курсор на m, ctrl+v, jjjj, $, A, </li> ES

появляется непонятный индент в первой строке

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

Вышеуказанная задача проще и быстрее решается в виме, например тем способом, который указал я. Куда уж быстрее, чем кликать в начало и конец нужных участков, тем более, что это простой пример, а если строк 15 или 50? Так-то.

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

:3<CR>qs^i<li><ESC>$a</li><ESC>jq3@s

pon4ik ★★★★★
()
Ответ на: ed сила от qulinxao

для понятности и большей лаконичности:

:,v/</s_\b\(.*\)\b_<li>\1</li>_

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

:%s/\s[^<]\(\w\+\)/ <li>\1<\/li>/gc
qqw<li>EscA</li>q :norm @q
qq I<li><ESC>A</li>j q
:3<CR>qs^i<li><ESC>$a</li><ESC>jq3@s
зажать контрол, поставить курсор где надо
Вышеуказанная задача проще и быстрее решается в виме

Oh, I see.

а если строк 15 или 50

Выделяешь текст, нажимаешь Ctrl-Shift-l

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

А если в строках разное количество символов...

а если надо

<li>some thing</li>
<ololo>another thing</ololo>
<li>some thing1</li>
<ololo>1another thing</ololo>
<li>1some thing</li>
<ololo>another thing1</ololo>

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

В случае с макросами время на раздумье растёт линейно.

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

Но согласись, что искоробочный вим для этого не годится?

Я за шесть дней обставил свой вим, теперь им можно редактировать vimrc и ебилды. (Четыре дня ушло на раскуривание тонны документации и изнасилование гугла.) Осталось заточить его под Lua и html/css. Если какие интересные вещи есть, кастуй меня.

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

изкоробочный годится только для редактирования текста, в чем его и главное предназначение :)

Если какие интересные вещи есть,

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

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

vim — негодный редактор

в принципе верстать в vim уныло. А вот в docbook нормально, я им пользуюсь давно (наточил кучу макросов). PHP тоже отлично, писал всякое дерьмо по 10K строк и больше, все остальные IDE — полный suxx.

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

в принципе верстать в vim уныло.

я пытаюсь ответить на этот вопрос для себя.

Не мог бы ты, вкратце но подробно, объяснить чем именно уныло технически верстать в vim? Что именно работает не так и как хотелось, чтобы работало? Чего не хватает и т.п. Когда время будет - чиркани.

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

Смотрю я на весь этот бдсм и думаю: а действительно-ли вим дает какой-то буст производительности?

ты не поверишь…

p.s. в саблайме просто нажимаешь контрол и ставишь курсоры где хочешь.

мышкой что-ли? Ты не поверишь, мышку vim тоже может, тянуться нужно, лень.

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

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

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

Не мог бы ты, вкратце но подробно, объяснить чем именно уныло технически верстать в vim?

сам HTML? Ну там кнопки всякие, чекбоксы, формочки, таблицы? Дык это мышкотыкательный интерфейс, его удобно видеть, и прям там мышевозить. Я люблю на весь экран разворачивать, неудобно. Воткнул на второй монитор — башкой мотать. Может я и не осилил прост, может секрет какой есть.

emulek
()
Ответ на: комментарий от redhat

это говорилось в контексте того, что редакторы сублимэ, атом или другие не умеют в ssh.

дык я просто таким никогда не пользовался. Зачем это вообще нужно-то? Какой с этого профит?

emulek
()
Ответ на: комментарий от redhat

если говорить о хороших и перспективных гуйовых редакторах, то только Atom.

он на Qt'ях? Если нет, попробую. Я вообще считаю лучшим — kate из кед, но что-то как-то не сложилось с Qt, да и не шибко оно мне надо. Т.ч. сейчас на нетбуке вообще нет гуёвого редактора, а на десктопах kate, но я такое редко юзаю, vim-only.

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

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

Вот практическая задача.

где, демагог?

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

Oh, I see.

если ты не понимаешь китайский, это не говорит, что ты умнее китайцев.

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

Atom

он на Qt'ях?

нет, весь интерфейс (абсолютно весь, включая вкладки, редакторы, скроллбары и прочее) рендерится из html+css(less), но такие уже системные фичи типа файлового диалога и developer tools — это GTK.

Atom основан на Chromium: https://atom.io

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