unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* emacs seems to think tab width is two spaces
@ 2004-04-29  0:15 William Payne
  2004-04-29  0:24 ` William Payne
  2004-04-29  6:06 ` Matthieu Moy
  0 siblings, 2 replies; 3+ messages in thread
From: William Payne @ 2004-04-29  0:15 UTC (permalink / raw)


Hello, I use emacs for programming in C and C++. I have been modifying my
.emacs some lately, and now I noticed that emacs seems to think that the tab
width is suddenly two spaces instead of of three...I'm sure it's a simple
error in my .emacs, so I am posting it here:

(if (eq window-system 'w32)
    (progn
      (add-to-list 'load-path "c:/emacs-21.3/cc-mode-5.30.8")
      (set-face-font 'default
"-raster-Courier-normal-r-normal-normal-16-120-96-96-c-*-iso8859-1")
      (w32-send-sys-command ?\xf030) ; Start as maximized. Or use $
emacs --fullscreen
      ))

(standard-display-european t)
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

(setq scroll-bar-mode-explicit t)
(set-scroll-bar-mode 'right)

(setq line-number-mode t) ; Show line number in status bar.
(setq column-number-mode t) ; Show column in status bar.
(setq tab-width 3)
(setq case-fold-search t) ; A and a differs in search.
(setq default-case-fold-search nil) ; A and a does not differ in search.
(setq default-major-mode 'text-mode) ; Mode for unknown file type.
(setq blink-matching-paren-distance nil) ; Always show corresponding
parenthesis.
(setq next-line-add-newlines nil) ; Don't add new lines after EOF
(setq inhibit-startup-message t) ; No start-up message
(setq ask-about-buffer-names t) ; Be helpful
(setq completion-auto-help t) ; ...with buffer names.
(setq display-time-day-and-date t)
(setq display-time-24hr-format t)
(display-time) ; Show time formatted as specified above.
(setq-default indent-tabs-mode nil) ; Use spaces, not tabs, for indentation.


;; Pre-selected colors.
(set-background-color "Black")
(set-foreground-color "White")
(set-cursor-color "Cyan")

;; Set mode depending on file type.
(setq auto-mode-alist
      (append
       (list
        '("\\Makefile" . makefile-mode) ; Maybe use \\Makefile$ ?
        )
       auto-mode-alist
       )
      )

(defun williams-common-hook ()
  (c-toggle-hungry-state 1)
  (setq c-basic-offset 3)
(add-hook 'c-mode-common-hook 'williams-common-hook))

(defun my-c-hook ()
  (setq c-offsets-alist
        '(
          (string                . +)
          (c                     . c-lineup-C-comments)
          (defun-open            . 0)
          (defun-close           . 0)
          (defun-block-intro     . +)
;;          (class-open            . 0)
;;          (class-close           . 0)
          (inline-open           . 0)
          (inline-close          . 0)
          (ansi-funcdecl-cont    . +)
;;          (catch-clause          . 0)
          (knr-argdecl-intro     . +)
          (knr-argdecl           . 0)
          (topmost-intro         . 0)
          (topmost-intro-cont    . 0)
          (member-init-intro     . +) ; Maybe remove for C code?
          (member-init-cont      . 0) ; Maybe remove for C code?
;;          (inher-intro           . +)
;;          (inher-cont            . c-lineup-multi-inher)
          (block-open            . 0)
          (block-close           . 0)
          (brace-list-open       . 0)
          (brace-list-close      . 0)
          (brace-list-intro      . +)
          (brace-list-entry      . 0)
          (statement             . 0)
          (statement-cont        . +) ; Strings over multiple lines looks
good.
          (statement-block-intro . +)
          (statement-case-intro  . +)
          (statement-case-open   . 0)
;;          (namespace-open        . 0)
;;          (namespace-close       . 0)
;;          (innamespace           . +)
          (substatement          . +)
          (substatement-open     . 0)
          (case-label            . +)
          (access-label          . -) ; Maybe remove for C code?
          (label                 . 2) ; Hmm?
          (do-while-closure      . 0)
          (else-clause           . 0)
          (comment-intro         . c-lineup-comment)
          (arglist-intro         . +)
          (arglist-cont          . 0)
          (arglist-cont-nonempty . c-lineup-arglist)
          (arglist-close         . +)
;;          (stream-op             . c-lineup-streamop)
;;          (inclass               . +)
          (cpp-macro             . -) ;1000)
;;          (friend                . 0)
          )))
(add-hook 'c-mode-hook 'my-c-hook)

(defun williams-c++-hook ()
  (setq c-offsets-alist
        '(
          (string                . +)
          (c                     . c-lineup-C-comments)
          (defun-open            . 0)
          (defun-close           . 0)
          (defun-block-intro     . +)
          (class-open            . 0)
          (class-close           . 0)
          (inline-open           . 0)
          (inline-close          . 0)
          (ansi-funcdecl-cont    . +)
          (catch-clause          . 0)
;          (knr-argdecl-intro     . +)
;          (knr-argdecl           . 0)
          (topmost-intro         . 0)
          (topmost-intro-cont    . 0)
          (member-init-intro     . +)
          (member-init-cont      . 0)
          (inher-intro           . +)
          (inher-cont            . c-lineup-multi-inher)
          (block-open            . 0)
          (block-close           . 0)
          (brace-list-open       . 0)
          (brace-list-close      . 0)
          (brace-list-intro      . +)
          (brace-list-entry      . 0)
          (statement             . 0)
          (statement-cont        . +) ; Strings over multiple lines looks
good.
          (statement-block-intro . +)
          (statement-case-intro  . +)
          (statement-case-open   . 0)
          (namespace-open        . 0)
          (namespace-close       . 0)
          (innamespace           . +)
          (substatement          . +)
          (substatement-open     . 0)
          (case-label            . +)
          (access-label          . -)
          (label                 . 2) ; Hmm?
          (do-while-closure      . 0)
          (else-clause           . 0)
          (comment-intro         . c-lineup-comment)
          (arglist-intro         . +)
          (arglist-cont          . 0)
          (arglist-cont-nonempty . c-lineup-arglist)
          (arglist-close         . +)
          (stream-op             . c-lineup-streamop)
          (inclass               . +)
          (cpp-macro             . -1000)
          (friend                . 0)
          )))
(add-hook 'c++-mode-hook 'williams-c++-hook)

;; Change order of CR/LF. Will indent every new line.
(setq foo (global-key-binding "\C-m"))              ; Save CR binding.
(global-set-key "\C-m" (global-key-binding "\C-j")) ; Set CR to LF.
(global-set-key "\C-j" foo)                         ; Set LF to old CR.

(custom-set-variables)
(custom-set-faces
 '(font-lock-comment-face ((t (:foreground "Green"))))
 '(font-lock-reference-face ((((class color) (background light))
(:foreground "LightGreen"))))
 '(font-lock-string-face ((t (:foreground "Gray"))))
 '(font-lock-keyword-face ((t (:bold t :foreground "Cyan"))))
 '(font-lock-constant-face ((t (:foreground "Yellow"))))
 '(font-lock-type-face ((t (:bold t :foreground "White"))))
 '(font-lock-variable-name-face ((t (:foreground "Yellow"))))
 '(font-lock-function-name-face ((t (:foreground "Cyan"))))
 '(font-lock-builtin-face ((t (:bold t :foreground "LightGreen")))))

