Question: Hi I have turned on buffer cycling placing following commands in my .emacs 

```
(global-set-key (kbd "<C-tab>") 'bury-buffer)

```

But while cycling how do I avoid cycling through the Messages and the scrratch buffers which
are always present in any emacs buffer list. I never use those buffers and become an eye-sore 
when cycling through my buffer-list

Answer: 
Luke's answered your specific question. In my personal experience buffer cycling is more useful as a most-recently-used stack instead of the Emacs default cycling functions. That is, the buffers you most recently used should bubble to the top of the stack, similar to how alt-tab works in Windows.

There are quite a few packages that implement this on the [wiki](http://www.emacswiki.org/emacs/ControlTABbufferCycling#toc1). `buffer-stack` is the one I recommend. It has a list of excluded buffers by default, I've included my `buffer-stack-suppl` configuration, which does same major-mode filtering. If you ask questions about `buffer-stack`, I'll try my best to help.
All the buffers I did not use, such as scratch, messages and completions, messed with my workflow. 

I've managed to completely get rid of them, without breaking emacs in any way.

Posted first [here](https://unix.stackexchange.com/a/152151/72170), and pasted bellow: 

Place this in your .emacs: 

```
;; Makes *scratch* empty.
(setq initial-scratch-message "")

;; Removes *scratch* from buffer after the mode has been set.
(defun remove-scratch-buffer ()
  (if (get-buffer "*scratch*")
      (kill-buffer "*scratch*")))
(add-hook 'after-change-major-mode-hook 'remove-scratch-buffer)

;; Removes *messages* from the buffer.
(setq-default message-log-max nil)
(kill-buffer "*Messages*")

;; Removes *Completions* from buffer after you've opened a file.
(add-hook 'minibuffer-exit-hook
      '(lambda ()
         (let ((buffer "*Completions*"))
           (and (get-buffer buffer)
                (kill-buffer buffer)))))

;; Don't show *Buffer list* when opening multiple files at the same time.
(setq inhibit-startup-buffer-menu t)

;; Show only one active window when opening multiple files at the same time.
(add-hook 'window-setup-hook 'delete-other-windows)

```

Bonus:

```
;; No more typing the whole yes or no. Just y or n will do.
(fset 'yes-or-no-p 'y-or-n-p)

```