Vim의 파일에있는 문자열의 모든 경우를 args and argdo commands의 조합으로 바꿀 수있는 방법이 있습니다. 불행하게도이 솔루션에는 다음과 같은 단점이 있습니다. 큰 프로젝트에서 문제가 될 수있는 모든 파일이 열립니다. 누구든지 더 작고 메모리 효율적인 방법을 알고 있습니까? 여기Vim : 큰 프로젝트에서 찾기 및 바꾸기?
답변
find projectfolder -type f -exec grep -Iq 'pattern' {} \; -exec vim {} +
이 솔루션에는 약간의 문제가 있습니다 :'Vim : Warning : 입력이 터미널에서 나오지 않습니다 '. 그러면 vim을 종료 한 후에 콘솔이 깨지게됩니다. 그 이유는 xargs가 표준 입력이 사용자의 터미널이 아닌 환경에서 인수 명령을 실행하기 때문입니다. 그래서 나는 다음과 같은 형식을 제안 할 것이다 :'find projectfolder -type f -exec grep -Iq 'pattern'{} \; -print | xargs sh -c ' dev/tty vim $ *' ' – nab
@nab 좋은 지적. 몇 가지 테스트를 거친 후, 나는 (놀랍게도 적어도 나에게)'-print0 | xargs ... '에서'-exec ... +'로 바뀌었다. 그것은 실제로 어떤 의미를 갖습니다. '찾기'만으로는 자녀가 할 수 있도록 표준을 읽지 않습니다. 그것은 내가 본 두 가지 기능의 첫 번째 차이점입니다. – Kevin
내가 (내가 perl
을 사용하지 않는 경우) 그것을 할 방법은 다음과 같습니다
find . -name '*.java' -exec vim +'%s/OldName/NewName/gc' +'wq' {} \;
즉, 모든 "* 된 .java"파일 "을 NewName"와 "만일 oldname"를 대체하지만, 나에게 메시지를 표시 각 대체에 대한 확인을 위해.
- 1. 찾기 및 바꾸기 JavaScript로 바꾸기
- 2. 찾기 및 바꾸기 - 정규 표현식
- 3. VIM 검색 및 바꾸기 regex
- 4. for 루프없이 찾기 및 바꾸기
- 5. sql 찾기 및 바꾸기
- 6. Regex 찾기 및 바꾸기
- 7. 찾기 및 바꾸기 Textarea
- 8. 찾기 및 바꾸기 Textarea
- 9. notepad ++ 찾기 및 바꾸기
- 10. 찾기 및 바꾸기 일괄
- 11. 리눅스 찾기 및 바꾸기
- 12. 찾기 및 바꾸기 기능
- 13. QueryPath로 찾기 및 바꾸기
- 14. Xcode 프로젝트에서 모든 메서드의 여는 중괄호 찾기 및 바꾸기
- 15. StringBuilder 문자열 찾기 및 바꾸기 찾기
- 16. Jquery 찾기 및 바꾸기 숫자
- 17. Postgres에서 정규식 찾기 및 바꾸기
- 18. 메모장을 사용하여 찾기 및 바꾸기 ++
- 19. 여러 파일 찾기 및 바꾸기
- 20. VBA 단어 - 찾기 및 바꾸기
- 21. 펄 정규식 찾기 및 바꾸기
- 22. C에서 텍스트 찾기 및 바꾸기
- 23. regex - 메모장 찾기 및 바꾸기 ++
- 24. Ruby에서 파일 찾기 및 바꾸기
- 25. 파일에서 찾기 및 바꾸기 - UTF8
- 26. SQL : 찾기 및 바꾸기 SQL?
- 27. SQL 문자열 찾기 및 바꾸기
- 28. 방정식 찾기 및 바꾸기 (정규식?)
- 29. Texmate 정규식 찾기 및 바꾸기?
- 30. PHP 정규식 - 찾기 및 바꾸기
vim을 사용해야합니까? 나는 sed를 사용할 것입니다, 그것은 직업을위한 더 나은 도구입니다. –
@GregHewgill Vim regexp에서'gc' 플래그와 같은 특별한 변화를 확인하고 싶습니다. 단지'sed -i'를 사용하는 것이 나에게 위험한 것 같다. – nab
어쨌든 모든 변경 사항을 살펴 보려면 sed를 사용하고 결과 diff를 검사하십시오. –