Конфигурация (x)emacs (вопросы и обмен полезностями)

Модератор: /dev/random

Kostafey
Сообщения: 19
ОС: OpenSuSE/WinXP

Re: Конфигурация (x)emacs

Сообщение Kostafey »

При установке скроллинга по одной строке

Код: Выделить всё

(setq scroll-step 1)


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

В других редакторах я такого не наблюдал (независимо от размера
файла)

Можно ли это исправить в emacs?
Спасибо сказали:
Аватара пользователя
sidd
Сообщения: 667
ОС: Slackware 13.37

Re: Конфигурация (x)emacs

Сообщение sidd »

Попробовал писать на PHP в Emacs'е с php-модом. Не нравится, что Emacs пытается сам выравнивать строки на свой лад. У меня стиль написания кода не такой, и поэтому такое автоматическое выравнивание только мешает. Можно ли его как-то отключить?
Patrick is God.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Конфигурация (x)emacs

Сообщение t.t »

sidd писал(а):
07.10.2008 20:59
Попробовал писать на PHP в Emacs'е с php-модом. Не нравится, что Emacs пытается сам выравнивать строки на свой лад. У меня стиль написания кода не такой, и поэтому такое автоматическое выравнивание только мешает. Можно ли его как-то отключить?

По хорошему его нужно не отключить, а перенастроить под свой стиль.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sidd
Сообщения: 667
ОС: Slackware 13.37

Re: Конфигурация (x)emacs

Сообщение sidd »

t.t писал(а):
07.10.2008 22:01
sidd писал(а):
07.10.2008 20:59
Попробовал писать на PHP в Emacs'е с php-модом. Не нравится, что Emacs пытается сам выравнивать строки на свой лад. У меня стиль написания кода не такой, и поэтому такое автоматическое выравнивание только мешает. Можно ли его как-то отключить?

По хорошему его нужно не отключить, а перенастроить под свой стиль.

А кто эти манипуляции выполняет: php-mode или сам Emacs? А то не знаю, что именно нужно перенастраивать.
Patrick is God.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Конфигурация (x)emacs

Сообщение t.t »

sidd писал(а):
07.10.2008 22:52
А кто эти манипуляции выполняет: php-mode или сам Emacs? А то не знаю, что именно нужно перенастраивать.

Навскидку не помню, но "раскопки" я бы начал из точки "C-h a indent".
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
h1t
Сообщения: 44
ОС: Emacs 23.0.0

Re: Конфигурация (x)emacs

Сообщение h1t »

не знаю какой php-mode вы пользуетесь.
я посмотрел код этого варианта: http://php-mode.sourceforge.net/

Там php-mode наследуется от c-mode.
А в c-mode отступ настраивается так:
наводишь курсор на начало конструкции
и вызываешь функцию c-show-syntactic-information
Т.е. набираешь:
M-x c-show-syntactic-information RET

В минибуфере отобразится название данной конструкции.
Потом набираешь
M-x customize-variable RET c-offsets-alist RET
ищешь свою конструкцию и выставляешь ей нужную величину отступа
затем сохраняешь все это в сессии или в файл
Спасибо сказали:
Bender
Сообщения: 81
ОС: Ubuntu 11.04 amd64

Re: Конфигурация (x)emacs

Сообщение Bender »

Подскажите пожалуйста. Вот как сделать так, чтобы файлы открывались в уже запущенном емаксе. Я знаю такой способ: открываем емакс, там включаем режим сервер, потом пользуемся emacsclient. Но вот что неудобно, во-первых набирать каждый раз emacsclient, а во-вторых — терминал остаётся занятым (& в конце тоже не очень удобно, если терминал убить то закроется и приложение). Может можно как-то попроще или ещё какие-то способы есть? Что-то мне кроме клиента-сервера ничего не попалось.
Спасибо сказали:
Аватара пользователя
Horrible
Сообщения: 256
Статус: Emacs geek
ОС: Emacs
Контактная информация:

Re: Конфигурация (x)emacs

Сообщение Horrible »

А вы не пробовали хотябы emacsclient --help читать? В этом вопросе не разобраться - это недостойно пользователя Emacs.
во-первых набирать каждый раз emacsclient

Вас смущает длинная команда? Ну сделайте себе alias.
терминал остаётся занятым

emacsclient -n если память не изменяет (нет емакса под рукой) - в man emacsclient всё написано.
Спасибо сказали:
h1t
Сообщения: 44
ОС: Emacs 23.0.0

Re: Конфигурация (x)emacs

Сообщение h1t »