Sorry for posting the entire file, lots of it I am sure is not relevant for
the problem but I didn't want to risk leaving anything out that could be the
cause of this problem..If you happen notice improvements I could make to
this file I'd be happy to hear them as well.

Thanks for any replies

/ WP

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: emacs seems to think tab width is two spaces
  2004-04-29  0:15 emacs seems to think tab width is two spaces William Payne
@ 2004-04-29  0:24 ` William Payne
  2004-04-29  6:06 ` Matthieu Moy
  1 sibling, 0 replies; 3+ messages in thread
From: William Payne @ 2004-04-29  0:24 UTC (permalink / raw)



"William Payne" <mikas_n_o_s_p_a_m_493@student.liu.se> wrote in message
news:c6phfp$em3$1@news.island.liu.se...
> Hello, I use emacs for programming in C and C++. I have been modifying my
> .emacs some lately, and now I noticed that emacs seems to think that the
tab
> width is suddenly two spaces instead of of three...I'm sure it's a simple
> error in my .emacs, so I am posting it here:
>
> (if (eq window-system 'w32)
>     (progn
>       (add-to-list 'load-path "c:/emacs-21.3/cc-mode-5.30.8")
>       (set-face-font 'default
> "-raster-Courier-normal-r-normal-normal-16-120-96-96-c-*-iso8859-1")
>       (w32-send-sys-command ?\xf030) ; Start as maximized. Or use $
> emacs --fullscreen
>       ))
>
> (standard-display-european t)
> (global-font-lock-mode t)
> (setq font-lock-maximum-decoration t)
>
> (setq scroll-bar-mode-explicit t)
> (set-scroll-bar-mode 'right)
>
> (setq line-number-mode t) ; Show line number in status bar.
> (setq column-number-mode t) ; Show column in status bar.
> (setq tab-width 3)
> (setq case-fold-search t) ; A and a differs in search.
> (setq default-case-fold-search nil) ; A and a does not differ in search.
> (setq default-major-mode 'text-mode) ; Mode for unknown file type.
> (setq blink-matching-paren-distance nil) ; Always show corresponding
> parenthesis.
> (setq next-line-add-newlines nil) ; Don't add new lines after EOF
> (setq inhibit-startup-message t) ; No start-up message
> (setq ask-about-buffer-names t) ; Be helpful
> (setq completion-auto-help t) ; ...with buffer names.
> (setq display-time-day-and-date t)
> (setq display-time-24hr-format t)
> (display-time) ; Show time formatted as specified above.
> (setq-default indent-tabs-mode nil) ; Use spaces, not tabs, for
indentation.
>
>
> ;; Pre-selected colors.
> (set-background-color "Black")
> (set-foreground-color "White")
> (set-cursor-color "Cyan")
>
> ;; Set mode depending on file type.
> (setq auto-mode-alist
>       (append
>        (list
>         '("\\Makefile" . makefile-mode) ; Maybe use \\Makefile$ ?
>         )
>        auto-mode-alist
>        )
>       )
>
> (defun williams-common-hook ()
>   (c-toggle-hungry-state 1)
>   (setq c-basic-offset 3)
> (add-hook 'c-mode-common-hook 'williams-common-hook))
>
> (defun my-c-hook ()
>   (setq c-offsets-alist
>         '(
>           (string                . +)
>           (c                     . c-lineup-C-comments)
>           (defun-open            . 0)
>           (defun-close           . 0)
>           (defun-block-intro     . +)
> ;;          (class-open            . 0)
> ;;          (class-close           . 0)
>           (inline-open           . 0)
>           (inline-close          . 0)
>           (ansi-funcdecl-cont    . +)
> ;;          (catch-clause          . 0)
>           (knr-argdecl-intro     . +)
>           (knr-argdecl           . 0)
>           (topmost-intro         . 0)
>           (topmost-intro-cont    . 0)
>           (member-init-intro     . +) ; Maybe remove for C code?
>           (member-init-cont      . 0) ; Maybe remove for C code?
> ;;          (inher-intro           . +)
> ;;          (inher-cont            . c-lineup-multi-inher)
>           (block-open            . 0)
>           (block-close           . 0)
>           (brace-list-open       . 0)
>           (brace-list-close      . 0)
>           (brace-list-intro      . +)
>           (brace-list-entry      . 0)
>           (statement             . 0)
>           (statement-cont        . +) ; Strings over multiple lines looks
> good.
>           (statement-block-intro . +)
>           (statement-case-intro  . +)
>           (statement-case-open   . 0)
> ;;          (namespace-open        . 0)
> ;;          (namespace-close       . 0)
> ;;          (innamespace           . +)
>           (substatement          . +)
>           (substatement-open     . 0)
>           (case-label            . +)
>           (access-label          . -) ; Maybe remove for C code?
>           (label                 . 2) ; Hmm?
>           (do-while-closure      . 0)
>           (else-clause           . 0)
>           (comment-intro         . c-lineup-comment)
>           (arglist-intro         . +)
>           (arglist-cont          . 0)
>           (arglist-cont-nonempty . c-lineup-arglist)
>           (arglist-close         . +)
> ;;          (stream-op             . c-lineup-streamop)
> ;;          (inclass               . +)
>           (cpp-macro             . -) ;1000)
> ;;          (friend                . 0)
>           )))
> (add-hook 'c-mode-hook 'my-c-hook)
>
> (defun williams-c++-hook ()
>   (setq c-offsets-alist
>         '(
>           (string                . +)
>           (c                     . c-lineup-C-comments)
>           (defun-open            . 0)
>           (defun-close           . 0)
>           (defun-block-intro     . +)
>           (class-open            . 0)
>           (class-close           . 0)
>           (inline-open           . 0)
>           (inline-close          . 0)
>           (ansi-funcdecl-cont    . +)
>           (catch-clause          . 0)
> ;          (knr-argdecl-intro     . +)
> ;          (knr-argdecl           . 0)
>           (topmost-intro         . 0)
>           (topmost-intro-cont    . 0)
>           (member-init-intro     . +)
>           (member-init-cont      . 0)
>           (inher-intro           . +)
>           (inher-cont            . c-lineup-multi-inher)
>           (block-open            . 0)
>           (block-close           . 0)
>           (brace-list-open       . 0)
>           (brace-list-close      . 0)
>           (brace-list-intro      . +)
>           (brace-list-entry      . 0)
>           (statement             . 0)
>           (statement-cont        . +) ; Strings over multiple lines looks
> good.
>           (statement-block-intro . +)
>           (statement-case-intro  . +)
>           (statement-case-open   . 0)
>           (namespace-open        . 0)
>           (namespace-close       . 0)
>           (innamespace           . +)
>           (substatement          . +)
>           (substatement-open     . 0)
>           (case-label            . +)
>           (access-label          . -)
>           (label                 . 2) ; Hmm?
>           (do-while-closure      . 0)
>           (else-clause           . 0)
>           (comment-intro         . c-lineup-comment)
>           (arglist-intro         . +)
>           (arglist-cont          . 0)
>           (arglist-cont-nonempty . c-lineup-arglist)
>           (arglist-close         . +)
>           (stream-op             . c-lineup-streamop)
>           (inclass               . +)
>           (cpp-macro             . -1000)
>           (friend                . 0)
>           )))
> (add-hook 'c++-mode-hook 'williams-c++-hook)
>
> ;; Change order of CR/LF. Will indent every new line.
> (setq foo (global-key-binding "\C-m"))              ; Save CR binding.
> (global-set-key "\C-m" (global-key-binding "\C-j")) ; Set CR to LF.
> (global-set-key "\C-j" foo)                         ; Set LF to old CR.
>
> (custom-set-variables)
> (custom-set-faces
>  '(font-lock-comment-face ((t (:foreground "Green"))))
>  '(font-lock-reference-face ((((class color) (background light))
> (:foreground "LightGreen"))))
>  '(font-lock-string-face ((t (:foreground "Gray"))))
>  '(font-lock-keyword-face ((t (:bold t :foreground "Cyan"))))
>  '(font-lock-constant-face ((t (:foreground "Yellow"))))
>  '(font-lock-type-face ((t (:bold t :foreground "White"))))
>  '(font-lock-variable-name-face ((t (:foreground "Yellow"))))
>  '(font-lock-function-name-face ((t (:foreground "Cyan"))))
>  '(font-lock-builtin-face ((t (:bold t :foreground "LightGreen")))))
>
> Sorry for posting the entire file, lots of it I am sure is not relevant
for
> the problem but I didn't want to risk leaving anything out that could be
the
> cause of this problem..If you happen notice improvements I could make to
> this file I'd be happy to hear them as well.
>
> Thanks for any replies
>
> / WP
>
>

