help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to browse data with many many columns


From: Andreas Politz
Subject: Re: how to browse data with many many columns
Date: Mon, 22 Dec 2008 21:42:25 +0100
User-agent: Mozilla-Thunderbird 2.0.0.17 (X11/20081018)

patiobarbecue wrote:
thanks, Andreas, it works pretty well. is it possible to out the code in
.emacs, or even bind it to a key?
(setq header-line-format
       (buffer-substring 1 (line-end-position (goto-char 1))))
so I don't need to type it in everytime. After all, it is a common task for
me to read tables.

Sincerely Yours,
Michael


Try this function, you can bind it like any other command.

(defun buffer-line-as-header (&optional lnum)
  "Use line at linenumber LNUM as headerline, defaulting to the current line.
With a non-numeric prefix arg (C-g), restore the default value of
 `header-line-format'.  Otherwise the prefix arg determines the linenumber to
 use."
  (interactive "P")
  (let ((lnum (if (null lnum)
                  (line-number-at-pos)
                (if (numberp lnum)
                    lnum
                  0))))
    (cond
     ((or (< lnum 0)
          (> lnum (line-number-at-pos (point-max))))
      (error "No such linenumber : %d" lnum))
     ((= 0 lnum)
      (setq header-line-format (default-value 'header-line-format)))
     (t
      (save-excursion
        (goto-line lnum)
        (setq header-line-format
              `(:eval (let ((line ,(buffer-substring (line-beginning-position) 
(line-end-position))))
                        (concat ;;acount for fringes, scroll-bar and scrolling
                         (propertize " " 'display (list 'space :width
                                                        (+ (fringe-columns 
'left t)
                                                           (scroll-bar-columns 
'left))))
                         (substring line (min (1- (length line))
                                              (window-hscroll))))))))))))

Andreas Politz wrote:
patiobarbecue wrote:
Dear there,

I have data file with many columns. The first line has field names as
usual.
I am reading column 35 for example, CTRL+v will turn the page BUT focus
on
column 1, and I have to locate column 35 again -:) Is there a convenient
way?
Indeed.

,----[ C-h f set-goal-column RET ]
| set-goal-column is an interactive compiled Lisp function in `simple.el'.
| It is bound to C-x C-n.
| (set-goal-column ARG)
|
| Set the current horizontal position as a goal for C-n and C-p.
| Those commands will move to this position in the line moved to
| rather than trying to keep the same horizontal position.
| With a non-nil argument, clears out the goal column
| so that C-n and C-p resume vertical motion.
| The goal column is stored in the variable `goal-column'.
|
`----


Also is it possible to keep the first line (table field names) visible
while
browse line 200?

(setq header-line-format
       (buffer-substring 1 (line-end-position (goto-char 1))))


You need to eval this the buffers context (e.g. with M-:).


-ap
Thanks for your reply in advance.

Michael




reply via email to

[Prev in Thread] Current Thread [Next in Thread]