LINUX.ORG.RU

Python 2.7

 ,


0

0

3 июля 2010 вышло обновление Python 2.x, в котором были добавлены возможности, ранее присутствовавшие только в ветке 3.x, а также другие улучшения:

  • Новый тип — упорядоченный словарь
  • unittest обзавелся новыми методами assert и может пропускать (по требованию, естественно) тесты
  • значительно ускорена работа модуля IO
  • автоматическая нумерация полей в методе str.format()
  • Улучшения представления repr для типа float, как в Python 3
  • Поддержка Tile для TkInter
  • Объект memoryview портирован обратно из Python 3
  • литералы для множеств ({a, b, c})
  • comprehensions для множеств и словарей
  • Dictionary views — способ представления фрагмента словаря без копирования
  • Новый синтаксис для вложенных операторов with
  • Новый модуль sysconfig

>>> Анонс релиза на оф. сайте и загрузка

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от anonymous

>Похоже, вы просто не видели ни разу питон. Может только слышали о нем на ЛОР-е. Программы на питоне компактны, удобочитаемы и вполне приемлемо быстро выполняются. Ну, а про глюки это вообще мимо кассы

хахаха. Даже простейшая загрузка федоры не обходится без DecodeError...

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

>а каковы будут причины ухода питона?

не нужен?

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

Если конкретно по новости, то давать смесь английского и русского некультурно, проще было дать просто ссылку, а чтоб было хорошо — дать перевод, как на Опеннете. Это всё сказано было ещё на первой странице и ещё Второмужиком.

Остальное уже подтянулось по ходу, как и обычно на лоре. Но с меня хватит. Я и так написал много лишнего. И не только сегодня. Пожалуй, впредь буду задавать только вопросы.

На которые всё ранво никто никогда не отвечает, ага. Вон, спросил AVL2, какие популярные программы общего применения — а не узко-специализированные корпоративные — написаны на хаскеле, так и жду ответа до сих пор. :)

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

>> ну для ухода перла были веские причины - его убожество и нечитаемость. а каковы будут причины ухода питона?

Допустим вас в детстве избил человек, в футболке с надписью «use perl;», но это не повод переносить свою ненависть на язык.

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

anonymous ()
Ответ на: комментарий от val-amart

>совершенно некорректное сравнение. как ты думаешь, если переписать валу на сях, она станет медленнее?

вполне может. си давно уже не может быть образцом быстродействия ибо слишком много в нем ручного труда для распараллеливания. К тому же обычно предъявляются требование не просто быстро работать, но еще и хорошо. И тут новый ЯП как нельзя кстати.

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

воот.

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

и ненужность.

а полная релаизация питона на питоне есть, pypy называется.

Именно. Есть да нахрен никому не впала.

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

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

Про ghc и речи нет - хаскель на хаскеле и написан.

Как интересно. И на чем же написан RTS в GHC? (кстати, ввод-вывод там же)

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

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

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

> Поэтому приводить в защиты трушности ЯП статистику его использования - явный признак ФГМ.

Трушности? Жизнеспособности.

Ссфлку на статистику приведешь?

чтобы опять нищеброды с лора сказали, что статистика не такая и вообще не аргумент?

Не-а, чтобы не выглядеть совсем треплом.

Доо... как будто кто-то сравнивал.

с одной стороны, глупо сравнивать небо и землю

Бла бла. Если что, Питон и Лисп - это два языка программирования.

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

>Вон, спросил AVL2

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

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

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

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

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

хахаха. Даже простейшая загрузка федоры не обходится без DecodeError...

Питон был написан изначально для администраторских задач. Нынче там он сидит достаточно крепко.

нет его там.

Итог: /0

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

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

Полтора скрипта на питоне и портаж генты ? Ну значит фанатики питона пробрались и туда - вот и весь ответ. Кто на чем умеет, на том и пишет. А вообще то не припоминаю питона в LSB.

anonymous ()

Знатный тредик, будет что почитать по дороге домой :)

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

Доктор, что со мной?

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

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

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

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

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

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

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

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

>Трушности? Жизнеспособности.

Только если язык развился вопреки всему. Вот если «рога и копыта» создаст ЯП и он вдруг станет использоваться всюду и везде, то да, жизнеспособен. А если МС создала клоножабу и бесплатно вложила ее в каждый компьютер, то при чем тут жизнеспособность и вообще свойства самого ЯП?

