키보드 매크로에서 다음 줄을 처리하는 방법?


12

다음을 사용하여 버퍼에서 라인을 결합하는 키보드 매크로를 만들었습니다.

F3 C-n M-x join-line RET F4.

줄이 너무 길어서 줄 바꿈을 시작하는 경우를 제외하고는 잘 작동합니다.이 매크로는 프레임의 너비에 따라 달라집니다. next-line다음 실제 행으로 이동하지 않고 현재 행의 "래핑"부분으로 이동하는 것 같습니다.

그 문제를 해결하는 방법?

답변:


13

당신은 세 가지 옵션 :

  1. 매크로를 정의 할 때 next-logical-line대신 사용하십시오 next-line.

    커서를 세로로 아래로 이동하십시오 ARG. next-line변수의 값을 무시하고 항상 비주얼 라인 대신 논리 라인으로 이동한다는 점을 제외하면 이는 동일 합니다 line-move-visual.

  2. 설정 line-move-visual합니다 nil:

    (setq line-move-visual nil)

    이 만드는 next-line처럼 행동을 next-logical-line기본적으로.

  3. 다음을 수행하여 줄 잘림을 설정하십시오.

    M-x toggle-truncate-lines RET

    매크로를 기록하기 전에.


완전한! 감사. 그래도 어떤 상황에서 당신 next-line의 현재 행동을 선호하는지 궁금합니다 next-logical-line...
Sébastien Le Callonnec

@ SébastienLeCallonnec 모든 것에 대한 유스 케이스가 있다고 생각합니다 ... 그리고 Emacs가 모든 것을 처리한다는 것을 아는 것이 좋습니다.)
itsjeyd

1
@ SébastienLeCallonnec Erm ... 자연어로 쓸 때? 비선형 상황에서 <down>또는을 누르면 C-n일반적으로 선 경계를 넘지 않고 한 줄 아래로 이동합니다. (더 줄 바꿈 모두에서이없는 경우)이없는 모든 사용자가 메모장에서 오는 생각 ... 이모, 예외 상황이 아니라입니다 next-logical-line행동을 예상되고, 이러한 상황에서, 나는 종종 해제하는 경향이 visual-line-mode전부. 그리고 @itsjeyd +1, 상황에 따라 행동을 취할 수 있다는 것이 정말 좋습니다.
T. Verron

2
@ T.Verron Fair로 충분합니다. 난 항상 바인딩 할 수 있습니다 생각 C-nnext-logical-line. ;)
Sébastien Le Callonnec

0

C-a그리고 C-e모두는 당신이 줄을 건너 뛸 수있는 접두사 인수를. 예를 들어, C-2 C-a다음 줄의 시작 부분으로 이동하고 다음 줄 C-2 C-e의 끝으로 이동합니다. 접두어 인수 3 은 두 줄을 이동합니다. 음수 인수를 사용하여 이전 행으로 이동할 수도 있습니다.

커서가 같은 열에 있어야 할 때 분명히 많이 사용되지는 않지만 어쨌든 대부분의 매크로는 줄의 시작 또는 끝으로 이동하는 것을 포함하므로 매우 편리합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.