为了节省创建新脚本的时间,我在.cshrc文件中添加了以下别名:
alias skript 'touch \!^; chmod +x \!^; vim \!^'
这将创建我作为skript
的参数提供的文件,使该文件可执行,然后在vim中打开该文件。
所有这些都很有效,除了一件事:我的.vimrc文件中的autocmd
行不会被执行,即使.vimrc中指定的设置都已到位。如果我直接启动vim,即不使用上面的别名,则所有事情都会按预期工作。
如果这是相关的,autocmd
行会为具有特定扩展名的文件生成默认标头,在此过程中必须读取模板文本文件。
如果您有任何人可以帮助我在使用我的skript
别名创建的文件中生成标题,那将非常棒!
非常感谢你的时间。
修改
以下是我的.vimrc文件中的autocmd
行:
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"
答案 0 :(得分:1)
好吧,关闭这个问题,我会将我的评论移到答案中:)
自动命令中的BufNewFile表示不存在的文件。因此,如果您在使用'touch'命令之前创建文件,它将无法运行。
我建议您查看tskeleton_vim或snipmate。 我正在使用these snippets的snipmate。它的语法非常简单,添加您可能需要的任何代码段都没有问题。
无论如何,您可以保持原样,只需直接运行vim,不带别名“vim test.pl”并将该自动命令添加到.vimrc
autocmd bufwritepost *.pl silent! !chmod +x %