В emacs была добавлена новая фича
multi-tty
Она позволяет создать один instance emacs
как сервер и кучу клиентов этого сервера
как в терминале так и в отдельных иксовых окнах
у меня это работает так:
при логине запускается сервер в скрине:

screen -dmS "emacs" emacs -nw

Этот емакс висит как демон и ни от кого
не зависит
Если мне нужно емакс в иксовом окне
я запускаю
emacsclient -c
работаю в этом окне и закрываю его
Если нужно вызвать емакс из консоли то
emacsclient -t

Плюсы такого подхода:
1. инициализация емакса происходит один раз.
я даже не компилирую .emacs, потому что
раз в день могу подождать. Клиенты
запускаются мгновенно.
2. Защита от случайного закрытия. Все клиенты
при закрытии не закрывают сервер. Даже если
иксы подвисают и X server приходится перезапускать,
то редактор все равно продолжает работать!!!
3. Все запущенные клиенты разделяет между собой все настройки
и буферы. Т.е. можно сохранить в одном клиенте регион
и вставить его в другом, открыть файл в одном и редактировать
в другом и.т.д.

Чтобы узнать работает ли все это в вашем emacs достаточно
посмотреть переменную features
C-h v features RET
и в окне хелпа искать multi-tty
Если такой фичи нет, то берите емакс из cvs

Если такая фича есть то ваша проблема решается командой:
emacsclient -nc file-name
здесь 'c' это запуск фрейма, 'n' это не ждать окончания операции
Спасибо сказали:
Аватара пользователя
Horrible
Сообщения: 256
Статус: Emacs geek
ОС: Emacs
Контактная информация:

Re: Конфигурация (x)emacs

Сообщение Horrible »

В emacs 23 есть --daemon - никакой скрин и -nw не нужны, просто запускаешь emacs --daemon и потом создаешь фреймы: emacsclient -c
Спасибо сказали:
Bender
Сообщения: 81
ОС: Ubuntu 11.04 amd64

Re: Конфигурация (x)emacs

Сообщение Bender »

А вы не пробовали хотябы emacsclient --help читать? В этом вопросе не разобраться - это недостойно пользователя Emacs.

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

Вас смущает длинная команда? Ну сделайте себе alias.

про алиас на следующий день вспомнил, когда конфиги баша правил :D

всем спасибо за советы, попробую!
Спасибо сказали:
Аватара пользователя
russians
Сообщения: 16
ОС: Debian 4.0 etch

Re: Конфигурация (x)emacs

Сообщение russians »

Добрый день. У меня вопрос:
как связать событиями два буфера в emacs?
Пример: есть ростер в jabber.el. Когда нажимаешь на контакте, окно диалога с ним отображается в другом буфере, который отображается вертикально с предыдущим, при этом первый буфер не убирается с экрана.
И так далее в том же духе.
Спасибо сказали:
ponimas
Сообщения: 1

Re: Конфигурация (x)emacs

Сообщение ponimas »

вот в этом топике h1t написал
8. Messenger. Пользуюсь тремя видами: локальный чат в офисе, icq и jabber
сделал один интерфейс ко всем ним. идею оформления взял с jabber.el
Мне понравилась там оповещение - выводится имя того кто отправил сообщение
в статусной строке. Этот текст может обрабатывать события мышки: например
при нажатии на нем открыть окно чата с этим челом.
Клиент локального чата написан на С. Emacs просто ждет вывода от процесса
и делает то что нужно. ICQ и jabber сделаны через d-bus оповещение с pidgin'ом.
(гуи pidgin'а не нужен. я запускаю его консольный вариант finch в screen'е)
В новом емаксе ввели поддержку d-bus. но если бы не ввели то можно было бы
написать С программу которая бы слушала события и запустить ее из emacs.

Интерисует реализация этого интерфейса к финчу.
Спасибо сказали:
Аватара пользователя
black_wizard
Сообщения: 37
ОС: Ubuntu Linux 8.10

Re: Конфигурация (x)emacs

Сообщение black_wizard »

Помощь по Qt'шным объектам через Assistant

Код: Выделить всё

(defun qt-help ()
  (interactive)
  (if (get-process "qtassistant")
    (lambda())
    (start-process-shell-command "qtassistant" nil "assistant" "-enableRemoteControl")
  )
  (process-send-string "qtassistant" (concat "setSource qthelp://com.trolltech.qt.442/qdoc/" (downcase (current-word)) ".html\r"))
  (process-send-string "qtassistant" "syncContents\r")
)

