Я пытаюсь использовать Vim с опцией -s, чтобы запустить скрипт, который заменяет несколько строк в файле, как это (text.txt):ВИМ скрипт оставляет символы стандартного ввода
test1
ab
ac
ae
test2
sd
файл сценария как это (сценарий):
: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
находится на входе, как будто я уже напечатал его. Если я попал в него, это даст мне ошибку bash. Поэтому я должен удалить эти символы каждый раз, когда используется сценарий. Есть идеи?
Спасибо! Опция '-u NONE' была разработана, и виновником был' синтаксис on' в строке '~/.vimrc' – lonelyelk
@lonelyelk: так что где-то в ваших файлах синтаксиса (предположительно в инициализации) есть некоторый скрипт vim с ошибкой. Если вы хотите начать копать, посмотрите файлы в каталоге '$ VIMRUNTIME/syntax', начиная с' $ VIMRUNTIME/syntax/syntax.vim' и '$ VIMRUNTIME/syntax/synload.vim'. Удачи. – rici