The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"emacs - как заставить вменяемо работать? :)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"emacs - как заставить вменяемо работать? :)" 
Сообщение от robot emailИскать по авторуВ закладки on 14-Окт-05, 20:38  (MSK)
Поставил xemacs, порадовал конечно возможностями и наворотами, но как только сел писать код - увидел его не совсем стандартное поведение. При переходе на новую строку он перемещает курсор не на уровень кода, а в начало строки, без учёта отступа. При нажатии tab вообще непонятно что происходит. Как заставить его нормально себя вести. Полез в настроки, но там всё понятно  - надо сидеть неделю чтоб воткнуть :) как в xemacs удалить блок кода? Выделить и нажать del почему то не помогает :) Мож мануал где какой есть по нему хороший?
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "emacs - как заставить вменяемо работать? :)" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 14-Окт-05, 22:06  (MSK)
Лично мне xemacs пришлось в итоге попросту патчить. Ибо
MULE - извращение, а трюк с xmodmap не многим лучше.

К поведению TAB нужно привыкнуть. Лично мне в настоящее
время диким кажется уже поведение той же MS Visual Studio.
Ибо TAB - он для *правильной расстановки отступов*. Sic!

В действительности XEmacs - инструмент, который может быть
настроен для выполнения очень разных задач, и универсального
конфига здесь быть не может. Вот минимальный набор полезных
настроек в init.el:

(load    "cc-mode")

