Поставил xemacs, порадовал конечно возможностями и наворотами, но как только сел писать код - увидел его не совсем стандартное поведение. При переходе на новую строку он перемещает курсор не на уровень кода, а в начало строки, без учёта отступа. При нажатии tab вообще непонятно что происходит. Как заставить его нормально себя вести. Полез в настроки, но там всё понятно - надо сидеть неделю чтоб воткнуть :) как в xemacs удалить блок кода? Выделить и нажать del почему то не помогает :) Мож мануал где какой есть по нему хороший?
Лично мне 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)))
>Лично мне 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, только теперь невозможно переключиться на английску раскладку: пишет только по-русски :(
>
>видимо не хватает каого то модуля. После того как закоментил - загрузил
>init.el, только теперь невозможно переключиться на английску раскладку: пишет только по-русски
>:(Извиняюсь. По русски пишет только на начальном буфере *scratch* чтоли он его называет. В остальных местах нормально переключает раскладку.
>Извиняюсь. По русски пишет только на начальном буфере *scratch* чтоли он его
>называет. В остальных местах нормально переключает раскладку.Непонятно. scratch - обычный, ничем не выдающийся буфер. Для Lisp'ового коду.
>Лично мне xemacs пришлось в итоге попросту патчить. Ибо
>MULE - извращение, а трюк с xmodmap не многим лучше.
>
>К поведению TAB нужно привыкнуть. Лично мне в настоящее
>время диким кажется уже поведение той же MS Visual Studio.
>Ибо TAB - он для *правильной расстановки отступов*. Sic!Да фиг бы с ним с табом, почему от отступ сам не делает? этак задолбаешься всё время отступы вручную делать. Вроде - как автоматическая расстановка отступов - стандарт.
>В действительности XEmacs - инструмент, который может быть
>настроен для выполнения очень разных задач, и универсального
>конфига здесь быть не может.Вот и хочетется выучить его под себя. Только напрыгом с шашкой его взять не удалось, придётся изучать :-)
>Да фиг бы с ним с табом, почему от отступ сам не
>делает? этак задолбаешься всё время отступы вручную делать. Вроде - как
>автоматическая расстановка отступов - стандарт.А он у Вас вообще C++-режим включил? Чего в статусной строке пишет?
Должно быть нечно вроде 'C++ Font Abbrev'. Если вместо C++ фигурирует
нечто вроде 'Text' или 'Fundamental', значит, хук не срабатывает.
Для начала можно попробовать сказать M-x c++-mode <RET>.>Вот и хочетется выучить его под себя. Только напрыгом с шашкой его
>взять не удалось, придётся изучать :-)Напрыгом точно не получится. Бесполезнее только на vi напрыгивать - новичок
из него даже выйти, и то не сумеет.
>>Да фиг бы с ним с табом, почему от отступ сам не
>>делает? этак задолбаешься всё время отступы вручную делать. Вроде - как
>>автоматическая расстановка отступов - стандарт.
>
>А он у Вас вообще C++-режим включил? Чего в статусной строке пишет?
>
>Должно быть нечно вроде 'C++ Font Abbrev'. Если вместо C++ фигурирует
>нечто вроде 'Text' или 'Fundamental', значит, хук не срабатывает.
>Для начала можно попробовать сказать M-x c++-mode <RET>.
>Включил CPerl (я на перле программирую). Он отступы табом правильно расставляет, соблюдает вложенность, толкько при переходе на новую строку не делает сам отступ.
http://groups.google.ru/group/gnu.emacs.help/browse_thread/t...По умолчанию "newline-and-indent" назначена на "C-j", назначив ее на "RET", получишь желаемое.
>http://groups.google.ru/group/gnu.emacs.help/browse_thread/t...
>
>По умолчанию "newline-and-indent" назначена на "C-j", назначив ее на "RET", получишь желаемое.
>Спасибо, я решил проблему вот этим:
(setq cperl-tab-always-indent 't )
(setq cperl-auto-newline 't )