VIM: как ставить спецсимволы?

19.06.2010

Очень удобная есть штука — диграфы (на Хабре писали). Работает просто: в режиме вставки нажимаете Ctrl+K и двухбуквенный код.

Коды обычно вполне интуитивные, например, значок ≤ вводится как =<, копирайт (©) через Co, а кавычки-ёлочки с помощью скобок << и >>. Но т. к. необходимость некоторые символы вводить появляется не слишком часто, всё равно забывается нафиг. Поэтому для удобства решил сделать табличку с некоторыми символами.

Символ Название Код после Ctrl+K
«» русские кавычки << и >>
тире M-
многоточие не нашёл, подскажите
[скрытый] неразрывный пробел NS
[скрытый] мягкий перенос --
± плюс-минус +-
© знак копирайта Co
² вторая степень 2S
³ и в куб можно 3S
значок Евро Eu
° градус DG
градус Цельсия (Фаренгейта угадайте) oC
µ микро My
бесконечность 00
½ одна вторая 12 (другие дроби аналогично)
знак корня RT
приблизительно ?2
неравенство !=
← ↑ → ↓ стрелки, соответственно <- -! -> -v

Отображение неразрывного пробела, табуляции, обычных пробелов и переносов строк тоже настроить можно.

Комментарии

  1. # vitvirtual

    Тормоз, я так понял, это можно использовать только в текстовом редакторе Vim? Долгонько врубаюсь… :)

  2. # Тормоз

    Да, именно так.

  3. # Ал: 

    Тормоз, спасибо за то что рассказал про вим у себя в блоге, от тебя про него вообще первый раз услышал. Поставил уже полгода назад примерно(или когда ты там про него рассказал? Давно в общем) и с тех пор пользуюсь. Вещь офигенская конечно. С установкой дополнительных плагинов, например плагина zen coding я просто в перманентном восторге от вима.

    Сначала я просто осваивался, но теперь когда неплохо в виме разбираюсь, у меня есть осталось несколько вопросов на которые я так и не смог найти ответа, если ты поможешь буду очень благодарен. Вопросы:
    1. Как сделать полноценную поддержку русского языка? То есть чтобы по «dw» удалялось русское слово. Простое перемещение курсора по hjkl/ролд я сделал, но dw не работает, вим считает каждую русскую букву за отдельное слово.
    2. Как сделать так же как здесь на первой картинке? http://timurbek.livejournal.com/15093.html
    Динамический отступ перенесенной длинной строки. В том посте ссылки битые, да и сам пост старый, возможно сделали поддержку в самом виме без патчей. Не знаешь как такое реализовать?
    3. Как сделать чтобы в html парный тэг подсвечивался? Чтобы выглядело как в notepad++, то есть наводишь курсор на открывающий див, этот див подсвечивается например фиолетовым и закрывающий див тоже подсвечивается фиолетовым. При этом в див могут быть вложены какие угодно тэги, но их эта подсветка коснуться не должна.
    ——-
    Это основные моменты которых мне не хватает в виме, все остальное практически идеально и очень удобно. Я уже много чего прочитал, но ответов на перечисленные вопросы так и не нашел.

  4. # Тормоз

    Ал, вот ради такого стоит писать блог. «Ура, я полезен!» (© Зойдберг). Спасибо за добрые слова. Теперь попробую ответить:

    1. У меня dw отлично русские слова удаляет, я о такой проблеме не знаю. Подозреваю, что у тебя в кодировке дело. Неужели локаль не в UTF-8?

    2. Я вообще не очень понял, зачем эта штука и как именно работает. В любом случае не сталкивался, но если найдёшь решение и объяснишь, для чего — было бы любопытно узнать :)

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

  5. # Ал: 

    1. Я под win7 сижу :) Поэтому про кодировку сказать ничего не могу. Буду копать в эту сторону. Спасибо.
    2. Сейча меня очень раздражают длинные строки в css. Я в css соблюдаю вложенность тэгов из html‘ки и все свойства пишу в одну строку. То есть css выглядит примерно так:
    ——-

    #header{border:1px solid black;position:relative;height:100px;)
    (тут табуляция)#login-form{position:absolute;top:10px;right:10px;}
    ——-
    По такому css сразу понятно, что форма логина вложена в <div id=«header»>.
    Так вот строка #login-form{} может быть очень длинной и рушит всю вложенность. А если бы длинная строка переносилась уже с большим отступом равным табуляции, то вложенность была бы гораздо нагляднее и удобнее.
    3. Теоретически все говорят, что в виме можно это сделать :) но практически я готового решения не видел. Похоже придется писать плагин какой нить самому. Мануал по плагинам я впринципе нашел и пока осваиваю:
    http://jenyay.net/Programming/VimScript1
    За colorer спасибо. Буду вникать.

  6. # Тормоз

    Про colorer я на ЛОРе нашёл, кстати :) Вообще, может запросом буржуйским ещё поискать каким-нибудь, или даже по картинкам.

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

    Зачем тебе по CSS особо различать, куда что вложено? По коду гораздо быстрее перемещаться с помощью поиска. Я уж не говорю о том, что в CSS лучше более общие правила делать, красивее так и эффективней.

  7. # Бутылк.Ус

    Тормоз…
    … – это многоточие, а «» – это типографские кавычки. Почему «русские»? =))))

  8. # Тормоз

    Да пофиг, как называется :) Но исправил. Русские, потому что в других странах другие кавычки более распространены, насколько я помню.

    P.S. Давно ты не заходил.

  9. # Ал: 

    Цитата:
    «Зачем тебе по CSS особо различать, куда что вложено?»
    Неужели тебе и вправду такой код:
    http://pastie.org/1011589

    Читать приятнее чем такой:
    http://pastie.org/1011590
    ?

    В первом случае нужно листать и вникать какой логикой тут руководствовался верстальщик, во втором случае достаточно бросить один взгляд и вся глобальная структура css становится понятна.
    Если учесть что это только шаблоны, и в реальности кода будет намного больше, то первый вариант разрастется в десятки страниц css, а второй вариант можно будет все так же посмотреть на одной странице.

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

    Какой код тебе бы было приятнее потом редактировать в каком из них ты бы разобрался быстрее если бы первый раз увидел?

  10. # Тормоз

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

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

    Я бы разобрался быстрее с первым вариантом, но не столько из-за общего форматирования, сколько из-за отсутствия пробелов после точки с запятой во втором случае. А так одинаково, наверно.

    В общем, тут какой-то холивар назревает, лучше давай закроем тему :) Я понял, что многим нужны длинные строки, это личное дело каждого.

  11. # Ал: 

    Ок, закроем :)
    Шаблон кстати не мой, первый вариант я просто скопировал, второй по минимуму отредактировал.
    P.S. Я знаю ответ на вторую загадку, если говорить иносказательно — это то что вверху отображается. Но дарить кроме денег нечего, так что отвечать не буду :)

  12. # Тормоз

    С загадкой, скорей всего верно :)
    Может, всё же придумаешь какой-нибудь клёвый подарок? Это же забавно! И загадку загадаешь нам, я тоже уже хочу отгадывать чего-нибудь.

  13. # Денис aka KRoN

    Многоточие это три русских точки))))
    Никогда ранее не встречался с этим редактор,я уже к дримвиверу привык. Но все-равно софтину скачаю и оценю. Я полагаю она бесплатная? Или как обычно придется искать кряки?

  14. # Тормоз

    Vim бесплатный.

  15. # Дмитрий: 

    Ал, для того, чтобы Vim корректно скакал по словам в кодировке cp1251, добавь в vimrc такое заклинание:

    set iskeyword=@,48-57,_,192-255

  16. # Тормоз

    Кодировка cp1251 не нужна.

Комментирование этой статьи закрыто.

Интересное Покупки ТехникаРазное Отдых Статьи Строительство Услуги Общество Хобби Культура Советы Уют