텍스트 대체를 위해 vim에서 한 줄만 대상으로 지정

텍스트 대체를 위해 vim에서 한 줄만 대상으로 지정

문자열 대체를 위해 파일의 특정 라인 하나를 대상으로 vi(m)에 방법이 있습니까?

웹 서버의 SSL SHA 지문을 Mercurial .hgrc에 자주 추가해야 합니다. 자물쇠를 두 번 클릭하고 인증서 세부정보를 보면 Chrome에서 필요한 서명을 매우 쉽게 얻을 수 있지만 Mercurial에서 원하는 콜론 구분 기호가 아닌 공백 구분 기호가 포함된 서명을 얻습니다.

06 32 1C C5 8A 49 77 85 C5 89 6F 67 75 96 F0 43 77 96 EB 90

구글 코드.

다음과 같은 방법이 있습니까?

  1. 해당 지문을 내 클립보드에 복사하세요.
  2. vi(m)를 사용하여 내 .hgrc를 편집합니다.
  3. 해당 지문을 붙여넣으려면 삽입 모드로 이동하세요.
  4. 해당 라인만 타겟팅하십시오.

    :s/ /:/g

  5. 파일을 저장하세요

지금은 지문을 새 파일에 붙여넣고 대체 작업을 수행한 후 다음을 사용하여 .hgrc로 가져올 수 있습니다.:r 파일 이름, 하지만 건너뛰어도 괜찮을 추가 단계입니다.

답변1

그것을 알아 냈습니다 :

수정하려는 줄로 커서를 이동하고 다음을 수행하십시오.

.s/ /:/g

'.' 대체 명령 앞에는 vi(m)에게 현재 줄만 수정하고 싶다고 알려줍니다.

참조:http://www.kingcomputerservices.com/unix_101/search_and_replace_with_vi_part_1.htm

답변2

N 라인 뒤에 삽입하려면 다음을 수행하십시오.

:N put =substitute(@+, ' ', '', 'g')

파일 끝: N=$ ; 파일 시작: N=0. @+는 클립보드 레지스터입니다(GUI가 실행 중일 때).

답변3

간단히 :s/ /:/g말해서 괜찮을 것입니다.

:substitute명령은 기본적으로 현재 줄에서만 작동합니다.

전역 수정 자는 /g전체 파일이 아닌 지정된 범위의 모든 일치 항목을 바꾸는 것을 의미합니다.)

답변4

너 이러려고 그러는 거야?

echo "06 32 1C C5 8A 49 77 85 C5 89 6F 67 75 96 F0 43 77 96 EB 90" >> <filename>

관련 정보