Ex 모드의 Vim은 다음과 같은 경우에 유용합니다.
- 비 대화식으로 (스크립트의 일부로) 파일을 여러 개로 편집해야합니다.
- 작업 후 연결이 매우 느리거나 화면이 업데이트되지 않습니다.
- 매핑 및 약어가 비활성화되었습니다.
- 공통 키와 같은 공통 키 Escape또는 Control제대로 작동하지 않습니다.
Vim Ex Mode는 기본적으로 vi
시각적 모드입니다. ex
Vim Ex Mode는 단지 ex
동일한 코드를 실행하는 것이므로 ex
vi 내에서 또는 그 반대로 명령 모드로 이동할 수 있습니다. 실제로 Ex 모드 ( vim -e
)와 개선 된 Ex 모드의 두 가지 모드 가 있으며 vi 호환 Ex 모드 ( vim -E
) 보다 고급 명령이 가능합니다 . 참조 : 예 모드와 개선 전 모드의 차이점은 무엇입니까?
예 편집자의 가족의 뿌리이다 edit
, ex
하고 vi
. Ex는 수퍼 세트이며 ed
가장 주목할만한 확장명은 디스플레이 편집 기능입니다. 예 (1)
비 대화식으로 파일을 편집하는 것이 가장 일반적인 사용법이며 사람들은 sed
and와 비슷한 방식으로 파일을 사용 awk
하지만 더 스트림 지향적입니다. 파일을 처음부터 끝까지 만 읽습니다 (여러 줄에서 작동하도록 설계되지 않았습니다) ) vim
는 버퍼 지향적입니다. 파일을 원하는대로 앞뒤로 움직일 수있어 매우 강력합니다.
원래:
sed
A는 S의 tream의 ED의 당사 홈페이지가 아닌 파일 편집기.
그럼에도 불구하고 사람들은 파일을 편집하려고 시도하여 파일을 남용하는 것처럼 보이며 사실은 파일을 편집하지 않는다는 것입니다. 둘째, in-place ( -i
) 와 같은 옵션 은 비표준 FreeBSD 확장이며 다른 운영 체제에서는 사용하지 못할 수 있습니다. 따라서 이식 불가능한 코드, I / O 오버 헤드 및 부작용 (예 : 심볼릭 링크 제거)을 피 ex
하려면 표준 UNIX 명령 기반 편집기 ( BashFAQ 와 함께 ed
)를 사용해야 합니다.
Ex 모드에서 유용하다고 생각하는 다른 것들은 python
많은 명령을 연속으로 실행, 정규 표현식 작업 / 디버깅, vim 구성 확인, 외부 명령 실행 또는 레지스터 작업 등을 수행 할 수 있는 놀이터 ( 콘솔 과 유사 )로 사용하는 것입니다. .
예를 들면 다음과 같습니다.
let @d = '<td></td>'
let @r = '<tr>' . repeat(@d, 5) . '</tr>'
echo @r
let @t = '<table>' . repeat(@r, 5) . '</table>'
reg
Ex 모드에서는 일반 모드보다 더 쉽습니다 (마지막 명령 만 볼 수 있음).
실제 사용법
내에 다음과 같은 별칭이 있습니다 .bash_aliases
.
alias trim="ex +'bufdo!%s/\s\+$//e' -scxa"
alias retab="ex +'set ts=2' +'bufdo retab' -scxa"
참고 : 사용 bufdo
은 ex
POSIX 호환 방법 이 아니므로 ( manual에 따라 ) find
대신 사용하는 것을 고려할 수 있습니다 . 은 !
(달리 발생 경고) 저장하지 않고 버퍼를 강제 전환하는데 사용된다.
모든 소스 파일에서 후행 공백을 자르는 데 사용하는 첫 번째 파일은 다음과 같습니다.
trim **/*.php
두 번째는 모든 탭을 공백으로 재귀 적으로 변환 합니다 . 예를 들면 다음과 같습니다.
retab **/*.php
나를 위해 사용하는 retab
것으로 충분하지만 여기에 설명 된 단점이 있습니다 . -V
더 자세한 출력을 위해 추가하십시오 .
zsh / bash4 globbing ( **
)을 사용하는 위의 예제 는 쉘이 지원하고 활성화되어 있는지 확인하십시오.
보다 실용적인 예제 (html 파일 구문 분석과 같은)를 확인하려면 다음을 확인하십시오.
Ex-mode에 대한 자세한 내용은 다음을 참조하십시오.
Q
와q:
매우 다르다. 당신은 단지Q
오른쪽을 참조하고 있습니까?