有没有办法用换行符定义字符串, 在vim中逐字记录。总之,我要找的是一个vim 相当于以下bash命令
printf "
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
* File Name :
* Last Modified :
* Created By :
_._._._._._._._._._._._._._._._._._._._._.*/
"
我可以通过(a)单独打印每一行,(b)在每行添加“^ M”,(c)使用:r从文件中读取文本,所有这些都有点麻烦。在vim中是否有类似bash的printf的干净方式。
我想将此添加到我的〜/ .vim / after / c.vim中 每当我打开一个新的c文件时,上面的内容都会被添加到文件中。
答案 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(我正在维护)将提供默认(可自定义)标头保护(在头文件的情况下),或包括找到的任何匹配的标头文件(在源文件的情况下)。 (也可以为每个不同的项目覆盖文件头。)