vim omni stl 自动补全

Posted on 2015-01-04


通过下载stl源码更新taglist

First of all,you need to make sure that you had omni installed.

  1. Download SGI’sSTL

  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/stltags.

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.

转自: http://blog.csdn.net/int64ago/article/details/7246826