stef@lebourget (Stephane Payrard - Sun France Consulting) (08/17/89)
Hi
I feel that an interesting feature is missing in gnuemacs: automatic
horizontal scrolling when the line is truncated and the point move
past the truncation. I feel boring to be obliged to explicitly scroll
the window in such a case. More, it is not homogenous with the general
behavior of emacs: when you move the point in a not currrently visible
part of a line, emacs scrolls vertically to show the line with the
point. I should expect such a similar behavior when the point is moved
horizontally outside the current view.
It would be useful with very horizontally large form.
A subsidiary (and optional) feature should be to scroll simultaneously
each (or some) view (ie window) on the same buffer. With such a feature one
could have a view with the title of a tabular form with the fields in a
same form's row correctly aligned.
An example of a display with two views with an identical horizontal shift.
column10 | column 11 |
--**-Emacs: tabular_file (Text)----Top-----
apple | pie |
orange | cake |
--**-Emacs: tabular_file (Text)----Bot-----
Is there a good reason not to implement this stuff?
May be it is already implemented in a way or another.
Any comment or suggestion appreciated
stef
Stephane Payrard
Sun Microsystems France
PS: i am new and self-teached to news (and gnews), so excuse me (and
correct me) if I don't use them correctly or if this discussion has
already been raised.lrs@indetech.uucp (Lynn Slater) (08/24/89)
> I feel that an interesting feature is missing in gnuemacs: automatic > horizontal scrolling I have some of this in an enhanced picture mode. point-wysiwyg directly addresses your wish. This and other core functions are included below. (defun move-to-column-force (column) "Move to column COLUMN in current line. Differs from move-to-column in that it creates or modifies whitespace if necessary to attain exactly the specified column. This version (non-standard) insures that the column is visible, scrolling if needed." (move-to-column column) (let ((col (current-column))) (if (< col column) (indent-to column) (if (and (/= col column) (= (preceding-char) ?\t)) (let (indent-tabs-mode) (delete-char -1) (indent-to col) (move-to-column column))))) (point-wysiwyg) ) (defun point-wysiwyg () "scrolls the window horozontally to make point visible" (let* ((min (window-hscroll)) (max (- (+ min (window-width)) 2)) (here (current-column)) (delta (/ (window-width) 2)) ) (if (< here min) (scroll-right (max 0 (+ (- min here) delta))) (if (>= here max) (scroll-left (- (- here min) delta)) )))) (defun window-wysiwyg-point () "Makes point become the visible point Moves point, not the scroll. Current version good only for picture mode" (interactive) (let* ((min (window-hscroll)) (max (+ min (window-width))) (here (current-column)) (delta (/ (window-width) 2)) ) (if (< here min) (move-to-column min) (if (>= here max) (move-to-column (- max 3)) )))) Now, you just have to get point-wysiwyg called from all commands that move point. :-> I have done this for a variant of picture mode. There is probably a general way to associate this with the truncate line variable so that if lines are not truncated, point-wysiwig is called by the lower level code, but I have not explored this. =============================================================== Lynn Slater -- {sun, ames, pacbell}!indetech!lrs or lrs@indetech.uucp 42075 Lawrence Place, Fremont Ca 94538 Office (415) 438-2048; Home (415) 796-4149; Fax (415) 438-2034 =============================================================== -- =============================================================== Lynn Slater -- {sun, ames, pacbell}!indetech!lrs or lrs@indetech.uucp 42075 Lawrence Place, Fremont Ca 94538 Office (415) 438-2048; Home (415) 796-4149; Fax (415) 438-2034