2012-11-09 4 views
1

현재 지점이 들여 쓰기 위치에 있는지 여부를 테스트하는 기능이 있습니까? 즉 포인트는 back-to-indentation의 가능한 결과입니다.포인트가 Emacs Lisp에서 들여 쓰기 지점에 있는지 확인하는 방법?

+0

back-to-indentation은 첫 번째 비 공백 문자로 커서를 이동합니다. 포인트가 공백 문자가 아닌 첫 번째 문자인지 알고 싶습니까? –

+0

네, 바로 그 것입니다. – Gerstmann

답변

2
(defun point-at-indentation-p() 
    (if (= (save-excursion (back-to-indentation) (point)) (point)) 
     (message "I'm at indentation") 
    (message "I'm elsewhere"))) 

죽은 단순한 것처럼 보입니다. 왜 다른 방식으로해야 할 지 모르겠습니다.

+0

save-excursion을 잊어 버렸습니다! 감사! – Gerstmann

1
포인트는 현재 행의 공백이 아닌 첫 번째 문자에있는 경우 다음 코드는 t를 반환합니다

, 그렇지 않으면 nil :

(looking-back "^\\s-*") 
1

내가 그런 기능을 기억할 수 없습니다. 나는 looking-back 작품을 사용하는 것이

(and (looking-at "[^ \t]\\|$") 
    (save-excursion (skip-chars-backward " \t") (bolp))) 

주를 사용하는 거라고하지만 개 느린 일부 병적 인 경우가 될 수 있도록 looking-back는 알고리즘 비효율적이다.

관련 문제