vim编写C代码的一些设置
来源:互联网 发布:风险矩阵评价法 编辑:程序博客网 时间:2024/05/28 01:36
一些写代码时候常用,而且灰常有用的命令(类似上下左右的基础命令就不说了):
ctags -R
:Tlist
ctr + ]
ctr + o
ctr + ww
%
Ctrl+u
Ctrl+d
Ctrl+f
Ctrl+b
[[
]]
{
}
/string
?string
u
.
/etc/vimrc 文件设置(fc9下)的一些参数:
1) 打开vimrc,添加以下语句来使得语法高亮显示:
syntax on
2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
export TERM=xterm-color
3、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
1)不讨论制表符为8还是为4较好,这里设置(软)制表符宽度为4:
set tabstop=4
set softtabstop=4
2)设置缩进的空格数为4
set shiftwidth=4
3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
set autoindent
4)设置使用 C/C++ 语言的自动缩进方式:
set cindent
5)设置C/C++语言的具体缩进方式(以我的windows风格为例):
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
PS:
自动缩进有两个选项:
代码:
set autoindent
set cindent
autoindent 就是自动缩进的意思,当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o 或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是"自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。
cindent 就不同了,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。
用vim和其他工具整理代码缩进的方法:
可以拿 indent 整理代码
同样可以拿 indent 把代码打乱
现在俺不用indent格式化代码了,只用vim ggVG=
上面命令等同命令
lz 的情况只要在 VC 里全选然后 Alt+F8 一下就 OK 了,好像是这个快捷键。
emacs
单个函数: M C + h
整个文件: C + x h
要我就用find . -type f -exec perl -i -pe 's/xx/yy' {} \;把文本的函数名,变量都全部替换一下
也就几条命令就ok了
不影响编译,不影响功能
打乱代码没有用. 用CB(C BEAUTIFY)等工具转换一次就好了. 比原来还美丽.
要真故意不让人明白, 最可怕的是将变量名字全部替换为无意义的新名字. 不影响编译,同时大大降低可读.
没用扰码器
看来还是手下留情了
去除C注释的三类方法
1、strip_c_comment1.awk 正则方法
BEGIN { ORS = "" }
{ code = code $0 "\n" }
END {
while ( length(code) )
code = process( code )
}
function process( text )
{
if ( c99 ) {
if ( match( text, /"|'|\/\*|\/\// ) )
return span( text )
} else {
if ( match( text, /"|'|\/\*/ ) )
return span( text )
}
print text
return ""
}
function span( text , starter )
{
print substr( text, 1, RSTART - 1 )
starter = substr( text, RSTART, RLENGTH )
text = substr( text, RSTART + RLENGTH )
if ( "\"" == starter || "'" == starter )
return quoted( text, starter )
if ( "//" == starter )
return remove( text, "\n", "\n" )
## Allow for
## ") {