INDEX хочет относительное положение, а не значение. Вам необходимо добавить МАТЧ:
=INDEX($B$1:$G$1,MATCH(H2,B2:G2,0))
Матч вернет относительную позицию совпадения.
абзац заливки и авторежим заливки сознательно не переносят код. Существует только слишком много способов сделать это, и это, вероятно, поняло бы его превратно. Они перенесут комментарии, но это не помогает Вам здесь.
Единственным путем я когда-либо делал это к явно поместить, где я хочу, чтобы текст повредился. Затем автоматический отступ должен положить прерывистую линию на правильное место.
Вы пробуете к обратному течению большое тело существующего кода? Или попытка иметь автозаливку работает над кодом, который Вы пишете теперь?
Существует количество пакетов , которые предупреждают вас об ограничениях длины линии. Лично я использую широкий столбец , который меняет цвет курсора в зависимости от его текущего столбца.
Я использую modeline-posn пакет. Это выделяет номер столбца в modeline, если это больше, чем заданное значение.
Вы должны проверить одну из множества библиотек "вертикальной линии" для Emacs. Некоторые держат вертикальную линию подсветки над всем буфером в точке всегда (не совсем то, что вам нужно), но другие библиотеки постоянно помещают вертикальную подсветку в столбец исправлений, что не совсем то, что вы хотите, но вы можете сразу увидеть когда вы должны обернуть строки.
Едва ли emacser, но что происходит, если Вы включаете авторежим заливки в то время как в c ++-mode?
Режим C++ должен дать Вам автоматический отступ, и авторежим заливки дает Вам обертывание строки....
Попробуйте
'(c-max-one-liner-length 80)
'(fill-column 80)
'(c-ignore-auto-fill (quote (string cpp)))
Надеюсь, это поможет.