효과적인 마크 링 사용


29

마크를 사용하여 버퍼 영역을 선택했습니다. 예를 들어, 시퀀스 C-<space> C-s foo를 사용하여 현재 지점과 검색 후 지점 사이의 모든 텍스트를 선택할 수 있다는 것을 알고 있습니다 foo.

최근에 마크 링이 있음을 발견하여 마크 C-<space> C-<space>를 남기고 버퍼에서 포인트를 이동 한 다음 C-u C-<space>뒤로 이동할 수 있습니다.

마크 링을 사용하여 효과적으로 탐색하기위한 제안, 안내서 또는 팁이 있습니까?


2
질문 해 주셔서 감사합니다. 나에게 발생하는 한 가지 생각은 "마크 추가"에 대한 빠른 바인딩을 만드는 것 (global-set-key (kbd "s-m") '(lambda () (interactive) (push-mark)))입니다.
Joe Corneli

답변:


22

Helm에는 로컬 및 글로벌 마크 링을 모두 검색 할 수있는 인터페이스가 helm-all-mark-rings있습니다.

간단한 설명과 스크린 샷 은 미니 가이드 를 참조하십시오 .

Ivy / Swiper / Counsel 을 선호하는 경우을 참조하십시오 counsel-mark-ring.


대단해 이를 개선 할 수있는 한 가지는 마크 링에서 마크 를 제거 하는 조치입니다 .
Joe Corneli

12

경유로 설정 set-mark-command-repeat-pop하면t

(setq set-mark-command-repeat-pop t)

C-SPC처음 호출 한 후 계속 누르면 C-u C-SPC마크 링에 저장된 이전 위치로 이동할 수 있습니다.


10

레지스터를 사용하여 위치를 표시하는 것이 더 쉽다는 것을 알았습니다. C-x r <space>그런 다음 글자를 표시 C-x r j하고 글자를 뒤로 이동합니다. 여러 개의 마크를 유지할 수 있으며 여러 버퍼를 번갈아 사용할 때 매우 유용합니다.


2
나는 항상 내 등록을 할 수있는 가장 좋은 편지를 결정하기 위해 자신을 멈춘다.
nispio

@nispio 얼마 전에 확장 git@github.com : atykhonov / iregister.el.git을 구현했습니다. 아이디어 중 하나는 어떤 레지스터를 사용할지 결정을 건너 뛸 수 있다는 것입니다. 확장 기능이 유용하지는 않지만 사용자 정의 스크립트가 무료 레지스터를 사용할 수 있다는 아이디어를 빌릴 수 있으며 사용 된 레지스터를 찾아보고 복원 할 수 있습니다.
Andriy Tykhonov

9

C-x C-x에 대한 exchange-mark-and-point유사 사용할 수있다 C-u C-space. 포인트와 마지막 마크 사이를 바운스 할 수 있습니다. transient-mark-mode표시를 활성화하고 지역을 선택함에 따라 수신 거부가 약간 이상합니다 .


C-x C-x과도 마크 모드를 사용하면 마지막으로 선택한 (iedit 모드와 함께 사용) 또는 멈춤을 선택하는 데 탁월합니다.
룬 Kaagaard

8

당신이 여기에 얻은 다른 팁들 외에도 당신을 C-s위해 마크를 설정 한다고 언급해야한다고 생각했기 때문에 명시 적으로 할 필요가 없습니다. 또한, 많은 명령 있음 ( "잠재적으로 먼 길을 이동" beginning-of-bufferend-of-buffer예를 들어)은 또한 시작 마크를 설정합니다. 마크 (팝, 교환 점 및 마크 등)를 사용하는 다른 방법과 함께 버퍼 작동 방식을 이해하면 버퍼를 사용하는 매우 강력한 방법입니다. 또한 텍스트를 버퍼에 붙일 경우, 뾰족한 텍스트를 포인트와 마크로 둘러 쌉니다.


5

(귀하의 질문은 꽤 개방적이므로 주로 의견 기반으로 닫힐 수 있습니다.)

내가 사용하는 : 차가워 다중 명령 icicle-goto-marker (바인딩은 C-- C-SPC) (모든 버퍼에 마크 주위에 여행하는 mark-ring), 그리고 icicle-goto-global-marker(은 C-- C-x C-SPC() 글로벌 마크 중 트립 global-mark-ring).

마커가있는 텍스트 줄이 완료 후보로 사용됩니다. 일부 텍스트 (예 : 하위 문자열, regexp)를 입력하여 후보를 일치하는 행으로 좁힐 수 있습니다. 일치하는 줄을 순환하면서 원하는 것을 방문 할 수 있습니다. 라이브러리 crosshairs.el를 사용하는 경우 방문한 마커의 위치가 십자형으로 일시적으로 강조 표시되므로 위치를 빠르게 확인할 수 있습니다.

다음은 doc 문자열의 일부입니다 icicle-goto-marker.

Go to a marker in this buffer, choosing it by the line that includes it.
If `crosshairs.el' is loaded, then the target position is highlighted.

By default, candidates are sorted in marker order, that is, with
respect to their buffer positions.  Use `C-M-,' or `C-,' to change the
sort order.

During completion you can use these keys:

`C-RET'   - Goto marker named by current completion candidate
`C-down'  - Goto marker named by next completion candidate
`C-up'    - Goto marker named by previous completion candidate
`C-next'  - Goto marker named by next apropos-completion candidate
`C-prior' - Goto marker named by previous apropos-completion candidate
`C-end'   - Goto marker named by next prefix-completion candidate
`C-home'  - Goto marker named by previous prefix-completion candidate
`<S-delete>' - Delete marker named by current completion candidate

Use `mouse-2', `RET', or `S-RET' to choose a candidate as the final
destination, or `C-g' to quit.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.