LINUX.ORG.RU

GNU Emacs 23.1 released!

 ,


0

0

После нескольких лет разработки, сегодня вышла новая версия GNU Emacs. Она имеет номер 23.1. В данной версии внесено очень большое количество изменений:
- Поддержка новых систем рендеринга шрифтов, поддержку anti-aliasing для них, и возможность масштабирования шрифтов для конкретных буферов, а также поддерживается прозрачность окон;
- Emacs можно запускать как демон, с возможностью быстрого подключения к нему;
- Поддержка dbus & zeroconf;
- множество изменений в поддержке различных языков;
- возможность задания локальных переменных для каталогов;
- большое количество новых пакетов (remember, ruby-mode, docview, easypg, ...) и обновления для старых пакетов

>>> http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg01526.html

★★★★★

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

>Угу, я уже посмотрел, как «отображает» PDF docview… Разочарован слегка, да (:

Нет, ну для небольших документов он сгодится, а для документов объема tesis, books как бы не очень. У меня много разных даташитов радиодетали и application notes. Обычно системы в наименовании у производителей нет. И вот лежит куча документов всяких типа an456.pdf -- что там? Из dired удобно было бы смотреть хотя бы первую страничку. Однако задача каталогизации всего и вся может быть решена и по-другому (но я не решал, а надо бы).

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

Наверно лучше будет "su username -c "emacs --daemon"", а то мало ли что.

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

> Ждём неделю Apple и MacOS? "И разверзлись хляби небесные..."

Скорее огонь и сера, как на Содом и Гоморру :-)

annoynimous ★★★★★
()

