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)
Ответ на: комментарий от redhat

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

//fixed

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

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

редактор из браузера? facepalm

но спасибо, попробую.

поглядел — слакобилд имеется, собираю….

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

плагины

but why?

Lua

его что, нет в коробке?!

Он есть, но рулить им не очень удобно без определённых вещей.

Например, сейчас я себе костыляю комментирование/раскомментирование (не только для Lua, естественно), но это лишь малая часть юзкейса.

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

плагины

but why?

why no?

Например, сейчас я себе костыляю комментирование/раскомментирование (не только для Lua, естественно)

для C и похожих(C++, php, etc) есть в коробке. Для Lua не знаю.

ну и я lua не юзаю…

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

есть vim-commentary или менее удобный но более мощный (умеет например в embedded синтаксис, типа js внутри html) tcomment_vim.

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

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

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

скажи: что лучше,

1. разработчик вставит Over9000 фич, из которых тебе нужно 3½

2. будет Over9000 плагинов, из которых ты поставишь 3½

как считаешь? Ну потому разраб и не делает для тебя эти фичи.

Я сам не люблю жирное ПО, но в vim'е у меня есть 3½ плагина. Они не тормозят, т.к. без них также(кстати, vim на третьем пне подтормаживает с маленьким проектом на 7К строк, что с плагинами, что без).

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

1. разработчик вставит Over9000 фич, из которых тебе нужно 3½

2. будет Over9000 плагинов, из которых ты поставишь 3½

3. Из этиз 3½ плагинов я буду использовать 15%, так почему бы просто не перетащить эти 15% себе и не адаптировать под себя? Зачем мне тащить целых 3½ плагина?

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

так почему бы просто не перетащить эти 15% себе и не адаптировать под себя?

тащи, если делать нечего. Плагины никто не прячет.

будет Over9000+1 плагин ☺

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

а зачем его костылять, есть vim-commentary или менее удобный но более мощный (умеет например в embedded синтаксис, типа js внутри html) tcomment_vim.

Чем он лучше nerd commenter?

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

Чем он лучше nerd commenter?

кто именно, vim-commentary или tcomment?

Первый простой как палка, а вот tcomment — самый мощный и продвинутый комментатор, лучше остальных именно в том, что у него контекстно-зависимые комментарии, он отличает html от js или другие встроенные синтаксисы в файле от глобальных.

Но у него есть небольшая проблема (или я не разобрался) с недефолтными маппингами + count. (дефолтные работают норм.)

Также у него есть опция TCommentAs {syntax}, т.е. можно выбрать вид комментария перед комментированием строки или блока.

Стоит попробовать.

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

Чем он лучше nerd commenter?

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

Как nerd commenter закомментировать блок?

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

Первый простой как палка,

Ну тогда это можно и простой функцией в vimrc решить.

а вот tcomment — самый мощный и продвинутый комментатор, лучше остальных именно в том, что у него контекстно-зависимые комментарии, он отличает html от js или другие встроенные синтаксисы в файле от глобальных.

Ясно, nerd commenter умеет это. Значит нет смысла менять то, к чему давно привык.
И с count работает он нормально, но маппинги я не менял.

Также у него есть опция TCommentAs {syntax}, т.е. можно выбрать вид комментария перед комментированием строки или блока.

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

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

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

Наверное это настраивается, но меня устраивает дефольтное поведение.

Как nerd commenter закомментировать блок?

Выделить блок или указать диапазон, нажать хоткей. Дефольтный <ladder>cc

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

контекстно-зависимые комментарии,

nerd commenter умеет это.

как же умеет, если он комментирует js внутри html — как html?

<div class="slider">

  <script type="text/javascript">
    $(document).ready(function(){
      <!--var slider = new MasterSlider();-->
    });
	</script>   

</div>
вот как комментирует tcomment:
<div class="slider">

  <script type="text/javascript">
    $(document).ready(function(){
      // var slider = new MasterSlider();
    });
	</script>   

</div>

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

а perl внутри viml комментирует как viml, а не perl:

function! Foo()
perl << EOF
    "my $foo = 1;
    VIM::DoCommand(':let @0 = ' . $foo);
EOF
endfunction
tcomment же делает правильно:
function! Foo()
perl << EOF
  # my $foo = 1;
    VIM::DoCommand(':let @0 = ' . $foo);
EOF
endfunction

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

контекстно-зависимые комментарии,

Я под контекстом понял filetype.

вот как комментирует tcomment:

Прикольно, а как он разбирается в этом?

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

надо смотреть в сорц, но как-то так наверное:

syn region blabla matchgroup=blabla start="?" end="?" contains=@blabla,@spell blabla

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

К сожалению tcomment не умеет toggle comment корректно делать. Комментим 3 строки кода, делаем visual selection этих трех строк и еще несколько строк без комментария. И toggle comment обламывается. При этом nerd commenter обработает такую (и более сложную) ситуацию без проблем.

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

я уверен, что не обламывается и умеет делать правильно toggle если выделены разные строки, но там слишком сложно с маппингом и командами, серьезно, вот например:

:TComment mode=K
закоменнтирует только не закоментированные строки, в общем, как я сказал изначально, слишком заморочено у него.

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

я уверен, что не обламывается

Вот пример кода с комментом:

void foo(int /*var0*/, float var1);

Я выделяю все что внутри круглых скобок и прошу закомментить. И вот тут он обламывается. В этой же ситуации nerd commenter работает корректно.

и умеет делать правильно toggle если выделены разные строки,

Выделил четыре строки:

// void foo(int i);
// void bar(float j);
void foo();
void bar();

Попросил проинвертировать комменты, и тут снова облом.

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

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

с помощью surround решается еще проще и более интуитивно. зачем себя ограничивать?

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