LINUX.ORG.RU

Emacs. Автоотступы и 80 символ.


1

2

Друзья, вы можете меня материть как угодно, но гугл не хочет помогать.

В общем emacs я использовал года 2 назад и помню что там у меня были нормальные автоотступы( при нажатии на Enter после открывающей скобки курсор переходил наследующую строку и перемещался на 1 уровень табуляции правее текущего). Сейчас я бьюсь над этой проблемой второй день и не могу найти как сделать такие автоотступы, какие были. При нажатии Enter курсор перемещается в самое начало следующей строки и приходится после каждого Enter жать Tab, что не радует.

Вторая проблема это выделение границы ширины строки в 80 символов. Хотелось бы что-то похожее на Geany, но все что нашел это приличных размеров листинги непонятного кода, которые фиг знает как выделяют эту 80-символьную границу.

Собственно хотелось бы узнать как сделать вменяемый автоотступ и выделить 80-символьную границу. Что-то не верится что для включения одной базовой функции любого современного программерского редактора, в Emacs придется исписать полсотни строк кода, а вторую вообще включить не удастся.

Если что Emacs 24.0.92.

★★

Вторая проблема это выделение границы ширины строки в 80 символов. Хотелось бы что-то похожее на Geany, но все что нашел это приличных размеров листинги непонятного кода, которые фиг знает как выделяют эту 80-символьную границу.

auto-fill-mode, выставить нужную границу - C-x f (set-fill-column)

Если не хочется врубать mode (мало ли зачем), можно делать M-q на параграф, и оно конкретно этот параграф автоматически отформатирует.

anonymous ()

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

Попробуй (global-set-key (kbd «RET») 'newline-and-indent) или (global-set-key (kbd «RET») 'reindent-then-newline-and-indent).

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

а по поводу 80ти линий, в конфиг:

(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("marmalade" . "http://elpa.gnu.org/"))

затем M-x list-packages

и смотри пакет highlight-80+

хотя хрен его знает, мне не нравится.

animechaos ()

В Emacs есть 2 команды для перехода на новую строку:
1. M-x help k C-j
С отступом.
2. M-x help k C-m
Без него.

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

У меня это в конфиге есть, но никакого выделения я не увидел. Что вообще должно произойти при установке этой переменной?

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

Скорее всего whitespace-mode забыл...

У меня вот так

(require 'whitespace)
(setq whitespace-style '(face empty tabs lines-tail trailing))
(setq whitespace-line-column 80)
(global-whitespace-mode t)

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

То есть это включает подсветку строк которые больше 80 символов?

У меня включена подсветка текущей выделенной строки и поэтому контролировать длину строки таким образом неудобно - ткущая строка и слишком длинная строка сливаются.

Dikar ★★ ()

у меня так:

(defun my-ret-hook ()
  "Make new lines ident"
  (local-set-key (kbd "RET") 'newline-and-indent))

(add-hook 'scheme-mode-hook 'my-ret-hook)
(add-hook 'c-mode-hook 'my-ret-hook)
...

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

Что-то неясное произошло после добавления этого в конфиг:

непечатаемые символы выделяются даже при отключенном whitespace-mode и при закоментаривании этих 4х строк

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