Ok, think I found the problem...I needed to add my common rules to both
c-mode and cc-mode, like this:

(defun williams-common-hook ()
  (c-toggle-hungry-state 1)
  (setq c-basic-offset 3))

(add-hook 'c-mode-common-hook 'williams-common-hook)
(add-hook 'cc-mode-common-hook 'william-common-hook)

before I was just adding it the c-mode (and I was now testing with a c++
source file)

/ WP

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: emacs seems to think tab width is two spaces
  2004-04-29  0:15 emacs seems to think tab width is two spaces William Payne
  2004-04-29  0:24 ` William Payne
@ 2004-04-29  6:06 ` Matthieu Moy
  1 sibling, 0 replies; 3+ messages in thread
From: Matthieu Moy @ 2004-04-29  6:06 UTC (permalink / raw)


"William Payne" <mikas_n_o_s_p_a_m_493@student.liu.se> writes:

> (setq tab-width 3)

Please avoid this. 

A tab is  8 spaces, you can't  change it. Well, you can  change it for
you, but  then, files  written by you  will become almost  readable by
other people, or even by you with another tool. 

[...]

> (setq-default  indent-tabs-mode nil)  ;  Use spaces,  not tabs,  for
> indentation.

Anyway, you're indenting with spaces, so it wasn't needed. 

There is a  confusion here. TAB is a character. You  can enter it with
C-q TAB in any mode, or with TAB in fundamental mode. 

Most  programming  languages  modes   rebind  TAB  to  an  indentation
function. What you want to  change is the behavior of this indentation
function. (but you understood this from your second post I think)

-- 
Matthieu

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-04-29  6:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-29  0:15 emacs seems to think tab width is two spaces William Payne
2004-04-29  0:24 ` William Payne
2004-04-29  6:06 ` Matthieu Moy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).