From: Andreas Politz <politza@fh-trier.de>
To: help-gnu-emacs@gnu.org
Subject: Re: how to browse data with many many columns
Date: Mon, 22 Dec 2008 21:42:25 +0100 [thread overview]
Message-ID: <1229978610.992305@arno.fh-trier.de> (raw)
In-Reply-To: <mailman.3242.1229957435.26697.help-gnu-emacs@gnu.org>
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
>>
>
next prev parent reply other threads:[~2008-12-22 20:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.3227.1229924227.26697.help-gnu-emacs@gnu.org>
2008-12-22 9:46 ` how to browse data with many many columns Andreas Politz
2008-12-22 14:50 ` patiobarbecue
[not found] ` <mailman.3242.1229957435.26697.help-gnu-emacs@gnu.org>
2008-12-22 20:42 ` Andreas Politz [this message]
2008-12-22 0:18 patiobarbecue
2008-12-22 9:10 ` Bernardo Bacic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1229978610.992305@arno.fh-trier.de \
--to=politza@fh-trier.de \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).