Не-а, чтобы не выглядеть совсем треплом.

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

Бла бла. Если что, Питон и Лисп - это два языка программирования.

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

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

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

Что знают, на том и пишут. похапе/пестон.

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

нда. функциональный лисп. жертва пропаганды «крутых» языков. ты небось еще и на «спортивной» бэхе ездишь?

val-amart ★★★★★ ()
Ответ на: комментарий от balodja

>Итог: /0

вот если бы система не загрузилась или частично не работала, можно было бы в чем-то согласиться.

А так, ну есть зависшие скрипты, даже не знаю, что делающие. Не работают и хрен сним - никто даже не замечает...

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

> Доктор, что со мной?

живительные 2к строк на Смоллтоке внутривенно! =)

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

>функциональный лисп.

Мир затаил дыхание. У всех на устах вопрос - а какой?

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

>> Трушности? Жизнеспособности.

Только если язык развился вопреки всему.

«Вопреки» или «благодаря» - не имеет никакого значения %) Но я готов послушать, благодаря чему развился Питон.

Я уже только что доказал, что вы все тролли

Мы хоть веселые тролли :D А вот ты - тролль унылый.

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

Ты таки заставил меня плакать :D

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

> вброс был в том, что у py3k есть шанс повторить судьбу perl6

Это очень даже возможно. Только почему ты решил, что при этом выбросят и 2.x? Наоборот, выход 2.7 подтверждает, что эта ветка очень даже жива. Скорее всего постепенно бэкпортируют все ключевые фичи из py3k, а сам py3k станет ареной для экспериментов. Уже сейчас там началась интеграция с unladen swallow, ты в курсе? Если им удастся ускорить Питон на порядок, крупные проекты ломанут портироваться, вот увидишь. Тем более уже почти все перешли на 2.6. Так что Питон всяко перспективней каличного Руби с неисправимыми ошибками в ДНК.

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

мультипарадигменный. он такой же функциональный, как stackless python.

val-amart ★★★★★ ()
Ответ на: комментарий от volh

> Чуйствую, про жаба-хайп в 90-х тебе вообще говорить не нужно

Понимаешь, руби-хайп - это повторение истории в виде фарса. Хотя если кто то (ты, например) нагрел на этом руки - можно только поздравить предприимчивых товарищей. РоР - это пожалуй даже круче, чем пылесосы Кирби.

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

>«Вопреки» или «благодаря» - не имеет никакого значения %)

имеет. богатый папа и собственные достоинства - большая разница.

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

> Уже сейчас там началась интеграция с unladen swallow, ты в курсе? Если им удастся ускорить Питон на порядок, крупные проекты ломанут портироваться, вот увидишь. Тем более уже почти все перешли на 2.6. Так что Питон всяко перспективней каличного Руби с неисправимыми ошибками в ДНК.

По-моему, Uladden Swallow того, окочурился

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

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

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

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

Тобишь питон - это бэйсик нового поколения, для тех кто не осилил остальное ? :)

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

То же можно сказать и про perl, ruby, lua, tcl, любой язык построенный на базе ECMAscript - все это динамические языки, которые без напряга используются. Так чем же питон такой замечательный ? Тем что вы его знаете ?

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

>мне не нравятся пробелы для выделения блоков кода - ни одна ide так и не смогла правильно делать табуляцию при перводе строки

При работе с Emacs'ом ни разу не возникало проблем с табуляцией, в отличие от, скажем, Eric.

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

Очень хорошо и доходчиво об этом написал автор Mongrel в небезызвестной статейке.


дайте ссылку

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

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

перл не годился, ибо write only и слишком много вещей встроеных, которые нужны не всегда - например re.

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

То же можно сказать и про perl, ruby, lua, tcl, любой язык построенный на базе ECMAscript - все это динамические языки, которые без напряга используются. Так чем же питон такой замечательный ? Тем что вы его знаете ?

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

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

>> При работе с Emacs'ом ни разу не возникало проблем с табуляцией, в отличие от, скажем, Eric.

Поведай как емакс узнает на блок какого уровня ставить курсор после нажатия enter в блоке 5 уровне вложенности. Может мне нужно продолжать писать иснтрукции в пятом, может в первом, в третьем ... Откуда среда может знать куда мне перескочить, она что логику программы понимает ? :)

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

