如何在 vim 中使用文件模板
在现代世界中,样板是我们作为开发人员刚刚习惯的工作的一部分,也是当今使用的所有主流框架的一部分,但手动管理所有这些非常痛苦,特别是当你不想继续运行generators
命令时(有些框架甚至没有那些生成器命令😥)
如果能让编辑器处理这部分,让我们专注于赚钱,那该有多好啊!嗯,vim 帮你搞定!
在帮助页面中,:help skeleton
您可以找到几乎所有您想要的模板基础知识,基本上您可以在一个文件中编写您想要的模板,例如~/.vim/templates/c_main.c
:
int main () {
return 0;
}
之后,您声明一个简单的自动命令,以便在创建新文件时将其插入:
autocmd BufNewFile *.c 0r ~/.vim/templates/c_main.c
瞧!当你创建一个新文件时,:e main.c
内容将自动插入
警告:这不能通过类似命令来执行,只能通过 :e 命令
但是,让我们通过应用 vim 脚本的优点,为这张收据添加一点锦上添花!我们将为一个遵循以下模式的简单 React 组件定义一个模板ComponentName/index.tsx
,其思路是根据文件夹插入一个具有正确名称的新组件。很酷吧?
首先,我们将在~/.vim/templates/react_component.tsx
export const %component_name% = () => {
return <h1>%component_name%</h1>;
};
注意%component_name%
,这将用于替换文件夹名称。
现在我们添加自动命令:
autocmd BufNewFile */**/index.tsx 0r ~/.vim/templates/react_component.tsx | %s/%component_name%/\=expand('%:h:t')
注意,这次我们的模式范围要窄得多,我们只想匹配以index.tsx
文件夹为父文件夹的文件。另一个需要跟踪的重要部分是\=
替换命令中的 ,这是 vim 脚本的扩展,因此我们可以将该函数用作expand('%:h:t')
替换的一部分。
提示:您可以使用 :help \= 阅读有关替换模式的更多信息
结果正如我们所期望的:
https://asciinema.org/a/w30ozGvQIVGsoa8WGik66NxOC
鏂囩珷鏉ユ簮锛�https://dev.to/cherryramatis/how-to-use-file-templates-in-vim-3gcf