2

例如,我如何打开一个我将用作文件模板的文件,但可能将它作为未保存的缓冲区打开?我不知道应该使用什么方法,但我希望能够在之后将其保存为应有的文件。

我的情况是一个 jekyll 博客,我有一个基本的帖子模板,并想从命令行在 vim 中打开它,这样我就可以开始帖子,然后:w *filename.md*

4

3 回答 3

3

使用saveas命令。假设您有一个名为template.md, open的帖子模板template.md,请进行一些编辑,然后不要使用:w, do :sav newPost.md

无需切换缓冲区:现在您的缓冲区将包含文件newPost.md,并且template.md在文件系统上保持不变。

于 2012-07-18T20:32:37.233 回答
3

一种方法是使用:read命令或:r简称。例如:r template.md,将 的内容读template.md入当前缓冲区。

优点:

  • 可以读取多个模板
  • 可以使用任何缓冲区,包括未保存的缓冲区甚至暂存缓冲区
  • 不必担心template.md意外保存文件
  • 可以与:!读取 shell 命令输出的方法结合使用。例如:r!ls
  • 使用范围 with:r在缓冲区中的特定点读取模板。例如:10r template.md将在第 10 行之后读入template.md

缺点:

  • 可能有一个额外的空行。这可以通过:0d_或任何您喜欢的删除行的方法轻松删除。

示例工作流程:

  1. 创建缓冲区并在模板中读取

    :new
    :r template.md|0d_
    
  2. 编辑缓冲区

  3. 保存缓冲区

    :w a-great-new-file.md
    

如需更多帮助,请参阅:

:h :r
:h :r!
:h :range
于 2012-07-18T22:00:28.193 回答
2
$ vim template.md
(edit)
:saveas filename.md

或者

$ cp template.md filename.md && vim filename.md

或者……我不确定我是否理解你的问题。

正常的工作流程是打开一个模板并“另存为...”。在 Vim 和其他所有编辑器中。那有什么问题?

或者您正在寻找模板片段扩展插件?

于 2012-07-18T20:31:46.057 回答