2017-10-25 1 views
0

일부 텍스트를 찾아서 쉘 명령의 결과로 구성된 다른 텍스트로 바꾸고 싶습니다. 이 작동하지 평가판입니다 :명령 결과를 vim 명령에 삽입하십시오.

:40,43s/'height': 650/'height': system('python -c "import random; print(random.randint(500, 600))"')/g 

빔은 system('python -c "import random; print(random.randint(500, 600)') 부분을 평가하고 싶지 않다.

수정 하시길 바랍니다.

답변

4

"쉘 명령"이 올바르지 않습니다! 명령에 그 따옴표 ('"가)

  • 명령의 모든 괄호 (..)가 짝 경우 적어도 확인해야 페어링하는 경우 당신은 적어도 확인해야

    • . Vim은 :s 명령에 대한

    , 당신은 식의 결과를 얻을 수 \=를 사용해야합니다. 자세한 내용은 :h :s\=을 참조하십시오.

    귀하의 예 :

    :40,43s/\v('height':) 650/\=submatch(1)." ".system('python -c "import random; print(random.randint(500, 600))"')/ 
    

    귀하의 명령이 위의 줄에서 수정되었습니다.

  • +0

    명령이 숫자를 반환 할 때 후행 줄 바꿈을 제거하기 위해 조금만 수정하면 : ': 68,77s/\ v ('height':) 650/\ submatch (1). "시스템 ('python -c "임의의 가져 오기; print (random.randint (500, 600))") [: - 2] /' –