如何在vim中逐字定义字符串

时间:2010-12-26 06:19:25

标签: vim

有没有办法用换行符定义字符串, 在vim中逐字记录。总之,我要找的是一个vim 相当于以下bash命令

printf " 
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
* File Name :
* Last Modified :
* Created By :  
_._._._._._._._._._._._._._._._._._._._._.*/
"

我可以通过(a)单独打印每一行,(b)在每行添加“^ M”,(c)使用:r从文件中读取文本,所有这些都有点麻烦。在vim中是否有类似bash的printf的干净方式。

我想将此添加到我的〜/ .vim / after / c.vim中 每当我打开一个新的c文件时,上面的内容都会被添加到文件中。

3 个答案:

答案 0 :(得分:2)

  

我想将此添加到我的   〜/ .vim / after / c.vim这样每当我   打开一个新的c文件,添加上面的内容   到文件。

没有插件,vim建议通过读取您选择的文件类型的骨架文件的内容来完成此操作。

来自:help skeleton

To read a skeleton (template) file when opening a new file:
  :autocmd BufNewFile  *.c       0r ~/vim/skeleton.c
  :autocmd BufNewFile  *.h       0r ~/vim/skeleton.h
  :autocmd BufNewFile  *.java    0r ~/vim/skeleton.java

这完全不是互动的。有许多插件可以提供和增强此功能,包括前面提到的mu-template以及snipMate

答案 1 :(得分:0)

尝试一下:

:map foo i/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
* File Name :
* Last Modified :
* Created By :  
_._._._._._._._._._._._._._._._._._._._._.*/
<。>在〜.vimrc(Linux)

在开头注意“i”。现在你输入foo 命令模式得到结果。

答案 2 :(得分:0)

在您的特定情况下,通常的方法是依赖于BufNewFile事件触发的模板加载器/扩展器插件(TEP) - 此类功能没有标准的pathanme(即{{ 1}},.vim/after/c.vim.vim/after/plugin/c.vim并不好。

此外,一些TEP将能够做的不仅仅是填写所有文件的默认标题。例如,mu-template(我正在维护)将提供默认(可自定义)标头保护(在头文件的情况下),或包括找到的任何匹配的标头文件(在源文件的情况下)。 (也可以为每个不同的项目覆盖文件头。)