加载中…
个人资料
niceqian
niceqian
  • 博客等级:
  • 博客积分:0
  • 博客访问:32,782
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

vim模版设置

(2013-01-06 16:54:17)
标签:

杂谈

分类: 技术

VIM模板

2012-08-08 21:47:53| 分类: 工具 | 标签: |字号 订阅

当新建莫类型文件时,用editplus会有模板文件提供使用,就是会自动生成文档的部分内容。在vim中可以通过autocmd+BufNewFile 来实现静态的模板文件。

1)首先编写模板文件

建立目录~/.vim/template


    makdir ~/.vim/template 

然后编写模板文件


    vim c.tlp 

将需要自动生成的内容插入其内

2)修改vimrc


    autocmd BufNewFile *.c  0r  ~/.vim/template/c.tlp 

这样就开以在新建*.c文件时自动插入内容了。



智能灵活的自动加载模板的Vim插件

[介绍]
其实是昨天晚上刚想到要在Vim中使用模板的, 可是我为对Vim Script知之甚少. 都是根据需要现查手册的.

其实脚本很简单, 不仅简短, 而且没有什么复杂度. 但是我感觉它的设计理念很特别.

该脚本是根据新建文件的名字来确定模板的. 它不仅仅参考扩展名, 还要看有没有对应的全名模板.
例如, main.cc 文件中会写main函数, 而其他的 .cc 文件则不然. 显然它们需要使用不同的模板. 如果你为 main.cc 提供了模板, 就不会再应用为 .cc 文件提供的模板了.

另一个创新机制是, 该插件把模板分为普通的静态模板更为灵活的动态模板.
普通模板机制需要有一些模板文件, 当对应的文件被创建时, 直接使用模板文件的内容. 而动态模板需要一些可执行的程序(或脚本), 被称为模板生成器. 当相应的文件被创建时, 把这样的程序的输出作为缓冲区的内容.
例 如, 每个 C/C++ 头文件中都会有头文件保护符(就是一个条件宏定义). 需要定义的宏是和当前的文件名相关联的, 所以这时用静态模板就无法实现了. 所以该插件引入了动态模板机制. 你只需要为相应类型的文件提供一个模板生成器, 该脚本会使用新建的文件名作为参数调用你的生成器, 而生成器的标准输出将作为模板的内容送往缓冲区.


[使用]

首先需要在~/.vimrc文件中定义一些全局变量.

代码:
let g:enable_template = 1
let g:template_dir = "~/.vim/templates"

g:template_dir 告诉插件存放模板文件(和模板生成器)的顶层目录.
其中, 普通的静态模板放在 g:template_dir/common 目录下面.
动态模板生成器放在 g:template_dir/dynamic 目录下面.
这两个目录下面都有两个相同的子目录, "ext/" 和 "full/". ext/ 目录中存放的是按扩展名提供的模板, full/ 目录中提供全名模板.

[示例 1] 为 .sh 文件应用静态模板.
假如在.vimrc中设置的模板顶层目录是 "~/.vim/templates", 那么该 .sh 模板文件应该是: ~/.vim/templates/common/ext/sh
[注: 因为是普通静态模板, 所以放在 common 目录, 因为是特定于扩展名的模板, 所以放在 ext 目录下]

~/.vim/templates/common/ext/sh 文件中写入如下内容:
#!/bin/bash
# Author: Wonder
# Description:


上面的内容就会变成我们每次在Vim中新建的 .sh 文件的初始内容.

[示例 2] 为 C/C++ 头文件(.h文件)应用动态模板
基于同示例1中相同的假设. 现在我们要写一个模板生成器: ~/.vim/templates/dynamic/ext/h
内容可以象下面这样:
#!/bin/sh
# Generate template content for a c/c++ header file.
# usage: $0
[ -z "$1" ] && exit 1

head_def=`echo __${1}__ | tr "a-z.-" "A-Z__"`
cat << EOF
#ifndef $head_def
#define $head_def

#endif // #ifndef $head_def
EOF


别忘了生成器是要被插件调用的, 所以请给它执行权限:
代码:
chmod +x ~/.vim/templates/dynamic/ext/h

这样, 当头文件 say-hello.h 被创建时, 它的初始内容是这样的:
引用:
#ifndef __SAY_HELLO_H__
#define __SAY_HELLO_H__

#endif // #ifndef __SAY_HELLO_H__


附件:
templates.tar.gz [1.74 KiB]
被下载 25 次


下面这个是在Lily的指点下, 去掉加载模板时的提示的版本.
附件:
templates.tar.gz [1.74 KiB]
被下载 41 次



ubuntu下配置vim

1、安装vim
sudo apt-get install vim-full
2、配置文件的位置
在目录 /etc/vim下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
3、设置语法高亮显示
1) 打开vimrc,添加以下语句来使得语法高亮显示:
syntax on
2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
export TERM=xterm-color

4、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
1)设置(软)制表符宽度为4:
set tabstop=4
set softtabstop=4
2)设置缩进的空格数为4
set shiftwidth=4
3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
set autoindent
4)设置使用 C/C++ 语言的自动缩进方式:
set cindent
5)设置C/C++语言的具体缩进方式:
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
6)如果想在左侧显示文本的行号,可以用以下语句:
set nu
7)最后,如果没有下列语句,就加上吧:
if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif

无论在Linux下,还是win下,修改vim配置文件尽量修改自己用户主目录下的.vimrc(在win中是_vimrc)
在Ubuntu下使用sudo apt-get install vim-full将vim更新成完整版(不一定非得完整版的吧?)
第二步,在当前用户的主目录下新建文件.vimrc,内容如下:

1、安装vim
sudo apt-get install vim-full
2、配置文件的位置
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
3、设置语法高亮显示
1) 打开vimrc,添加以下语句来使得语法高亮显示:
syntax on
2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
export TERM=xterm-color

4、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
1)设置(软)制表符宽度为4:
set tabstop=4
set softtabstop=4
2)设置缩进的空格数为4
set shiftwidth=4
3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
set autoindent
4)设置使用 C/C++ 语言的自动缩进方式:
set cindent
5)设置C/C++语言的具体缩进方式:
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
6)如果想在左侧显示文本的行号,可以用以下语句:
set nu
7)最后,如果没有下列语句,就加上吧:
if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif

更多内容如下:
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 一般设定 网址:http://salogs.com/category/linux系统管理/vim/
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
1、设置光标行
set cursorline
这条命令会在vim的光标所在行上标记为一条横线
还可以修饰一下条横线:
highlight CursorLine guibg=lightblue ctermbg=lightgray
2、设置光标列
set cursorcolumn

" 设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

" 不要使用vi的键盘模式,而是vim自己的
set nocompatible

" history文件中需要记录的行数
set history=100

" 在处理未保存或只读文件的时候,弹出确认
set confirm

" 与windows共享剪贴板
set clipboard+=unnamed

" 侦测文件类型
filetype on

" 载入文件类型插件
filetype plugin on

" 为特定文件类型载入相关缩进文件
filetype indent on

" 保存全局变量
set viminfo+=!

" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-

" 语法高亮
syntax on

" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
:match OverLength '\1v.*'

" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文件设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 不要备份文件(根据自己需要取舍)
set nobackup

" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide

" 字符间插入的像素行数目
set linespace=0

" 增强模式中的命令行自动完成操作
set wildmenu

" 在状态行上显示光标所在位置的行号和列号
set ruler
set rulerformat= (%2*%

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
后一篇:突然的自省
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    后一篇 >突然的自省
      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有