나는이 (text.txt)와 같은 파일에 일부 라인을 대체하는 스크립트를 실행하려면 -s 옵션을 사용하여 정력을 사용하기 위해 노력하고있어 문자 잎 이 (스크립트) :정력 스크립트는 표준 입력
:silent %s/test1\zs\_.\+\zetest2/\=substitute(submatch(0), '\n\(\w\)', '\n#\1', 'g')/g
:wq
그것은 test1과 test2 사이의 줄을 주석 처리합니다. 그게 내가 원하는거야. 내가 원하지 않는 것은 출력 전후에 출력됩니다. 나는 그것을 실행하고 얻을 :
[email protected]: ~/vimtest$ vim -s script text.txt
^[[?1;[email protected]: ~/vimtest$ 1;2c
그래서 ^[[?1;2c
이미 나쁜 소식입니다하지만 난 이미 입력 한 것처럼 1;2c
입력입니다. 내가 Enter를 누르면 내게 bash 오류가 발생합니다. 따라서 스크립트를 사용할 때마다 이러한 기호를 제거해야합니다. 어떤 아이디어?
고마워요! '-u NONE' 옵션이 풀렸고 범인은'~/.vimrc'의'syntax on'줄이었습니다 – lonelyelk
@lonelyelk : 문법 파일 어딘가에 (아마도 초기화 과정에서) 버그가있는 vim 스크립트가 있습니다. 파기를 시작하려면'$ VIMRUNTIME/syntax/syntax.vim'과'$ VIMRUNTIME/syntax/synload.vim'로 시작하는'$ VIMRUNTIME/syntax' 디렉토리의 파일을보십시오. 행운을 빕니다. – rici