명령 줄에서 Vim 내에서 명령 실행
어쨌든 명령 줄에서 파일에 Vim 명령을 실행할 수 있습니까?
나는 반대가 다음과 같이 사실임을 압니다.
:!python %
하지만 :retabVim에서 파일을 열지 않고 파일을 만들고 싶다면 어떻게해야 합니까? 예를 들면 :
> vim myfile.c
:retab | wq
그러면 myfile.c가 열리고 탭을 공백으로 바꾼 다음 저장하고 닫습니다. 이 시퀀스를 어떻게 든 하나의 명령에 연결하고 싶습니다.
다음과 같습니다.
> vim myfile.c retab | wq
이것은 작동합니다 :
gvim -c "set et|retab|wq" foo.txt
set et(= set expandtab) tab문자가 올바른 공백 수로 대체 되도록합니다 (그렇지 않으면 retab작동하지 않음).
나는 보통 그것을 사용하지 않지만 vim -c ...작동합니다.
편집하다:
위에 제공된 솔루션은 기본 탭 중지 8이 적절하다고 가정합니다. 예를 들어 4의 탭 정지를 사용하려는 경우 명령 시퀀스를 사용합니다 "set ts=4|set et|retab|wq".
몇 가지 옵션이 있습니다.
-c "commands": 명령 줄에 입력 한대로 Ex 명령을 재생합니다.
귀하의 예에서 :vim myfile -c 'retab | wq'. 이것이 Firstrock이 제안한 것입니다.-S "vim source file": 주어진 vim 스크립트
(예vim -c "source 'vim source file'": running )를 소싱합니다 .다음을 포함하는 파일이있는 경우
script.vim:retab wq그런 다음 사용할 수 있습니다
vim myfile.c -s script.vim(확장자는 실제로 중요하지 않습니다)-s "scriptin file": 일반 모드 명령 이 포함되어 있으므로 파일 내용을 재생합니다script.txt.:retab ZZ줄 끝이 단일
^M문자 로 구성된 경우 (예 :를 사용하여 스크립트를 저장 한 경우:set fileformat=mac | w) 다음을 실행할 수 있습니다.vim myfile.c -S script.txt(ZZvim을 종료하고 현재 파일을 저장하는 또 다른 방법입니다).
를 사용하여 이러한 스크립트를 기록 할 수vim my_file -W script.txt있지만 gvim (GUI)을 사용하면 버그 가 발생합니다.
질문에 대한 직접적인 대답은 아니지만 파일 목록에 대해 탭을 공백으로 바꾸거나 (또는 다른 정규식 검색 / 바꾸기를 수행하려면) 내부 sed 검색 / 바꾸기를 사용할 수 있습니다.
sed -i 's/\t/ /g' foo1.txt foo2.txt
또는
ls *.txt | xargs sed -i 's/\t/ /g'
(이 예에서는 각 탭 문자를 공백 3 개로 바꿉니다.)
참고 : -i플래그는 제자리에서 작동 함을 의미합니다.
로부터 sed매뉴얼 페이지
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension
supplied)
참고 URL : https://stackoverflow.com/questions/9366243/execute-a-command-within-vim-from-the-command-line
'IT TIP' 카테고리의 다른 글
| Java 프로그램을 디버깅하는 동안 Eclipse에서 일부 기능을 실행하는 방법은 무엇입니까? (0) | 2020.11.04 |
|---|---|
| 순수 JavaScript를 사용하여 DOM 요소 값 얻기 (0) | 2020.11.04 |
| 서버 측 최적화를 위해 $ http를 통해 angular-ui의 자동 완성 기능을 서버와 연결하는 방법은 무엇입니까? (0) | 2020.11.04 |
| Robolectric은 API 레벨을 지원합니까? (0) | 2020.11.04 |
| R ggplot2 : stat_count ()는 막대 그래프에서 미적 오류와 함께 사용해서는 안됩니다. (0) | 2020.11.04 |