(global-set-key (kbd "C-c h") 'qt-help)


З.Ы. У меня Qt 4.4.3. У других версий может быть другой URL.
hp nx8220 || Slackware 11 || icewm 1.2.28 Slackware 12 || icewm 1.2.27 XFCE 4.4.2
JID: black_wizard@unsorted.ru
Спасибо сказали:
Аватара пользователя
baldman88
Сообщения: 233

Re: Конфигурация (x)emacs

Сообщение baldman88 »

Подскажите, пожалуйста, как решить следующую проблему :
после запуска emacs --daemon всё хорошо работает, но когда пытаюсь выключить или перезагрузить машину средствами Х-ов -- последние виснут намертво. Приходиться переключаться на текстовый терминал и уже оттуда делать ребут.
Спасибо сказали:
Аватара пользователя
ishitori
Сообщения: 502
ОС: gentoo -> archlinux

Re: Конфигурация (x)emacs

Сообщение ishitori »

подскажите, пожалуйста, -- я уже совсем измучился...

emacs 22.3-r2. поставил jde 2.3.6.
добавил в jde-sourcepath папку с проектом и исходники sun-jdk-1.6.0.13.
при попытке найти определение любого стандартного класса или его метода (symbol definition -- C-c C-v C-y) получаю ошибку

Could not find \bLinkedList\b in LinkedList.java


это, соответственно, при попытке открыть исходник с классом LinkedList. при этом сам файл jde открывает, но не может найти внутри него нужный метод (в данном случае -- конструктор). после этого предлагает открыть определение класса Object.
функция, которая вызывается по C-c C-v C-y, -- jde-open-jump-to-class из файла jde-open-source.el.
но в чем может быть проблема, я пока понять не могу.
морнинг круассан..
Спасибо сказали:
Аватара пользователя
SSDD
Сообщения: 157
ОС: linux
Контактная информация:

Re: Конфигурация (x)emacs

Сообщение SSDD »

подскажите, плиз, к в emacs cc mode осуществлять переход от начала к концу блока(от { к }) , типа как % в vi
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Конфигурация (x)emacs

Сообщение kamre »

SSDD писал(а):
14.07.2009 13:00
подскажите, плиз, к в emacs cc mode осуществлять переход от начала к концу блока(от { к }) , типа как % в vi


Команды forward-sexp и backward-sexp переходят по блокам (выражениям), у меня дефолтные настройки и это комбинации C-M-f и C-M-b соответственно. Еще можно переходить сразу по функциям в c-mode через команды c-begin-of-defun и c-end-of-defun (C-M-a и C-M-e соответственно).
Спасибо сказали:
Аватара пользователя
SSDD
Сообщения: 157
ОС: linux
Контактная информация:

Re: Конфигурация (x)emacs

Сообщение SSDD »

о, атлична, пасиб! =) в c-mode комбинации C-M-f и C-M-b переопределены зачемто =( , навесил на M-[ и M-] все норм заработало =)

еще вапрос, как реализовать поиск выделенного фрагмента?
Спасибо сказали:
Kostafey
Сообщения: 19
ОС: OpenSuSE/WinXP

Re: Конфигурация (x)emacs

Сообщение Kostafey »

Подскажите как настроить одновременное использование
двух словарей (русского и английского) Aspell в Emacs?

Тут обсуждался этот вопрос:
http://www.linux.org.ru/view-message.jsp?msgid=2446507
однако, я так и не смог понять как настроить одновременную работу словарей.

Версии ПО:
* GNU Emacs 23.1.50.1 (i386-mingw-nt5.1.2600)
* International Ispell Version 3.1.20 (but really Aspell 0.50.3)

Фрагмент .emacs:

Код: Выделить всё

(setq-default ispell-program-name "aspell")
(setq ispell-dictionary "english")
(setq ispell-local-dictionary "russian")
(setq flyspell-default-dictionary "russian")


При таких настройках

M-x ispell-buffer проверяет правильно только русский текст английский текст распознается как ошибка, варианты замены не предлагаются.

flyspell-mode проверяет русский текст, английский игнорирует.

В упомянутой выше ветке предлагают использовать ispell-multi

http://www.dur.ac.uk/p.j.heslin/Software/E...ispell-multi.el

Располагаем файл ispell-multi.el в load-path

Фрагмент комментариев из ispell-multi.el:

Код: Выделить всё

