Vim: перемещение курсора на строку в исходном файле без сообщений об ошибках, если он не существует - PullRequest
5 голосов
/ 24 января 2010

Когда я использую vi, чтобы открыть файл * .c, я бы хотел, чтобы курсор автоматически переместился на строку «main». Если нет «main», я хочу, чтобы курсор перешел в «void» без сообщения об ошибке.

В моем .vimrc я установил

:autocmd BufRead *.c 1;/main 

но это не может реализовать все мои требования. В частности, если в каком-либо открытом исходном файле C не существует «main», vi выводит «Ошибка, не удается найти main ....», что я и хочу удалить.

Я также пытался добавить <silent> или :silent к этой строке autocmd, но она не выполняет то, что я хочу. Может кто-нибудь мне помочь? Спасибо.

Ответы [ 2 ]

3 голосов
/ 24 января 2010

Просто используйте :silent!, который запускает команды, блокирующие не только обычные сообщения, но и также ошибки.

Кстати, я рекомендую вам использовать BufReadPost (для запуска вашей команды после буфер будет загружен) и искать main как целое слово.

Так попробуйте это:

:autocmd BufReadPost *.c :silent! 1;/\<main\>
0 голосов
/ 24 января 2010

Попробуйте / main \ | ^, но если курсор в файле находится не на первой строке - это не то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...