LINUX.ORG.RU

Вышел emacs 24.4

 


1

4

Тихо и незаметно обновилась версия удобного и функционального текстового редактора emacs.

Основные изменения:

  • встроенный веб-браузер (M-x eww);
  • улучшенная поддержка нескольких мониторов и полноэкранного режима;
  • механизм «электрических» (Electric) отступов теперь действует по умолчанию;
  • поддержка сохранения и восстановления состояния фреймов и окон;
  • поддержка электронной подписи для пакетов Emacs Lisp;
  • новый механизм «подсказки» (advice) для Emacs Lisp;
  • файловая поддержка уведомлений (File notification support ?);
  • попиксельное изменение размера для фреймов и окон;
  • поддержка меню в текстовых терминалах;
  • новый режим для работы с прямоугольными фрагментами (С-x пробел);
  • и многое, многое, многое, многое, многое... (C-h n).

>>> анонс

★★★★★

Проверено: Shaman007 ()
Последнее исправление: fallout4all (всего исправлений: 5)
Ответ на: комментарий от Gotf

Соврал. Не 18.59, а всё же 21.2, собранный в 2003. Эти четыре строчки замечательно там работают. Больше не слушай тех, кто рассказывает про ядра редакторов и семидесятые.

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

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

----

Я беру свежезаписанную загрузочную флешку с Ubuntu Desktop 14.04.1 i386 и загружаюсь с неё в режиме Try Ubuntu. (Полагаю, что это достаточно типичный сценарий новичка, и что поведение свежеустановленной системы не сильно отличается от live CD. i386, потому что эксперимент проводится на Asus EeePC 901, потому что влом основную машину гасить.)

Исходное положение: установлена только английская раскладка.

Тыкаю в панели значок [En], выбираю из меню Text Entry Settings.

Нажимаю кнопку [+] слева внизу, выбираю Russian, Add.

Переключение по умолчанию настроено на Super+Space и Shift+Super+Space. Меняю на Caps Lock. Закрываю окно настроек.

Запускаю gedit, проверяю, что ввод латиницы, переключение, ввод кириллицы и переключение обратно в принципе работают. (Как работает переключение, мне не нравится — после переключения на пару секунд отображение вводимых символов залипает. Но нажатия не теряются.)

Запускаю gnome-terminal, проверяю, что там тоже работает. И в xterm’е тоже, то есть тулкит не важен.

$ setxkbmap -query
rules: evdev
model: pc105
layout: us

Интересное кино, а где кириллица и почему всё работает?

$ [Caps] [Up] [Enter]
rules: evdev
model: pc105
layout: ru,us
variant: ,

Ага, то есть эта новомодная переключалка не держит в xkb две группы постоянно, а динамически добавляет/убирает русскую раскладку на первом месте. Не понимаю, зачем так сделано, но работает.

$ sudo apt-get install emacs

$ emacs

q # Закрываю Welcome

qwe[Caps]asd[Caps]zxc
=> qweфывzxc

Проверяю ввод латиницы и кириллицы в Emacs’е, и, о чудо, всё работает, без каких-либо дополнительных настроек.

C-h C-a # Help|About Emacs

Emacs 24.3.1 (i686-pc-linux-gnu, GTK+ Version 3.10.7) of 2014-03-07 on toyol, modified by Debian

C-x C-c

----

Теперь попробуем классический (не нубский) способ настройки раскладок.

Возвращаю настройки текстового ввода обратно в дефолты (так же через иконку в панели). Убираю иконку.

$ setxkbmap us,ru , grp:caps_toggle

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

$ emacs

q

qwe[Caps]asd[Caps]zxc
=> qweфывzxc

И тут работает!

C-x C-c

Что Я Делаю Не Так? (И нет, дело не в Unity, потому что на основной машине у меня что-то схимеренное из Xubuntu с i3, с настройкой раскладок из xorg.conf.d по-разному для двух подключенных клавиатур. Короче, под низом всё равно xkb.)

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

В случае включённой русской раскладки работают ли стандартные клавиатурные комбинации? Типа ^s?

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

Да, у меня тоже аналогичный костыль воткнут и я не вижу, что можно с этим сделать в рамках архитектуры Emacs’а.

Ну то есть я добавляю в key-translation-map пары вида C-й → C-q, M-й → M-q и C-M-й → C-M-q, но шорткаты вида C-c x так заставить работать нельзя.

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

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

А как сделать так, чтобы и индекатор переключалки emacsовый (IMHO очень удобен) правильно реагировал на внешнюю переключалку?

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

Есть ещё одна проблема: в emacs я использую обычно немного изменённую раскладку, так что когда дёргается внешняя переключалка включается не внутренняя, а внешняя раскладка, что может приводить к некоторым затыкам при наборе.

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

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

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

Сделал проще:

~/.emacs

(setq current-language-environment "UTF-8"
      default-input-method "russian-computer")

(set-input-method "russian-computer" nil)

(inactivate-input-method)

(setenv "XMODIFIERS" "@im=uim")
(setenv "GTK_IM_MODULE" "uim")
(setenv "QT_IM_MODULE" "uim")