Ну, в haskell-mode я таб нажимаю, чтоб на прошлый уровень перейти. Но вот как с пистоном - не знаю

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

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

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

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

Признайся лучше что ты, просто не знаешь английский.

Такая взрослая тётя, а строишь из себя чёрт знает что.

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

в Exherbo кажется paludis является основным менеджером портежа,

возможно там можно обойтись без emerge и соответственно питона

Факт, но Exherbo чисто экспериментальный дистрибутив, который создавался специально чтобы можно было авторам без зазрения совести все сломать. Вопрос о стабильности даже не стоит (хотя и поднимался пользователями). Пользоваться им можно только в последней стадии красноглазия.

ogronom ()
Ответ на: комментарий от MuZHiK-2

Тут страшный лор, тут мужик-2 бродит

В больших объёмах метан он производит

И страху нагоняет он на всех

Но вместо этого - один лишь смех

Меня пронзительный обуревает

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

> Ну, в haskell-mode я таб нажимаю, чтоб на прошлый уровень перейти. Но вот как с пистоном - не знаю

Абсолютно аналогично.

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

>> перл не годился, ибо write only и слишком много вещей встроеных, которые нужны не всегда - например re.

На питоне тоже можно писать в одну строку и криво, это уже не раз обсуждалось. [code=python] for ii in range(10) { print(ii); print(«which is %s» % (['even','odd'][ii % 2])); } [/code]

Но безусловно лучше написав n строк кода понять. что вам здесь понадобятся теже регекспы или рандом и идти в начало файла подключать все это.

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

Я не вижу принципиальной разницы между этими языками они практически полностью взаимозаменямы. Если у вас конечно убежденности, что perl|python - это плохо.

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

Но вы же попытались :)

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

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

Неправильно - в языке с выделением блока я один раз нажимаю } - и редактор сам переносит закрывающий блок куда нужно, потому что знает где была послденяя {. А в случае питона расставление отсутпов ты занимаешься сам - т.е. ты не указываешь ide, что блок закончился, давая ей расставить отступы, а сам вручную ставишь отступы, указывая конец блока.

Что проще - нажать один раз } или отстучать 4*n раз по бэкспэйсу ?

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

>Да блоки те же пресловутые. Что это вообще? Не функция, не объект, не то не сё.

Читать о лямбда-функциях, о замыканиях.

имеем 5 извратов - магический yield, ||, &, block_given?, call

Что извратного в прекрасном и простом ( в отличие от питонового ) yield, block_given? и call? При чем тут логические операторы вообще не ясно.

Этот самый call тоже хрень изрядная.

В отличии от питона, в руби нету функций (все методы), и он не callable-oriented. А объекты, которые ведут себя как функции ( функторы ), явно отделены от методов, что в этой ситуации правильно и хорошо.

Так как Матц не сделал нормальных unbound methods aka functions имеем такой маразматический синтаксис для ссылок на функцию в модуле: f = M.method(:foo), и потом разыменование: f.call

Это в питоне передача функций в качестве аргументов - распостраненная и понятная практика ( в т.ч. потому что лямбдами пользоваться считай что и нельзя ). В руби - используй блоки.

Я понимаю, семантика сообщений, все дела, но отсутствие first class functions - это драматически неудобно.

Если есть нормальные лямбды, всякое неудобство пропадает. Иначе дай мне примеров, что ты сможешь сделать с классическими first-class functions, чего не сможешь сделать с рубивским lambda.

Причем, сделай скобки при вызове обязательными, и это стало бы возможным даже в рамке семантики сообщений.

И тогда не было бы таких простых и читабельных внутренних DSL. Нет уж, спасибо.

И не пришлось бы читателю кода (в том числе интерпретатору) гадать, что же это за foo - переменная или вызов метода.

Перестань мыслить «вызовами метода», нету их, есть передача сообщений. Гадать не надо. Иначе - проиллюстрируй на примере.

Далее, где нормальные модули с импортом-экспортом? Те модули, что в Руби есть, заточены исключительно под миксины.

Какой импорт-экспорт? Что тебе конкретно хочется? from module import function? В руби принято require 'library/functionality'. Что еще?

Вообще, в Руби писать иначе, чем в ОО-стиле, почти невозможно (если это не малюсенький скрипт).

