2013-02-06 11 views
5

W Elisp ten pozornie łatwy spokój kodu nie przesuwa punktu.z buforem prądu nie porusza się punkt

(with-current-buffer "foo" 
    (goto-char (point-max))) 

AFAIK with-current-buffer nie należy przywrócić do punktu docelowego w buforze. Jeśli nie, to w jaki sposób mogę manipulować punktem w buforze?

+0

to kod, który działa - '(MAPC (lambda (Win) \t (chyba (równanie (wybrany okienkująca) win) \t \t (z wybranym-okno wygrać \t \t (GoTo Char (punkt -min)) \t (forward-line (1- wiersz))))) \t (get-buffer-window-list emms-lyrics-buffer nr t)) ' – navgeet

+1

Polecam' dolist' zamiast 'mapc '(marginalnie szybszy, a często wcięcia nieco lepsze). – Stefan

Odpowiedz

6

Myślę, że mylisz punkt bufora z punktem okna. Jeśli chcesz przesunąć kursor w oknie pokazującym "foo", musisz wybrać to okno podczas wykonywania goto-char, lub musisz użyć set-window-point. Ogólnie rzecz biorąc, bufor ma N + 1 punktów (jeden to jego własny, a N to dla okien N, które wyświetlają bufor).

0

spróbować zrobić:

(set-buffer "foo") 
(goto-char (point-max)) 
+0

To też nie działa. Btw, foo jest świeżo utworzonym buforem. – navgeet

1

Możecie użyć switch-to-buffer a następnie wrócić.

Powiązane problemy