我正在学习 Vim,并且我已经成功地设置了我的 .vimrc 文件,这样每当我创建一个新的 python .py 文件时,就会自动生成相应的 shebang 和 header。耶我!
但是,在构建终端管道时,我并不总是喜欢为我管道到的程序包含 .py 扩展名。因此,shebang 不会自动生成。伤心!
在不重复我为 autocmd 编写的内容的情况下(因为这是我学习的方式,我需要大量的尝试和错误才能编写),我可以在 INSERT 模式下映射一个像“pyhead”这样的字符串,或者创建一个与 autocmd 相关联的宏以轻松实现当我选择不使用 .py 扩展名时,我的 shebangbang?我觉得对已经存在的命令的简单映射应该可以防止混乱的 .vimrc。我已将我的 autocmd 放在一个 augroup 中,如下所示:
augroup Shebang
autocmd BufNewFile *.py 0put =\"#!/usr/bin/env python\<nl>...
...# -*-coding: utf-8 -*-\
...<nl>\<nl>\"
...|put ='#'.expand('%:t')
...|put =\"#<My_NAME>\"
...|put ='#LAST UPDATED: '.strftime('%m-%d-%Y')\|$
augroup end
为了清楚起见,autocmd 都在一行上,但我包括三个点来表示继续(这样您就不需要滚动)。如果这是一个愚蠢的要求,并且有一个简单的答案,请谴责。谢谢!