Можно писать вообще без классов. Модули, блоки, функции ( методы верхнего уровня ). Я так часто делаю.

Идея открытых классов тоже модульности не улучшает.

Модульность тут особо не причем, если ты обходишься в Питоне без переопределения базовых вещей, в руби тоже можешь обойтись. Они нужны для всяких DSL и вещей в себе. Например, TDD ( RSpec, Shoulda ), rake, cucumber, etc.

Хотя конечно хороший нэймспесинг не помешает. Ну как например clojure с namespaces и недавно введенными protocols.

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

>Модульность (инкапсуляция в широком смысле) в Руби просто ниже плинтуса.

Наоборот, на вполне высоком уровне. Иначе проиллюстрируй на примере.

Где keyword-аргументы? Мудохаться с хэшами в супер-высокоуровневом языке - спасибо, Матц.

Честно говоря, мне мудохаться с хэшами было удобнее, чем с кейворд-аргументами в python и даже в smalltalk. Пример бы не помешал.

Спец. синтаксис для предикатов доставляет: if !list.include?(some) - как это читать вообще?

Это не спец-синтаксис, это рекомендации по наименованию. Да, из лиспа, да, удобно.

Синтаксис для instance variables - ужас (привет, перл), для class variables - двойной ужас.

Да обычный синтаксис, простой и понятный. Что взамен-то предложишь?

Далее список унылых перлизмов, убивающих читаемость: unless, хвостовые if-ы,

А вот не сметь тянуть ручки. unless и хвостовые if-ы - отлично реализованы и очень удобны. В том же питоне например хвостовые if-ы и for-ы есть для comprehensions, и это тоже сильно помогает и улучшает читабельность, но их нет для обычных ветвлений, которые сами по себе сделаны будто бы садистами.

глобальные иероглифы.

require 'English'

Руби код же пестрит выражениями вида do_foo && do_bar && do_baz || do_something_else if some_condition. Когда встречаешь такие строчки по 100 символов в длину, хочется подвесить за яйца одного лингвиста.

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

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

То есть ты привык к какому-то определенному языку ( судя по любви к callables, питону ), не выучил руби, и сделал надуманные выводы. Привычка - плохая штука, закостеневаешь, я на своем опыте столкнулся. Зато когда поймешь что закостеневаешь, и начнешь просвещаться - такой кайф. Чего и тебе советую.

anonymous ()

Чё на лоре так говняно постить новости стали? Пора отписываться от рсски и уходить на опеннет с концами.

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

> Даже простейшая загрузка федоры не обходится без DecodeError...

Я тут на федоре как раз. Не замечал. Хотел бы проверить. Где и что смотреть?

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

> Чё на лоре так говняно постить новости стали?

ну так какой автор такая и новость

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

> Поэтому приводить в защиты трушности ЯП статистику его использования - явный признак ФГМ

Явный признак ФГМ, дружок, сам критерий «трушность». Такими понятиями оперируют только далёкие от производства фанбои (обычно студенты) или люди с синдромом гуру (видимо, твой случай). Первая категория пациентов вполне излечима, а вот вторая... В общем у меня для тебя плохие новости.

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

>Спец. синтаксис для передачи колбеков. Ещё и в сигнатуре принимающей функции они не определены

def blahblah(blah, &closure)
А это что?

магический yield


ZOMG.

Этот самый call тоже хрень изрядная. Так как Матц не сделал нормальных unbound methods aka functions имеем такой маразматический синтаксис для ссылок на функцию в модуле: f = M.method(:foo), и потом разыменование: f.call.


Казалось бы, что такого плохого в .call()? Наоборот, всё понятно.

но отсутствие first class functions - это драматически неудобно


Не нужно. Fixed.

Модульность (инкапсуляция в широком смысле) в Руби просто ниже плинтуса.


Классы и модули что ли уже отменили?

Синтаксис для instance variables - ужас


@var это так страшно, что я просто боюсь. У вас собакобоязнь?

Фу, ты такой толстый.

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

> Что проще - нажать один раз } или отстучать 4*n раз по бэкспэйсу ?

/me в имагзе один раз нажимает таб для этого. Может я что-то не так делаю?

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

>> /me в имагзе один раз нажимает таб для этого. Может я что-то не так делаю?

Да, ты используешь emacs.

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