vim не выполняет автокоманды при запуске, но читается .vimrc - PullRequest
3 голосов
/ 08 июля 2011

Чтобы сэкономить время при создании новых скриптов, я добавил следующий псевдоним в мой файл .cshrc:

alias skript 'touch \!^; chmod +x \!^; vim \!^'

Это создаст файл, который я дал в качестве аргумента skript, сделает этот файл исполняемым, а затем откроет файл в vim.

Все это работает хорошо, за исключением одного: строки autocmd в моем файле .vimrc не выполняются, даже если все параметры, указанные в .vimrc, сохранены. Если я запускаю vim напрямую, то есть не использую указанный выше псевдоним, все работает как положено.

В случае, если это уместно, строки autocmd создают заголовок по умолчанию для файлов с определенным расширением, процесс, во время которого текстовый файл шаблона должен быть прочитан.

В случае, если кто-то из вас может помочь мне с созданием заголовка в файлах, созданных с использованием моего псевдонима skript, это было бы здорово!

Большое спасибо за ваше время.

EDIT

Вот строки autocmd из моего файла .vimrc:

autocmd bufnewfile *.pl so /home/my_home/Templates/perl_template.txt
autocmd bufnewfile *.pl exe "1," . 10 . "g/creation date:.*/s//creation date: " .strftime("%d-%m-%Y")
autocmd Bufwritepre,filewritepre *.pl execute "normal ma"
autocmd Bufwritepre,filewritepre *.pl exe "1," . 10 . "g/last modified:.*/s/last modified:.*/last modified: " .strftime("%c")
autocmd bufwritepost,filewritepost *.pl execute "normal `a"

1 Ответ

1 голос
/ 10 июля 2011

Ну, чтобы закрыть этот вопрос, я переместу свой комментарий в ответ:)

BufNewFile в автокоманде означает, что файл не существует.Таким образом, он не запустится, если вы ранее создали файл с помощью команды «touch».

Я бы посоветовал взглянуть на tskeleton_vim или snipmate .Я использую снипмат с этими сниппетами .У него довольно простой синтаксис, и нет проблем с добавлением любого фрагмента, который вам может понадобиться.

В любом случае, вы можете оставить все как есть, просто запустите vim напрямую, без псевдонима, «vim test.pl» идобавить эту автокоманду в .vimrc

autocmd bufwritepost *.pl silent! !chmod +x %
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...