;; If all you want to do is to change the behavior of ispell so that
;; it uses multiple ispell processes for different buffers, then
;; (require 'ispell-multi) is all you need to do.


Добавление этой (require 'ispell-multi) строчку в конце фрагмента .emacs:

Код: Выделить всё

(setq-default ispell-program-name "aspell")
(setq ispell-dictionary "english")
(setq ispell-local-dictionary "russian")
(setq flyspell-default-dictionary "russian")
(require 'ispell-multi)


не изменяет поведение, добавление (require 'ispell-multi) в начале фрагмента .emacs приводит к следующим ошибкам:

M-x ispell-buffer

Код: Выделить всё

Starting new Ispell process [english] ...
apply: Creating process pipe: no error


M-x flyspell-mode

Код: Выделить всё

Starting new Ispell process [english] ...
Enabling Flyspell mode gave an error
Спасибо сказали:
Аватара пользователя
forkjoin
Сообщения: 73
ОС: OpenSuse 11.2

Re: Конфигурация (x)emacs

Сообщение forkjoin »

Здравствуйте. Подскажите, пожалуйста, встроенную лисповскую функцию, которая создает новую строку и вставляет туда содержимое текущей строки. Или такую феньку придется писать самому?
Спасибо.
SPECCTRA forever!!!
IO/Designer forever !!!
Спасибо сказали:
Аватара пользователя
baldman88
Сообщения: 233

Re: Конфигурация (x)emacs

Сообщение baldman88 »

forkjoin, может я неправильно понял, но посмотрите здесь
Спасибо сказали:
Аватара пользователя
forkjoin
Сообщения: 73
ОС: OpenSuse 11.2

Re: Конфигурация (x)emacs

Сообщение forkjoin »

Попробую задать вопрос по другому.

Код: Выделить всё

(defun clone-line()
  (interactive)
  (move-beginning-of-line 1)
  (push-mark)
  (move-end-of-line 1)
  (kill-ring-save (mark) (point))
  (newline)
  (move-beginning-of-line 1)
  (yank))

Есть ли в емаксе родная функция, делающая то же самое, или мне придется использовать свою самопальную?
SPECCTRA forever!!!
IO/Designer forever !!!
Спасибо сказали:
Аватара пользователя
forkjoin
Сообщения: 73
ОС: OpenSuse 11.2

Re: Конфигурация (x)emacs

Сообщение forkjoin »

Понятно. Всем спасибо. Буду использовать самопальную.
SPECCTRA forever!!!
IO/Designer forever !!!
Спасибо сказали:
h1t
Сообщения: 44
ОС: Emacs 23.0.0

Re: Конфигурация (x)emacs

Сообщение h1t »

Код: Выделить всё

(defun my-func ()
  (interactive)
  (kill-whole-line)
  (yank)
  (yank))
Спасибо сказали:
Аватара пользователя
forkjoin
Сообщения: 73
ОС: OpenSuse 11.2

Re: Конфигурация (x)emacs

Сообщение forkjoin »

Гениально :) Спасибо, не знал такой команды.

ЗЫ. Ось у Вас замечательная. Осталось подобрать хороший текстовый редактор :)
SPECCTRA forever!!!
IO/Designer forever !!!
Спасибо сказали:
Аватара пользователя
forkjoin
Сообщения: 73
ОС: OpenSuse 11.2

Re: Конфигурация (x)emacs

Сообщение forkjoin »

Если набираю текст на русском, не работают горячие клавиши. Чтобы что-нибудь скомандовать, необходимо переключиться на англ. раскладку. А потом - обратно на русскую, чтобы продолжать ввод. Что делать? Смириться?
Спасибо.
SPECCTRA forever!!!
IO/Designer forever !!!
Спасибо сказали:
h1t
Сообщения: 44
ОС: Emacs 23.0.0

Re: Конфигурация (x)emacs

Сообщение h1t »

использовать переключалку emacs
это позволит в каждом буфере иметь свою раскладку
у меня например буфер для общения по jabber открывается (или создается) с русской раскладкой
и я сразу набиваю там текст

а средствами вашего оконного менеджера можно сделать так чтобы
при открытии окна емакса иксовая раскладка переключалась на английскую
или как в винде для каждого окна сохранялось значение раскладки
Спасибо сказали:
Аватара пользователя
forkjoin
Сообщения: 73
ОС: OpenSuse 11.2

Re: Конфигурация (x)emacs

Сообщение forkjoin »

Спасибо, идея понятна. Но нельзя ли пару слов про переключалку емакс? Или где прочитать. Вроде бы и библию читаю, но про нее что-то не встречал ничего. Намекните, я понятливый :)
SPECCTRA forever!!!
IO/Designer forever !!!
Спасибо сказали:
Аватара пользователя
forkjoin
Сообщения: 73
ОС: OpenSuse 11.2

Re: Конфигурация (x)emacs

Сообщение forkjoin »

Вопрос вдогонку. В emacs в иксах в shell-буфере сообщения оболочки отображаются зюками. А в консольном emacs все в порядке. Куда копать?
SPECCTRA forever!!!
IO/Designer forever !!!
Спасибо сказали:
Ответить