찾다

 >  Q&A  >  본문

Vim에서 파일을 일괄 처리하고 탭을 공백으로 변경하는 방법은 무엇입니까?

예전에는 코딩 습관이 별로 좋지 않아서 코드에 탭을 많이 사용했어요.
이제 탭을 공백으로 변환하고 싶은데 vimrc然后执行:ret命令就可以了,问题是需要被处理的文件有很多,手动为每个文件执行:ret 명령을 설정하는 것은 실용적이지 않습니다. 어떤 각도에서 이 문제를 해결할 수 있나요?

过去多啦不再A梦过去多啦不再A梦2743일 전731

모든 응답(10)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-05-16 16:43:14

    예를 들어, Python 파일만 처리하려는 경우 프로젝트 루트 디렉터리로 CD를 이동합니다.
    1. $> vim `find . -type f -name "*.py"` // VIM으로 처리할 모든 파일 열기
    2. :argdo :ret | update // vim 매개변수 목록의 모든 파일에 대해 :ret 명령을 실행하고 저장합니다

    또한 bufdo 및 windo 명령 사용법에 대해 자세히 알아볼 수 있습니다.

    위는 원본 포스터의 문제에 대해 VIM이 일일이 할 필요 없이 쉽게 이 작업을 수행할 수 있다는 점을 보여주기 위한 것입니다. 물론 위의 아이디어에 따라 스크립트를 작성하는 것도 좋은 방법입니다.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-16 16:43:14

    sed를 사용해 보세요:sed -i -e "s/t/ /g" *.py

    회신하다
    0
  • PHP中文网

    PHP中文网2017-05-16 16:43:14

    vim을 사용하지 말고 스크립트를 작성하여 처리하는 것이 좋습니다.
    쉘로 작성할 수 있으며 find + sed 명령으로 수행할 수 있습니다. Python으로도 작성할 수 있으며 os.path.walk는 파일을 탐색하여 한 줄씩 스캔합니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 16:43:14

    으아악

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:43:14

    이런 문제는 정규식을 사용해서 해결할 수 있지만, vim을 사용하여 하나씩 처리하는 것은 피하는 것이 좋습니다. 정규식을 실행하려면 Python 스크립트를 작성하는 것이 좋습니다.

    회신하다
    0
  • 黄舟

    黄舟2017-05-16 16:43:14

    expand 쉘 명령이 이를 수행합니다.

    회신하다
    0
  • 某草草

    某草草2017-05-16 16:43:14

    일괄 처리에는 정규식을 사용하는 것이 더 편하지만 꼭 vim을 사용해야 한다면 @shizhz 님의 답변이 좋습니다.

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-05-16 16:43:14

    sed -i "s/t/ /g" *.py

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 16:43:14

    으아아아

    vi(m)의 비대화형 모드를 사용하세요.
    ^I使用CTRL+V+I들어가세요.
    EOF 뒤에는 공백을 사용할 수 없습니다.
    vi(m) 명령 앞에 공백이 있을 수 없습니다.

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 16:43:14

    :h retab

    회신하다
    0
  • 취소회신하다