vim omni STL自动补全

来源:岁月联盟 编辑:exp 时间:2012-02-15
1) Download SGI's STL from SGI's site
( http://www.sgi.com/tech/stl/download.html)
 
2) With vim replace all __STL_BEGIN_NAMESPACE by "namespace std {" and
__STL_END_NAMESPACE by "}" (I use a macro to do this but maybe there
is a better way eg: the command :bufdo) from header and source files.
 
3) Run ctags  and put the generated tags file in a directory eg:~/MyTags
 
4) set tags+=~/MyTags/stl.tags
 
We can do step 2) and 3) use the following sh:
#!/bin/bash
mkdir stl2
mkdir stl3
 
cd stl
for i in *
do
    sed 's/__STL_BEGIN_NAMESPACE/namespace std{/' $i > ../stl2/$i
done
 
cd ../stl2
for i in *
do
    sed 's/__STL_END_NAMESPACE/}/' $i > ../stl3/$i
done
 
cd ../stl3
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ../stltags
 
cd ..
rm -rf stl2
 
rm -rf stl3
 
Make sure that the stl is the same directory with sh.

摘自 int64Ago的专栏