development

VIM에서 다음 N 문자 변경

big-blog 2020. 12. 7. 20:12
반응형

VIM에서 다음 N 문자 변경


다음 줄이 있다고 가정하십시오.

|add_test()          (| == cursor position)

그리고 'add'를 'del'로 바꾸고 싶습니다.

del|_test()

X를 세 번 누른 다음 i를 눌러 삽입하고 del을 입력 할 수 있습니다. 내가 원하는 것은 3c 또는 3r과 같은 것이 3자를 덮어 쓰는 것입니다. 둘 다 내가 원하는대로하지 않고, 3c는 3 개의 문자를 같은 문자로 덮어 쓰고, 3r은 몇 가지 다른 작업을 수행합니다.

수동으로 Xing하고 텍스트를 삽입하지 않고도이 작업을 수행 할 수있는 쉬운 방법이 있습니까?


3s, "3 자 대체"는과 동일합니다 c3l. 3cl그리고 c3l당신이 반복 같은 문자를 볼 줄 이유를 모르겠어요, 동일해야합니다. 나는 또한를 사용하는 팬입니다 t. 예 ct_들어 언급 된 다른 포스터처럼 문자를 세지 않아도되며 "del"만 입력하면됩니다.

나도 며칠 동안 "두어 문자 교체"에 어려움을 겪었다. 'r'은 단일 문자에 R적합하고 길이가 일치하는 문자열에 적합했지만 OP가 요구하는 것과 같은 것을 원했습니다. 그래서, 입력 :help x잠시 동안 읽고, 그것은의 설명을 밝혀 s와이 S에서 아래로 페이지의 단지 몇 있습니다 x.

즉, :help당신의 친구입니다. 읽고 배우기.


사용 C {동작} 명령

  1. cf_- 첫 번째 '_'까지 변경 (포함);
  2. ct_- 첫 번째 '_'까지 변경 (제외);
  3. cw- 첫 번째 단어를 변경합니다.

단어는 iskeyword 변수에 의해 결정됩니다 . 그것을 확인 세트 iskeyword? 다음과 같이 '_'를 제거하십시오 . : set iskeyword = @, 48-57,192-255 . 그건 그렇고 더 많은 것을 원한다면 : help c: help motion을 참조하십시오 .


나는 3cl당신이 원하는 것이라고 생각 합니다. 오른쪽으로 3 개의 문자가 바뀝니다. 나는 타자 ct_del<esc>를 쳤지 만 당신이 요청한 것이 아닙니다.


c3 ( 'c', '3', 공백)을 누른 다음 삽입 할 문자를 입력하십시오. (또는 오른쪽 화살표 또는 l공백 대신 사용할 수 있습니다 .)

또는 @Mike가 방금 댓글에서 말했듯 R이 문자 수가 삭제하려는 문자 수와 일치하면 잘 작동합니다.

또는 ct_커서에서 다음 _문자 로 변경 합니다.


작품의 길이가 같으면 R이전에 입력 한 내용을 입력 한 내용으로 바꾸는 명령을 사용할 수 있습니다 .


사용 번호가 주어진 다른 답변. 텍스트가 길면 셀 필요가 없습니다. 예를 들어 나는 종종 다음과 같은 마크 다운 파일에 헤드 라인을 만듭니다.

Some super duper long title that I don't want to have to count

선을 두 배로 늘리다 yy pp

Some super duper long title that I don't want to have to count Some super duper long title that I don't want to have to count

와 전체 라인 Highlighth V다음 사용 r{char}또는이 경우 r=얻을를 :

Some super duper long title that I don't want to have to count ============================================================== (스택 오버플로의 마크 다운 형식을 트립하기 위해 위에 공백을 추가했습니다)


'c3h'는 3 개의 문자를 다시 만들고 삽입 모드로 들어간 다음 'del'을 입력합니다.

참고 URL : https://stackoverflow.com/questions/7237204/change-the-next-n-characters-in-vim

반응형