한 동작으로 선택 바꾸기

Oct 10 2020

편집을 위해 vim 바인딩과 함께 spacemacs를 사용하기 시작하고 있는데 가끔하고 싶은 한 가지는 일부 텍스트를 다른 텍스트로 바꾸는 것입니다. 예를 들어

k x = (1 + 1) * x

내가 선택 대체 할 (1 + 1)함께 2. 일반적으로 vim에서는 f(v%s2<Esc>.

그러나 spacemacs s에서는 vim 에서처럼 선택 항목에서 작동하지 않으며 대신 2선택 항목 주위에 배치됩니다.

k x = 2(1 + 1)2 * x

내가 원했던 것이 아닙니다. (이상하게 s정상 모드에서 완벽하게 작동하는 것 같습니다)

이제 분명히이 경우에는 di개별적으로 삭제하고 삽입 모드로 들어갈 수 있지만 일반적으로 di몇 가지 중요한 단점이 있습니다.

  • 시각적 선택 모드를 사용하여 여러 줄에 걸쳐 반복 할 수 없습니다 (매우 일반적인 사용 사례).
  • .두 가지 동작이므로 반복 할 수 없습니다 .

이전 기능을 사용하기 위해 사용할 수있는 다른 옵션이 s있습니까? 아니면 어떻게 든 내 구성을 수정해야합니까?

답변

2 1000000000 Oct 10 2020 at 05:23

제가 스페이스 맥에 대해 잘 알지 못하지만 vim과 비슷해서 emacsy 솔루션이 없을 수도 있다는 점을 제외하고는이 부분을 시작하겠습니다. 즉, spacemacs를 사용하는 제 친구가 저를 위해 이러한 제안을 테스트하고 작동 함을 확인했습니다.


당신은 당신이 사용하고 정확한 순서를 사용하지만를 대체 할 수 s로모그래퍼 c. (에서와 같이 f(v%c2<Esc>). 괄호 전체에 걸친 c모션 ab인 모션 명령을 사용하면 시각 모드 없이도 동일한 효과를 얻을 수 있습니다 . f괄호의 시작 부분에 도달 하는 명령 과 결합 하면 전체 명령 집합이 f(cab2<Esc>됩니다.