В этой версии сделали наконец табы (http://www.linux.org.ru/view-message.jsp?msgid=3766705)?

И появился ли вменяемый способ переопределить (напрочь) сочетания клавиш за 20 минут, а не 2 недели (и чтобы работало одинаково и в консоли, и под Иксами)? (http://www.linux.org.ru/view-message.jsp?msgid=3764675)

А мышь по умолчанию в консольной версии работает?

А как в этой версии с поддержкой Юникода? Поддерживается весь набор симолов или только часть? Если открыть — сохранить — закрыть файл с экзотическими символами — Емакс их не попортит тихонько?

А нормально реализованный режим вертикального перемещения курсора без рывков по горизонтали появился (как давно был в ДОС Навигаторе)? Или до сих пор предлагается пользоваться недоделанным picture mode (http://www.linux.org.ru/view-message.jsp?msgid=3744401)?



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

> А нормально реализованный режим вертикального перемещения курсора
> без рывков по горизонтали появился (как давно был в ДОС Навигаторе)?

Под виндой помнится у меня это получилось сделать без особых заморочек (scroll-conservatively и scroll-step ЕМНИП).
А в линуксе как я его не крутил.. В итоге пришлось нагугливать вот такое дело:

;; Smooth scrolling
(setq truncate-lines t)
 
(defun point-of-beginning-of-bottom-line ()
  (save-excursion
    (move-to-window-line -1)
    (point)))
(defun point-of-beginning-of-line ()
  (save-excursion
    (beginning-of-line)
    (point)))
(defun next-one-line () (interactive)
  (if (= (point-of-beginning-of-bottom-line) (point-of-beginning-of-line))
      (progn (scroll-up 1)
             (next-line 1))
    (next-line 1)))
(defun point-of-beginning-of-top-line ()
  (save-excursion
    (move-to-window-line 0)
    (point)))
(defun previous-one-line () (interactive)
  (if (= (point-of-beginning-of-top-line) (point-of-beginning-of-line))
      (progn (scroll-down 1)
             (previous-line 1))
    (previous-line 1)))

(global-set-key (kbd "<down>") 'next-one-line)
(global-set-key (kbd "<up>") 'previous-one-line)
(global-set-key (kbd "C-n") 'next-one-line)
(global-set-key (kbd "C-p") 'previous-one-line)

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

Я на многое из этого отвечал и считаю твои претензии нытьём
ниасилятора.

Из всех твоих замечаний любопытным кажется только особый режим
горизонтального перемещения. Если интересно, то такую функциональность
можно реализовать, декорировав функции `next-line/previous-line` (с
помощью `defadvice`). Впрочем, такой режим кажется мне деструктивным —
я бы не хотел, чтобы обычное перемещение курсора _изменяло_ текст в
моём буфере. Меня удивляет то, что кому-то нравится подобная
функциональность в этом твоём ДОС Навигатор.

> В этой версии сделали наконец табы


Дались же некоторым эти табы.

> А как в этой версии с поддержкой Юникода? Поддерживается весь набор

> симолов или только часть? Если открыть — сохранить — закрыть файл с

> экзотическими символами — Емакс их не попортит тихонько?


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

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

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

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

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

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

> Впрочем, такой режим кажется мне деструктивным — я бы не хотел, чтобы обычное перемещение курсора _изменяло_ текст в моём буфере

Не правильно поняли. Имеется ввиду virtual spaces, т.е. перемещать курсор так, как будто там пробелы, ничего не меняя в буфере. А вот как только из этого положения начинается редактирование редактор сразу сам добавляет столько пробелов, сколько нужно перед курсором.

kamre ★★★
()

У меня он с какого-то момента начал сегфолтиться. А вот я попробовал демон-мод:

$ emacs --daemon
("emacs")
Loading time...
Loading time...done
Loading tramp...
Starting Emacs daemon.
$ ps aux | grep emacs
andor 11916 20.3 0.7 47200 23700 ? Ss 05:05 0:00 emacs --daemon

Запустился, значит.

$ emacsclient -c
Waiting for Emacs...
$ ps aux | grep emacs

Куда-то делся..

$ emacs --version
GNU Emacs 23.0.9998.1

AnDoR ★★★★★
()

А на кофеварку его уже можно поставить?

MadCat
()

> Emacs is a file manager
> Emacs can read news, mail, and RSS feeds

> You can even play tetris in Emacs


> edit text


Каждая плохая программа стремится стать операционкой. ©

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

> как будто там пробелы

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

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

Я посмотрел на себя же. Результат: таки-да, — мне нахер не нужен в текстовом редакторе сборщик RSS, почтовый клиент, тетрис (ОМГ!), файловый менеджер.

Дальше превращать топик в мой диалог с вами было бы некрасиво. :)

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

По всякому пробовал запускать - в графике не стартует.

Пойду пересоберу с дебагом.

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

> ...считаю твои претензии нытьём
ниасилятора.

Я там ответил, когда вновь добрался до Инета :-)

Что значит осилить или не осилить? Можно осилить, привыкнув к сочетаниям клавиш и поведению программы. И поднастроить под себя немногое, не уходя далеко от умолчательного «look and feel» программы.

В большинстве случаев так и делают. Но в данном конкретном случае такое осиливание мне не нужно. Текстовый редактор — это программа, в которой мне приходится проводить очень много времени. И у меня есть свои привычки и предпочтения в работе с текстом.

Архитектура Емакса предполагает очень большую гибкость при настройке под себя. И я хотел использовать это свойство, чтобы тотально перенастроить программу под себя. Мне нужно всё как я хочу, а не так, как в Емаксе по умолчанию: нужно свои любимые сочетания клавиш, а не Емаксовые «распальцовки», свои любимые цвета, свои любимые методы перемещения по тексту, хорошая работа с несколькими кодировками кириллицы.

Теоретически Емакс всё это позволяет. Но на практике оказалось, что сильно перенастроить Емакс, далеко уйдя от установок по умолчанию — значит потратить кучу времени и добиться лишь частичного успеха.

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

Я потратил 2 недели и назначил около 34 сочетаний клавиш для иксовой версии. И несколько не смог — ну и ладно. Я сумел настроить почти всё так, как мне нравилось в других текстовых редакторах. Нашёлся даже режим резиновых таблиц резиновых таблиц а-ля «Слово и дело» (http://table.sourceforge.net/). Правда, без псевдографики. Нашлось и несколько очень приятных штук, которых больше нигде не видел. Например, опция (setq next-screen-context-lines 1).

Так что в принципе Емакс для меня уже почти юзабелен.

Однако мне нужны табы с поведением как в Firefox (а не как те, что есть для Емакса), нужна хорошая работа в консольной версии, такая поддержка Юникода, чтобы открытый и сохранённый файл не побился. С Юникодом в новом руководстве обещают порядок: «Internally, Emacs uses its own multibyte character encoding, which is a superset of the Unicode standard». А вот с остальным — как представлю, сколько времени надо убить, чтобы это заработало — и пока охота ковыряться отпадает.

Возможно, трата такого количества времени на настройку текстового редактора говорит о моей тормознутости :-)
Однако по-моему здесь есть и объективное обстоятельство: настройка неудобна! 5 (если правильно помню) способов определить сочетания клавиш, из которых ни один не даёт одинаковой работы в Иксах и консоли — это слишком!
Установки по умолчанию, относящиеся к каким-то 1980-м годам — это тоже слишком. Например, не работающая в консоли мышь. Почему я должен тратить время и искать, как включить её? Да ещё и разбираться, чем отличаются 2 способа её включения: что не работает в одном и что в другом. Неужели в начале 21 века у 99% пользователей нет мыши и поэтому сделана такая установка по умолчанию? Для кого она?
«Осиливать» можно многое, но зачем тратить время на такую ерунду?
Предвижу ответ: а зачем в 21 веке запускать Емакс в консоли? :-)
Если уж сделан консольный режим — надо, чтобы нормально работал. А не только был для галочки.

Почему в иксовой версии по умолчанию работают shift+стрелки, а в консольной — нет?

Почему до сих пор нет простых табов, удобство которых наконец осознала даже долго упрямившаяся MS в IE? (да, дались они мне :-) )

Можно сказать, что менять настройки по умолчанию от версии к версии, следуя за модой — плохой стиль. Это нехорошо по умолчанию к постоянным пользователям. Но что мешает при первом старте спросить: вам как в 1970-х, 1980-х, 1990-х, 2000-х? Делов-то.






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

Поставил версию 23.1. В целом приятнее старой. И они сделали то, что можно использовать вместо табов — speedbar! Может, я его просмотрел в прошлой версии. Это именно то, что мне надо. Если попросить speedbar показывать не файлы, а буфера, то он даёт удобный список всех буферов. Прямо как нормальная панель табов, только вертикальная. Прекрасная штука!

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

> Неужели в начале 21 века у 99% пользователей нет мыши и поэтому сделана такая установка по умолчанию? Для кого она?

Ты не понимаешь. Это сделано по той же самой причине, по какой FVWM имеет уродскую дефолтную тему. Элитарность. Если человек любит мышь - Emacs ему просто не нужен.

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

> Элитарность

установленный Emacs дает +9001 к самомнению и -9001 к способности выбирать вменяемый инструмент для работы

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

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

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

> Почему до сих пор нет простых табов,

Наверное, потому, что из всех людей, умеющих писать код на Emacs Lisp,
никому до сих пор не понадобились в Емаксе табы в такому виде, каком
хочется тебе. Почему так — не знаю. Возможно потому, что Емакс
encourages having *много* открытых буферов, так что желаемое тобой
«Чтобы всегда было видно всё, что есть» приведёт к феерическому срачу.

Кроме того, как я уже говорил, в модели GNU Emacs нет места, куда
можно впихнуть панельку *над всеми* прочими окнами. Например, в Emacs
сейчас нельзя сделать несколько панелей меню или несколько панелей с
кнопочками.

Впрочем, если тебе нравится Speedbar, то хорошо :)

> Делов-то


Тысячи переменных и функций, которые меняют поведение редактора.

Сложность — плата за полную настраиваемость.

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

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

> отличаются 2 способа её включения: что не работает в одном и что в

> другом. Неужели в начале 21 века у 99% пользователей нет мыши и

> поэтому сделана такая установка по умолчанию? Для кого она?


Возможно, xt-mouse и t-mouse по умолчанию не включены, потому что
считается, что в консоли/терминале мышкой юзер не возит. Можно
попробовать обсудить изменение дефолтной настройки на «вкл.»

Нужный пункт мануала находится по слову «mouse» прямо из оглавления.
Ты правда долго искал это?

Sphinx ★★☆☆
()

А новые версии все выходят и выходят, а гюлки скроллинга все остаются и остаются. Эх...

http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1089 (там пара очепяток - не 633Gb а Mb, конечно)

Тут выше скрипт приводили - еще больше глючит.

<с горя пошел пить йаду...>

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

>Скажи честно, как долго после этого ты был похож на свою аватарку?

После этого я и выбрал максимально похожую на меня аватарку. :Р

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

> Нужный пункт мануала находится по слову «mouse» прямо из оглавления.
> Ты правда долго искал это?


Ну, минут 15 я с этим провозился. Весьма неприятно возиться так с каждой мелочью, которая вообще-то должна работать «из коробки».

Кстати, про speedbar в консоли. Попробуйте повторить вот это:

Запускаем konsole.
Там emacs -nw
Там жмём то, что называется M-x и включаем xterm-mouse-mode.
Тыкаем меню Options → Show/Hide → Speedbar.

У меня он при этом не включается.

Ещё раз Options → Show/Hide → Speedbar — не включается.
Ещё раз Options → Show/Hide → Speedbar — включается!

Только у меня Speedbar такой упрямый и его надо просить включиться 3 раза?

И ещё ньюанс. И Винда, и Иксы позволяют использовать не только shift для смены набора вводимых с клавиатуры символов, но ещё и AltGr (правый Альт). Мне простого набора символов и набора с шифтом не хватает, поэтому я настроил использование ещё и третьего набора с AltGr. Очень удобно для ввода всяких не часто, но и не очень редко используемых символов типа «·», «„», «“», «°», «§», «±», «≈», «⌀», стрелок.

В смысле, в конец /etc/X11/xkb/symbols приписано (и настроено в xorg.conf):

partial alphanumeric_keys
xkb_symbols "feo" {
include "ru(basic)"
name[Group1]= "Russia - Feo";
...
key <TLDE> { [ question, asterisk, periodcentered ] };
key <AE01> { [ exclam, 1, 0x01000301 ] };
...
include "level3(ralt_switch)"
};

Так вот, все нормальные программы вроде Firefox или OpenOffice это понимают. Например, при нажатии AltGr+~ в Firefox вводится «·». А Емакс (как консольный в konsole, так и иксовый) умудряется перехватывать AltGr как свою «Мету»
и пишет «M-? is undefined».

Кто-нибудь ещё пользуется AltGr?

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

> в Emacs сейчас нельзя сделать несколько панелей меню или несколько
> панелей с кнопочками.


Я уверен, что лет через 10 это появится. Емакс всё-таки идёт вслед за общими тенденциями, только очень неповоротливо и с отставанием на много лет. Например, сглаживание шрифтов появилось, но со значительным отставанием.

>> Делов-то

> Тысячи переменных и функций, которые меняют поведение редактора.

> Сложность — плата за полную настраиваемость.


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

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

> Возможно, xt-mouse и t-mouse по умолчанию не включены, потому что
> считается, что в консоли/терминале мышкой юзер не возит. Можно

> попробовать обсудить изменение дефолтной настройки на «вкл.»


Мало того, считается, что если юзер потратил время и добрался до xterm-mouse-mode, то он должен потратить ещё время и разобраться, почему же не заработало колёсико :-) По документации, xterm-mouse-mode "only
works for simple uses of the mouse. Basically, only non-modified
single clicks are supported". Что же, за столько лет Емакс не научился работать с мышью в эмуляторе терминала?

Это в konsole под Иксами. А в «настоящей» консоли в режиме gpm-mouse Емакс требует времени на разбирательство с неработающим меню с сообщением «<nil> <mouse-1> is undefined». Хотя в остальном <mouse-1> неплохо работает.

Время, время, время... Причём на ерунду :-(

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

> В смысле, в конец /etc/X11/xkb/symbols приписано (и настроено в
> xorg.conf):


Я в этом не разбираюсь. Нестандартные символы ввожу с помощью Compose
Key, всё работает. Скорее всего, ты наблюдаешь баг.

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

> Скорее всего, ты наблюдаешь баг.

По большинству обсуждаемых вопросов я уже отправил bug-report'ы. Посмотрим, что будет :-)

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

Кстати, а где можно посмотреть, дошёл ли bug report?

То, что я послал обычным e-mail'ом, я нашёл на http://lists.gnu.org/archive/html/bug-gnu-emacs/2009-08/index.html (баг 4003).

А вот всё остальное, что посылал встроеным отправщиком Емакса (M-x report-emacs-bug), не пойму где посмотреть.

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

komintern@kwcenter:~$ emacs --daemon
("emacs")
Starting Emacs daemon.

Типа демон запустился, в процессах есть:

komintern@kwcenter:~$ ps uax | grep emacs
1004      8256  1.6  0.7  20860  7600 ?        Ss   09:18   0:00 emacs --daemon
1004      8258  0.0  0.0   2016   732 pts/3    R+   09:18   0:00 grep emacs
komintern@kwcenter:~$ emacsclient -c
Waiting for Emacs...

Окошко появилось, все нормально. Выхожу C-x 5 0
Демона нет:
komintern@kwcenter:~$ ps uax | grep emacs
1004      8263  0.0  0.0   2016   732 pts/3    R+   09:18   0:00 grep emacs

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

Странно, уже месяца два активно пользуюсь этим функционалом, всё работает так как надо. Emacs из CVS.

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

Правильно. Неработающий с первого раза Speedbar в консоли — тоже
жуткий баг. Что-то сломано в функции `dframe-frame-mode`.

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

> M-x report-emacs-bug отсылает сообщение в обычную «багзиллу» Емакса.

Нет, он поступает с ними проще: отсылает в /dev/null. Вот куда ушла, оказывается, большая часть моих bug-report'ов.

Делаем так:
1. Запускаем Емакс (иксовый).
2. M-x report-emacs-bug.
3. Bug subject: test2.
4. Набираем в bug-report'e среди прочего «test2».
5. Отключаем сеть. ifconfig eth0 down или что угодно — лишь бы не работала.
6. Нажимаем в Емаксе C-c C-c.
7. На вопрос «Send this bug report to the Emacs maintainers? (yes or no)» отвечаем «yes». Емакс пишет «Sending...done». И это при откровенно не работающей сети!
8. Может, он куда-то его отложил для отсылки потом? Ищем в ~ и /tmp по сочетанию «test2» и не находим составленного bug report'а. Вывод: bug report успешно отправлен в /dev/null, о чём и заявлено фразой «Sending...done». Т.е. сообщения об ошибках закрываются быстро и эффективно, даже не доходя до разработчиков. А я писал, тратил время... :-(

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

> Кто-нибудь ещё пользуется AltGr?

Не пользуюсь, но хочу. Гуру мне не откажется прояснить что нужно настроить в xorg.conf? (могу осилить, но очень не хочется рыть гору доков)

По поводу же поведения емакса - это вполне объяснимо, редактор, поведение которого завязано на беешном количестве сочетаний клавиш не мог вести себя по-другому. Гораздо больше людей пользуются обоими альтами для набора сочетаний, чем тех которые пользуются подобными конфигурациями иксов. Думаю,в VIM такой проблемы нет. Если есть, жалуйся, думаю, что найду как исправить. Все-таки по части емакса я полный неосилятор, так и не понял прелесть работы в нем. VIM, в котором <esc> перебинден на что-нибудь поближе, типа C-c или б-гомерзкую winkey позволяет редактировать ч-либо гораздо быстрее. В сочетании с lyx-подобными макросами к tex и шаманством с ~/.vimrc он даже текстовый процессор вполне заменяет.

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