저는 elisp (프로그래밍은 아님) 초보자이며 함수를 구현하는 모범 사례에 대해 몇 가지 질문이 있습니다. 특정 규칙에 따라 어셈블러 소스 코드를 재구성하는 elisp 함수를 작성했습니다. 이 기능은 현재 한 줄에 대해 작동합니다. 기본적으로 목표를 달성하기 위해 라인 내 탐색, 하위 표현식에 대한 검색 및 교체 일치 호출을 사용합니다.
이제 표시된 영역에 적용하고 영역을 한 줄씩 처리합니다. 동작은 indent-region 함수와 유사합니다.
이를 구현하는 데 권장되고 효율적인 방법은 무엇입니까? 나는 (line-number-at-pos ...)
apply to를 사용 (region-beginning)
하고 (region-end)
줄 번호를 세는 것을 고려한 다음 위에서 아래로 이동하여 버퍼를 한 줄씩 작업하고 수정합니다.
또한이 작업을 통해 무엇을 보존해야합니까? 나는 (save-match-data ...)에 대해 그래도 마크와 포인트를 처리하는 방법을 모르겠습니다. 텍스트 범위가 변경되어 쓸모가 없을 것 같습니다.
사용하여 save-excursion
저장 점과 표시를 복원하고 save-restriction
지역을 좁힐.
템플릿은 다음과 같습니다.
(defun my-process-region (beg end)
"Apply `my-process-line` to every line in region."
(interactive "r")
(save-restriction
(widen)
(save-excursion
(narrow-to-region beg end)
(goto-char (point-min))
(while (not (eobp))
(my-process-line)))))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다