(require 'efs)
(require 'filladapt)
(require 'paren)
(require 'func-menu)

(setq use-dialog-box nil)

(add-hook 'find-file-hooks 'turn-on-font-lock)
(add-hook 'dired-after-readin-hook 'turn-on-font-lock)
(add-hook 'compilation-mode-hook 'turn-on-font-lock)

(setq font-lock-maximum-decoration t)
(load "font-lock")
(add-hook 'font-lock-mode-hook 'turn-on-fast-lock)
(add-hook 'font-lock-mode-hook 'turn-on-lazy-lock)

(load "saveplace")
(setq-default save-place t)

(load "jka-compr")
(if (fboundp 'toggle-auto-compression)
    (toggle-auto-compression 1))

(global-set-key [(f4)] 'switch-to-buffer)

(require 'ffap)
(global-set-key [f3] 'find-file-at-point)

(ad-enable-advice 'delete-char 'around 'delete-char-or-delete-region)
(ad-enable-advice 'backward-delete-char 'around
                  'backward-delete-char-or-delete-region)
(ad-enable-advice 'backward-delete-char-untabify 'around
                  'backward-delete-char-untabify-or-delete-region)
(ad-activate 'delete-char)
(ad-activate 'backward-delete-char)
(ad-activate 'backward-delete-char-untabify)

(setq default-major-mode 'indented-text-mode)
(setq line-number-mode 1)
(display-time)
(setq display-time-24hr-format t)
(setq frame-title-format `("emacs at " ,(system-name) ": %f"))
(setq-default indent-tabs-mode nil)
(setq next-line-add-newlines ())

(setq scroll-step 1)
(setq-default fill-column 70)
(setq query-replace-highlight t)
(setq search-highlight t)

(paren-set-mode 'paren)
(copy-face 'default 'paren-match)
(set-face-underline-p 'paren-match t)

(setq backup-by-copying-when-linked t)
(setq version-control 'never)
(setq trim-versions-without-asking t)  
(setq minibuffer-max-depth nil)
(setq gnuserv-frame t)
(setq bar-cursor 666)
(blink-cursor-mode)

(setq auto-mode-alist
      (append '(
                ("^[Mm]akefile.*" . makefile-mode)
                ("^[Mm]ake.*" . makefile-mode)
                ("[.]h$" . c++-mode)
                ("[.]c$" . c++-mode)
                ("[.]i" . c++-mode)
                ("[.]py$" . python-mode)
                ;("[.]sql$" . pls-mode)
                ;("[.]mhtml$" . mhtml-mode)
                )
              auto-mode-alist
              )
      )

(add-hook 'find-file-hooks 'fume-add-menubar-entry)
(define-key global-map '(shift button3) 'mouse-function-menu)
(define-key global-map "\C-cg" 'fume-prompt-function-goto)
(define-key global-map '(control  button2) 'fume-mouse-function-goto)

(pending-delete)
(lazy-shot-mode)
(lazy-lock-mode)
(vc-load-vc-hooks)

(global-set-key [kp-0] (lambda (arg) (interactive "P") (insert "0")))
(global-set-key [kp-1] (lambda (arg) (interactive "P") (insert "1")))
(global-set-key [kp-2] (lambda (arg) (interactive "P") (insert "2")))
(global-set-key [kp-3] (lambda (arg) (interactive "P") (insert "3")))
(global-set-key [kp-4] (lambda (arg) (interactive "P") (insert "4")))
(global-set-key [kp-5] (lambda (arg) (interactive "P") (insert "5")))
(global-set-key [kp-6] (lambda (arg) (interactive "P") (insert "6")))
(global-set-key [kp-7] (lambda (arg) (interactive "P") (insert "7")))
(global-set-key [kp-8] (lambda (arg) (interactive "P") (insert "8")))
(global-set-key [kp-9] (lambda (arg) (interactive "P") (insert "9")))

(global-set-key [button4] (lambda (arg) (interactive "P") (scroll-down-one)))
(global-set-key [button5] (lambda (arg) (interactive "P") (scroll-up-one)))

(global-set-key [(control \\)] (lambda (arg) (interactive "P") (fill-paragraph-or-region nil)))

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "emacs - как заставить вменяемо работать? :)" 
Сообщение от robot emailИскать по авторуВ закладки on 14-Окт-05, 22:27  (MSK)
>Лично мне xemacs пришлось в итоге попросту патчить. Ибо
>MULE - извращение, а трюк с xmodmap не многим лучше.
>
>К поведению TAB нужно привыкнуть. Лично мне в настоящее
>время диким кажется уже поведение той же MS Visual Studio.
>Ибо TAB - он для *правильной расстановки отступов*. Sic!
>
>В действительности XEmacs - инструмент, который может быть
>настроен для выполнения очень разных задач, и универсального
>конфига здесь быть не может. Вот минимальный набор полезных
>настроек в init.el:

Полезного действительно много судя по названиям опций, только видимо это не совсем совместимо с моим емаксом:
он выругался на

(ad-enable-advice 'delete-char 'around 'delete-char-or-delete-region)
(ad-enable-advice 'backward-delete-char 'around
                  'backward-delete-char-or-delete-region)
(ad-enable-advice 'backward-delete-char-untabify 'around
                  'backward-delete-char-untabify-or-delete-region)
(ad-activate 'delete-char)
(ad-activate 'backward-delete-char)
(ad-activate 'backward-delete-char-untabify)

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

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "emacs - как заставить вменяемо работать? :)" 
Сообщение от robot emailИскать по авторуВ закладки on 14-Окт-05, 22:35  (MSK)

>
>видимо не хватает каого то модуля. После того как закоментил - загрузил
>init.el, только теперь невозможно переключиться на английску раскладку: пишет только по-русски
>:(

Извиняюсь. По русски пишет только на начальном буфере *scratch* чтоли он его называет. В остальных местах нормально переключает раскладку.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "emacs - как заставить вменяемо работать? :)" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 16-Окт-05, 17:08  (MSK)
>Извиняюсь. По русски пишет только на начальном буфере *scratch* чтоли он его
>называет. В остальных местах нормально переключает раскладку.

Непонятно. scratch - обычный, ничем не выдающийся буфер. Для Lisp'ового коду.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "emacs - как заставить вменяемо работать? :)" 
Сообщение от robot emailИскать по авторуВ закладки on 14-Окт-05, 22:30  (MSK)
>Лично мне xemacs пришлось в итоге попросту патчить. Ибо
>MULE - извращение, а трюк с xmodmap не многим лучше.
>
>К поведению TAB нужно привыкнуть. Лично мне в настоящее
>время диким кажется уже поведение той же MS Visual Studio.
>Ибо TAB - он для *правильной расстановки отступов*. Sic!

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

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

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

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "emacs - как заставить вменяемо работать? :)" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 16-Окт-05, 17:12  (MSK)
>Да фиг бы с ним с табом, почему от отступ сам не
>делает? этак задолбаешься всё время отступы вручную делать. Вроде - как
>автоматическая расстановка отступов - стандарт.

А он у Вас вообще C++-режим включил? Чего в статусной строке пишет?
Должно быть нечно вроде 'C++ Font Abbrev'. Если вместо C++ фигурирует
нечто вроде 'Text' или 'Fundamental', значит, хук не срабатывает.
Для начала можно попробовать сказать M-x c++-mode <RET>.

>Вот и хочетется выучить его под себя. Только напрыгом с шашкой его
>взять не удалось, придётся изучать :-)

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

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "emacs - как заставить вменяемо работать? :)" 
Сообщение от robot emailИскать по авторуВ закладки on 17-Окт-05, 11:44  (MSK)
>>Да фиг бы с ним с табом, почему от отступ сам не
>>делает? этак задолбаешься всё время отступы вручную делать. Вроде - как
>>автоматическая расстановка отступов - стандарт.
>
>А он у Вас вообще C++-режим включил? Чего в статусной строке пишет?
>
>Должно быть нечно вроде 'C++ Font Abbrev'. Если вместо C++ фигурирует
>нечто вроде 'Text' или 'Fundamental', значит, хук не срабатывает.
>Для начала можно попробовать сказать M-x c++-mode <RET>.
>

Включил CPerl (я на перле программирую). Он отступы табом правильно расставляет, соблюдает вложенность, толкько при переходе на новую строку не делает сам отступ.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "emacs - как заставить вменяемо работать? :)" 
Сообщение от Andrey Искать по авторуВ закладки(??) on 17-Окт-05, 15:21  (MSK)
http://groups.google.ru/group/gnu.emacs.help/browse_thread/thread/8ce1715c609271dd/4b78da4c650917ce

По умолчанию "newline-and-indent" назначена на "C-j", назначив ее на "RET", получишь желаемое.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "emacs - как заставить вменяемо работать? :)" 
Сообщение от robot emailИскать по авторуВ закладки on 17-Окт-05, 18:45  (MSK)
>http://groups.google.ru/group/gnu.emacs.help/browse_thread/thread/8ce1715c609271dd/4b78da4c650917ce
>
>По умолчанию "newline-and-indent" назначена на "C-j", назначив ее на "RET", получишь желаемое.
>

Спасибо, я решил проблему вот этим:

(setq cperl-tab-always-indent 't )
(setq cperl-auto-newline 't )

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру