VIM: как ставить спецсимволы?
19.06.2010 технологии
Очень удобная есть штука — диграфы (на Хабре писали). Работает просто: в режиме вставки нажимаете Ctrl+K и двухбуквенный код.
Коды обычно вполне интуитивные, например, значок ≤ вводится как =<, копирайт (©) через Co, а кавычки-ёлочки с помощью скобок << и >>. Но т. к. необходимость некоторые символы вводить появляется не слишком часто, всё равно забывается нафиг. Поэтому для удобства решил сделать табличку с некоторыми символами.
Символ | Название | Код после Ctrl+K |
---|---|---|
«» | русские кавычки | << и >> |
— | тире | M- |
… | многоточие | не нашёл, подскажите |
[скрытый] | неразрывный пробел | NS |
[скрытый] | мягкий перенос | -- |
± | плюс-минус | +- |
© | знак копирайта | Co |
² | вторая степень | 2S |
³ | и в куб можно | 3S |
€ | значок Евро | Eu |
° | градус | DG |
℃ | градус Цельсия (Фаренгейта угадайте) | oC |
µ | микро | My |
∞ | бесконечность | 00 |
½ | одна вторая | 12 (другие дроби аналогично) |
√ | знак корня | RT |
≈ | приблизительно | ?2 |
≠ | неравенство | != |
← ↑ → ↓ | стрелки, соответственно | <- -! -> -v |
Отображение неразрывного пробела, табуляции, обычных пробелов и переносов строк тоже настроить можно.
Комментарии
Комментирование этой статьи закрыто.
Тормоз, я так понял, это можно использовать только в текстовом редакторе Vim? Долгонько врубаюсь… :)
Да, именно так.
Тормоз, спасибо за то что рассказал про вим у себя в блоге, от тебя про него вообще первый раз услышал. Поставил уже полгода назад примерно(или когда ты там про него рассказал? Давно в общем) и с тех пор пользуюсь. Вещь офигенская конечно. С установкой дополнительных плагинов, например плагина zen coding я просто в перманентном восторге от вима.
Сначала я просто осваивался, но теперь когда неплохо в виме разбираюсь, у меня есть осталось несколько вопросов на которые я так и не смог найти ответа, если ты поможешь буду очень благодарен. Вопросы:
1. Как сделать полноценную поддержку русского языка? То есть чтобы по «dw» удалялось русское слово. Простое перемещение курсора по hjkl/ролд я сделал, но dw не работает, вим считает каждую русскую букву за отдельное слово.
2. Как сделать так же как здесь на первой картинке? http://timurbek.livejournal.com/15093.html
Динамический отступ перенесенной длинной строки. В том посте ссылки битые, да и сам пост старый, возможно сделали поддержку в самом виме без патчей. Не знаешь как такое реализовать?
3. Как сделать чтобы в html парный тэг подсвечивался? Чтобы выглядело как в notepad++, то есть наводишь курсор на открывающий див, этот див подсвечивается например фиолетовым и закрывающий див тоже подсвечивается фиолетовым. При этом в див могут быть вложены какие угодно тэги, но их эта подсветка коснуться не должна.
——-
Это основные моменты которых мне не хватает в виме, все остальное практически идеально и очень удобно. Я уже много чего прочитал, но ответов на перечисленные вопросы так и не нашел.
Ал, вот ради такого стоит писать блог. «Ура, я полезен!» (© Зойдберг). Спасибо за добрые слова. Теперь попробую ответить:
1. У меня dw отлично русские слова удаляет, я о такой проблеме не знаю. Подозреваю, что у тебя в кодировке дело. Неужели локаль не в UTF-8?
2. Я вообще не очень понял, зачем эта штука и как именно работает. В любом случае не сталкивался, но если найдёшь решение и объяснишь, для чего — было бы любопытно узнать :)
3. Минут 15 поискал, понял, что подсвечивать парные теги вполне реально, но все ленятся сделать это. Я так понимаю, можно сделать специальную цветовую схему на базе colorer. Готового решения не получилось найти.
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 спасибо. Буду вникать.
Про colorer я на ЛОРе нашёл, кстати :) Вообще, может запросом буржуйским ещё поискать каким-нибудь, или даже по картинкам.
А с длинными строками лучше сменить привычку, мне кажется. Ты попробуй. Потому что и другим это очень неудобно (вдруг твой код кому-то понадобится править?) и тебе польза сомнительная ведь на самом деле.
Зачем тебе по CSS особо различать, куда что вложено? По коду гораздо быстрее перемещаться с помощью поиска. Я уж не говорю о том, что в CSS лучше более общие правила делать, красивее так и эффективней.
Тормоз…
… – это многоточие, а «» – это типографские кавычки. Почему «русские»? =))))
Да пофиг, как называется :) Но исправил. Русские, потому что в других странах другие кавычки более распространены, насколько я помню.
P.S. Давно ты не заходил.
Цитата:
«Зачем тебе по CSS особо различать, куда что вложено?»
Неужели тебе и вправду такой код:
http://pastie.org/1011589
Читать приятнее чем такой:
http://pastie.org/1011590
?
В первом случае нужно листать и вникать какой логикой тут руководствовался верстальщик, во втором случае достаточно бросить один взгляд и вся глобальная структура css становится понятна.
Если учесть что это только шаблоны, и в реальности кода будет намного больше, то первый вариант разрастется в десятки страниц css, а второй вариант можно будет все так же посмотреть на одной странице.
Я верстаю не первый год, в итоге пришел к такой организации в css. Вариантов было перепробовано не мало, пытался делать открывающие и закрывающие комментарии для блока, следовать определенному порядку. В общем много чего пытался делать. Второй вариант по-моему в разы понятнее чем первый. Если бы еще был нормальный перенос строк, то все стало бы вообще отлично.
Какой код тебе бы было приятнее потом редактировать в каком из них ты бы разобрался быстрее если бы первый раз увидел?
Да и так и так нормально, хотя первый слишком уж разряжённый, я обычно отступы не делаю.
Насчёт понятности глобальной структуры с первого взгляда не могу согласиться, это понятно только тебе.
Я бы разобрался быстрее с первым вариантом, но не столько из-за общего форматирования, сколько из-за отсутствия пробелов после точки с запятой во втором случае. А так одинаково, наверно.
В общем, тут какой-то холивар назревает, лучше давай закроем тему :) Я понял, что многим нужны длинные строки, это личное дело каждого.
Ок, закроем :)
Шаблон кстати не мой, первый вариант я просто скопировал, второй по минимуму отредактировал.
P.S. Я знаю ответ на вторую загадку, если говорить иносказательно — это то что вверху отображается. Но дарить кроме денег нечего, так что отвечать не буду :)
С загадкой, скорей всего верно :)
Может, всё же придумаешь какой-нибудь клёвый подарок? Это же забавно! И загадку загадаешь нам, я тоже уже хочу отгадывать чего-нибудь.
Многоточие это три русских точки))))
Никогда ранее не встречался с этим редактор,я уже к дримвиверу привык. Но все-равно софтину скачаю и оценю. Я полагаю она бесплатная? Или как обычно придется искать кряки?
Vim бесплатный.
Ал, для того, чтобы Vim корректно скакал по словам в кодировке cp1251, добавь в vimrc такое заклинание:
set iskeyword=@,48-57,_,192-255
Кодировка cp1251 не нужна.