~/.uim


(define default-im-name 'm17n-ru-kbd)
(define-key generic-on-key? "<Control>\\")
(define-key generic-off-key? "<Control>\\")

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

Понятия не имею. Индикатор раскладки должен быть физическим светодиодом на периферии зрения, а не надписью в окне приложения. Опять-таки IMHO, разумеется.

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

В emacs статусная строка довольно информативна. Так что на неё в любом случае смотришь. Это не отменяет светодиода. Все способы для облегчения жизни должны быть запользованы.

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

Я не всегда могу управлять системной раскладкой. .emacs же можно легко перетащить.

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

На С-ч и есть гораздо более эргономичный костыль: список окон вызывать какой-нибудь клавишей попроще.

(defun yk-ibuffer-jump ()
  «Open ibuffer with cursor pointing to most recent buffer name»
  (interactive)
  (let ((recent-buffer-name (buffer-name)))
    (ibuffer)
    (ibuffer-jump-to-buffer recent-buffer-name)))

(global-set-key (kbd «M-S-<right>») 'tabbar-forward-tab)
(global-set-key (kbd «M-S-<left>») 'tabbar-backward-tab)
(global-set-key (kbd «M-S-<down>») 'yk-ibuffer-jump)
(global-set-key (kbd «M-S-<up>») 'dired-jump)

P.S. кому багрепорт слать про автотипографирование кавычек в коде?

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

На С-ч и есть гораздо более эргономичный костыль: список окон вызывать какой-нибудь клавишей попроще.

У меня биндингов на три экрана, куда мне их…

код

Если я правильно понимаю, оно юзает вкладки типа как в зимаксе?

P.S. кому багрепорт слать про автотипографирование кавычек в коде?

На конюшню дедушке.

deterenkelt
()

Вот скоро Тарруда доведет neovim до ума. Вкорячит нативно lua вместо vim script, добавит асинхронщину и разделит редактор на ядро и (любой подключаемый) gui. Вот тогда и заживем. Вот тогда и можно будет журить емаксеров)

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

дело не английском а в том что вырванная из контекста глава не дала мне ответов.

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

Зачем scheme? Лучше латынь. И язык поживее и скобочек меньше)

Программисты 1С шутят?

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

За 6 месяцев либо крепко подсаживаешься на Вим, либо каждый раз лезешь в ман за кнопкой «Выйти». Ну, а «попробывал» - это такое специальное слово, по которому можно узнать школьника-неосилятора. Так, что нет, твоя стори совсем не саксесс.

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

За 6 месяцев либо крепко подсаживаешься на Вим, либо каждый раз лезешь в ман за кнопкой «Выйти». Ну, а «попробывал» - это такое специальное слово, по которому можно узнать школьника-неосилятора. Так, что нет, твоя стори совсем не саксесс.

кококо, лор-оналитеги отакуе.

anonymous
()

emacs перестал быть годным редактором?

конец 2014. поддержки c++11 досихпор нет? Похоже сдох.

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

рассажи ка что виме можно неосилить? Казалось бы, он прост как табуретка.

Ползать на четвереньках тоже просто, так что не аргумент.

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

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

Ты что сказать-то хотел?

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

И еще там опечатка. Имелось в виду:: «рассажи ка что в виме можно неосилить?»

Теперь, поняв, объёсняйте: что же в виме можно не осилить.

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

«рассажи ка что виме можно неосилить?» - это просьба в форме вопроса

А утверждение «табуреточная простота vim - не причина, чтобы продолжать им пользоваться после осиливания» - это просто утверждение.

tailgunner ★★★★★
()

Обновил на маке, всё путём. Отлично.

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

Теперь, поняв, объёсняйте: что же в виме можно не осилить.

Ну настрой мне в vim многоклавишные комбинации типа Ctrl-c, g, i

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

ой, а как ты узнал, что я Петя? Ты меня по ай пи вычислил, да?

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

nnoremap <C-c>gi :echo PSHHH PSHHH<CR>

Ха-ха-ха.

Хорошо пошутил.

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

Дык вроде давно уже есть решение с применением ibus

Я переключаю CapsLock-ом

Где-то в стартовых скриптах:

xmodmap -e 'clear Lock'
xmodmap -e 'keycode 66 = F33'
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="xim"
ibus-daemon -d -x -r

В настройках ibus настраиваем переключалку на F33

в .emacs


  (load "leim-list")
  (load "quail/cyrillic")

 ....

  (global-set-key [f33]  (lambda ()
			     (interactive)
			     (toggle-input-method)))
  (define-key isearch-mode-map [f33] (lambda ()
					 (interactive)
					 (isearch-toggle-input-method)))
EM
()
Ответ на: комментарий от EM

Еще:

~/.bashrc

 
    ...
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE="ibus"
#export GTK_IM_MODULE="xim"
export QT_IM_MODULE="xim"
     ...

~/.Xdefaults

 
     ...
Emacs*useXIM:false
      ...
 

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

Спасибо за советы.

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

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

Все конфиги и плагины байт-компилированы.

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