如何在 vim 中使用文件模板

2025-06-08

如何在 vim 中使用文件模板

在现代世界中,样板是我们作为开发人员刚刚习惯的工作的一部分,也是当今使用的所有主流框架的一部分,但手动管理所有这些非常痛苦,特别是当你不想继续运行generators命令时(有些框架甚至没有那些生成器命令😥)

如果能让编辑器处理这部分,让我们专注于赚钱,那该有多好啊!嗯,vim 帮你搞定!

在帮助页面中,:help skeleton您可以找到几乎所有您想要的模板基础知识,基本上您可以在一个文件中编写您想要的模板,例如~/.vim/templates/c_main.c



int main () {
 return 0;
}


Enter fullscreen mode Exit fullscreen mode

之后,您声明一个简单的自动命令,以便在创建新文件时将其插入:



autocmd BufNewFile *.c 0r ~/.vim/templates/c_main.c


Enter fullscreen mode Exit fullscreen mode

瞧!当你创建一个新文件时,:e main.c内容将自动插入

警告:这不能通过类似命令来执行,只能通过 :e 命令

但是,让我们通过应用 vim 脚本的优点,为这张收据添加一点锦上添花!我们将为一个遵循以下模式的简单 React 组件定义一个模板ComponentName/index.tsx,其思路是根据文件夹插入一个具有正确名称的新组件。很酷吧?

首先,我们将在~/.vim/templates/react_component.tsx



export const %component_name% = () => {
  return <h1>%component_name%</h1>;
};


Enter fullscreen mode Exit fullscreen mode

注意%component_name%,这将用于替换文件夹名称。

现在我们添加自动命令:



autocmd BufNewFile */**/index.tsx 0r ~/.vim/templates/react_component.tsx | %s/%component_name%/\=expand('%:h:t')


Enter fullscreen mode Exit fullscreen mode

注意,这次我们的模式范围要窄得多,我们只想匹配以index.tsx文件夹为父文件夹的文件。另一个需要跟踪的重要部分是\=替换命令中的 ,这是 vim 脚本的扩展,因此我们可以将该函数用作expand('%:h:t')替换的一部分。

提示:您可以使用 :help \= 阅读有关替换模式的更多信息

结果正如我们所期望的:

https://asciinema.org/a/w30ozGvQIVGsoa8WGik66NxOC

新的 React 组件

鏂囩珷鏉ユ簮锛�https://dev.to/cherryramatis/how-to-use-file-templates-in-vim-3gcf
PREV
5 个被低估的 React 库⚛️ 第一部分
NEXT
了解 QuillJS - 第 1 部分(Parchment、Blots 和生命周期)