вы разбили свой стек в этом блоке до того, как ваши fread
char file[2];
sprintf(file,"%03i.jpg",counter);
file
станут маленькими, чтобы вместить количество символов, которые вы форматируете в нем.
Чтобы заставить клавишу Enter взять Вас к следующей строке и расположить ее с отступом автоматически, можно поместить
(global-set-key (kbd "RET") 'newline-and-indent)
в Вашем .emacs
. [Или можно совершить нападки C-j
вместо Входят.], После того как у Вас есть это, Вы никогда не должны будете вставлять вкладки вручную, потому что Emacs автоматически располагает новую строку с отступом на дополнительную глубину после вводной фигурной скобки и т.д. Если Вы действительно хотите изменить добавление отступа, можно поразить ВКЛАДКУ, пока это не берет Вас к правильному добавлению отступа, то начните вводить оттуда. [И когда Вы вводите закрывающую фигурную скобку, Emacs достаточно умен для взятия той фигурной скобки один уровень отступа назад.]
Необходимо удалить (global-set-key (kbd "TAB") 'tab-to-tab-stop)
чтобы это работало.
Это прослушивало меня также, когда я сначала начал использовать Emacs. Я полюбил его, все же. Если я хочу сделать отступ соответственно, я совершил нападки <tab>;
если я хочу вставить литеральную вкладку, я совершил нападки M-i
(Meta и 'я' или <Высокий звук> - <i> в некоторых языках), который связывается с tab-to-tab-stop
.
C-j
делает новую строку + функциональность отступа, которую Вы хотите из нажатия Enter.
Много главных режимов переопределяют TAB
при привязке например, cc-режим связывает TAB
кому: 'c-indent-to-column
.
'global-set-key
это предлагается, ничего не делает, поскольку почти каждый главный режим переопределил TAB
.
Один прием, который мог бы работать на Вас, должен скопировать подход это 'pabbrev
использование, и определяет глобальный незначительный режим, который имеет TAB
связанный. Вы могли сделать это как так:
(defvar just-tab-keymap (make-sparse-keymap) "Keymap for just-tab-mode")
(define-minor-mode just-tab-mode
"Just want the TAB key to be a TAB"
:global t :lighter " TAB" :init-value 0 :keymap just-tab-keymap
(define-key just-tab-keymap (kbd "TAB") 'indent-for-tab-command))
Однако это отключает все TAB
завершение. Вы, вероятно, получите лучшие результаты путем переопределения каждого из главных режимов один за другим (чтобы не приводить в беспорядок TAB
завершение).
I think trey jackson's answer is probably what you want, except possibly use 'self-insert-command
instead of 'indent-for-tab-command
. I personally prefer emacs' default behavior, but self-insert-command
does what it says instead of trying to do anything fancy like make sure your code is well-formatted.
The few times I actually want to insert a tab (not indent) I press M-i.
Возможно, вас заинтересует этот второстепенный режим, который я создал на http://github.com/vohrta/regtab .
Он делает так, что при нажатии клавиша табуляции либо символ табуляции (если indent-tabs-mod не равен nil), либо пробелы ширины табуляции будут помещены в точку. Этот режим также способен обрабатывать то, что вы можете считать обычным поведением в области выделенного текста и сдвигать табуляцию для удаления табуляции в начале строки (или набора строк).
Вы можете включить или отключить его в любой момент время, нажав Mx regtab-mode.