[24335] 2015-09-29_Vim自动补全神器:YouCompleteMe

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-18
2015-09-29_Vim自动补全神器:YouCompleteMe V i m   Y o u C o m p l e t e M e L i n u x   2 0 1 5 - 0 9 - 2 9 ? Y o u C o m p l e t e M e 使 I D E i e V i m V i m a c p o m n i c p p c o m p l e t e r S y n t a s t i c
v i m : t a g s v i m a p p l e c l a n g _ c o m p l e t e A u t o C o m p l P o p S u p e r t a b n e o c o m p l c a c h e S y n t a s t i c c / c + + / o b j - c c c + + o b j - c c # p y t h o n v i m o m n i c p p c o m p l e t e r a c p c - x ,   c - n c t a g s c l a n g / l l v m Y o u C o m p l e t e M e c l a n g / l l v m o m n i f u n c p h p r u b y
j a v a s c r i p t   - t e r n _ f o r _ v i m r u b y / j a v a   - e c l i m 使 使 I D E t a g s a c p t a g s 使 v i m Y C M 使 v i m 使 Y C M V i m 7 . 3 . 5 8 4 + + p y t h o n c m a k e m a c h o m e b r e w u b u n t u r u b y i n c l u d e : w v i m   - - v e r s i o n b r e w   i n s t a l l   c m a k e s u d o   a p t - g e t   i n s t a l l   c m a k e
v u n d l e v i m m a c 退 v i m Y o u C o m p l e t e M e : c - f a m i l y Y C M c l a n g v i m Y C M i s s u e # 8 0 9 . v i m r c 1 .   B u n d l e   ' V a l l o r i c / Y o u C o m p l e t e M e ' 1 .   : B u n d l e I n s t a l l v u n d l e 1 .   c d   ~ / . v i m / b u n d l e / Y o u C o m p l e t e M e 2 .   . / i n s t a l l   - - c l a n g - c o m p l e t e r - - c l a n g - c o m p l e t e r c # - - o m n i s h a r p - c o m p l e t e r - - s y s t e m - l i b c l a n g
使 使 1 .   c l a n g   Y C M   >   3 . 2 2 .   p y t h o n - d e v u b u n t u 使 m a c c o m m a n d   l i n e   t o o l s 3 .   ~ / y c m _ t e m p / l l v m _ r o o t _ d i r Y C M I D E v i m Y C M v i m Y C M : B u n d l e I n s t a l l 1 .   g i t   c l o n e   - - r e c u r s i v e   h t t p s : / / g i t h u b . c o m / V a l l o r i c / Y o u C o m p l e t e M e . g i t g i t   s u b m o d u l e   u p d a t e   - - i n i t   - - r e c u r s i v e c l a n g s u d o   a p t - g e t   i n s t a l l   p y t h o n - d e v a .   c d   ~   b .   m k d i r   y c m _ b u i l d   c .   c d   y c m _ b u i l d   d .   c m a k e   - G   " U n i x   M a k e f i l e s " - D P A T H _ T O _ L L V M _ R O O T = ~ / y c m _ t e m p / l l v m _ r o o t _ d i r   . ~ / . v i m / b u n d l e / Y o u C o m p l e t e M e / c p p   e .   m a k e   y c m _ s u p p o r t _ l i b s i n c l u d e b i n . y c m _ e x t r a _ c o n f . p y ~ / . v i m / b u n d l e / Y o u C o m p l e t e M e / c p p / y c m / . y c m _ e x t r a _ c o n f . p y
~ . y c m _ e x t r a _ c o n f . p y 1 .   #   T h i s   f i l e   i s   N O T   l i c e n s e d   u n d e r   t h e   G P L v 3 ,   w h i c h   i s   t h e   l i c e n s e   f o r   t h e   r e s t 2 .   #   o f   Y o u C o m p l e t e M e . 3 .   # 4 .   #   H e r e ' s   t h e   l i c e n s e   t e x t   f o r   t h i s   f i l e : 5 .   # 6 .   #   T h i s   i s   f r e e   a n d   u n e n c u m b e r e d   s o f t w a r e   r e l e a s e d   i n t o   t h e   p u b l i c   d o m a i n . 7 .   # 8 .   #   A n y o n e   i s   f r e e   t o   c o p y ,   m o d i f y ,   p u b l i s h ,   u s e ,   c o m p i l e ,   s e l l ,   o r 9 .   #   d i s t r i b u t e   t h i s   s o f t w a r e ,   e i t h e r   i n   s o u r c e   c o d e   f o r m   o r   a s   a   c o m p i l e d 1 0 .   #   b i n a r y ,   f o r   a n y   p u r p o s e ,   c o m m e r c i a l   o r   n o n - c o m m e r c i a l ,   a n d   b y   a n y 1 1 .   #   m e a n s . 1 2 .   # 1 3 .   #   I n   j u r i s d i c t i o n s   t h a t   r e c o g n i z e   c o p y r i g h t   l a w s ,   t h e   a u t h o r   o r   a u t h o r s 1 4 .   #   o f   t h i s   s o f t w a r e   d e d i c a t e   a n y   a n d   a l l   c o p y r i g h t   i n t e r e s t   i n   t h e 1 5 .   #   s o f t w a r e   t o   t h e   p u b l i c   d o m a i n .   W e   m a k e   t h i s   d e d i c a t i o n   f o r   t h e   b e n e f i t 1 6 .   #   o f   t h e   p u b l i c   a t   l a r g e   a n d   t o   t h e   d e t r i m e n t   o f   o u r   h e i r s   a n d 1 7 .   #   s u c c e s s o r s .   W e   i n t e n d   t h i s   d e d i c a t i o n   t o   b e   a n   o v e r t   a c t   o f 1 8 .   #   r e l i n q u i s h m e n t   i n   p e r p e t u i t y   o f   a l l   p r e s e n t   a n d   f u t u r e   r i g h t s   t o   t h i s 1 9 .   #   s o f t w a r e   u n d e r   c o p y r i g h t   l a w . 2 0 .   # 2 1 .   #   T H E   S O F T W A R E   I S   P R O V I D E D   " A S   I S " ,   W I T H O U T   W A R R A N T Y   O F   A N Y   K I N D , 2 2 .   #   E X P R E S S   O R   I M P L I E D ,   I N C L U D I N G   B U T   N O T   L I M I T E D   T O   T H E   W A R R A N T I E S   O F 2 3 .   #   M E R C H A N T A B I L I T Y ,   F I T N E S S   F O R   A   P A R T I C U L A R   P U R P O S E   A N D   N O N I N F R I N G E M E N T . 2 4 .   #   I N   N O   E V E N T   S H A L L   T H E   A U T H O R S   B E   L I A B L E   F O R   A N Y   C L A I M ,   D A M A G E S   O R 2 5 .   #   O T H E R   L I A B I L I T Y ,   W H E T H E R   I N   A N   A C T I O N   O F   C O N T R A C T ,   T O R T   O R   O T H E R W I S E , 2 6 .   #   A R I S I N G   F R O M ,   O U T   O F   O R   I N   C O N N E C T I O N   W I T H   T H E   S O F T W A R E   O R   T H E   U S E   O R 2 7 .   #   O T H E R   D E A L I N G S   I N   T H E   S O F T W A R E . 2 8 .   # 2 9 .   #   F o r   m o r e   i n f o r m a t i o n ,   p l e a s e   r e f e r   t o   < h t t p : / / u n l i c e n s e . o r g / >
3 0 .   3 3 .   2 9 .   #   F o r   m o r e   i n f o r m a t i o n ,   p l e a s e   r e f e r   t o   < h t t p : / / u n l i c e n s e . o r g / > 3 1 .   i m p o r t   o s 3 2 .   i m p o r t   y c m _ c o r e 3 4 .   #   T h e s e   a r e   t h e   c o m p i l a t i o n   f l a g s   t h a t   w i l l   b e   u s e d   i n   c a s e   t h e r e ' s   n o 3 5 .   #   c o m p i l a t i o n   d a t a b a s e   s e t   ( b y   d e f a u l t ,   o n e   i s   n o t   s e t ) . 3 6 .   #   C H A N G E   T H I S   L I S T   O F   F L A G S .   Y E S ,   T H I S   I S   T H E   D R O I D   Y O U   H A V E   B E E N   L O O K I N G   F O R . 3 7 .   f l a g s   =   [ 3 8 .   ' - W a l l ' , 3 9 .   ' - W e x t r a ' , 4 0 .   # ' - W e r r o r ' , 4 1 .   # ' - W c + + 9 8 - c o m p a t ' , 4 2 .   ' - W n o - l o n g - l o n g ' , 4 3 .   ' - W n o - v a r i a d i c - m a c r o s ' , 4 4 .   ' - f e x c e p t i o n s ' , 4 5 .   ' - s t d l i b = l i b c + + ' , 4 6 .   #   T H I S   I S   I M P O R T A N T !   W i t h o u t   a   " - s t d = < s o m e t h i n g > "   f l a g ,   c l a n g   w o n ' t   k n o w   w h i c h 4 7 .   #   l a n g u a g e   t o   u s e   w h e n   c o m p i l i n g   h e a d e r s .   S o   i t   w i l l   g u e s s .   B a d l y .   S o   C + + 4 8 .   #   h e a d e r s   w i l l   b e   c o m p i l e d   a s   C   h e a d e r s .   Y o u   d o n ' t   w a n t   t h a t   s o   A L W A Y S   s p e c i f y 4 9 .   #   a   " - s t d = < s o m e t h i n g > " . 5 0 .   #   F o r   a   C   p r o j e c t ,   y o u   w o u l d   s e t   t h i s   t o   s o m e t h i n g   l i k e   ' c 9 9 '   i n s t e a d   o f 5 1 .   #   ' c + + 1 1 ' . 5 2 .   ' - s t d = c + + 1 1 ' , 5 3 .   #   . . . a n d   t h e   s a m e   t h i n g   g o e s   f o r   t h e   m a g i c   - x   o p t i o n   w h i c h   s p e c i f i e s   t h e 5 4 .   #   l a n g u a g e   t h a t   t h e   f i l e s   t o   b e   c o m p i l e d   a r e   w r i t t e n   i n .   T h i s   i s   m o s t l y 5 5 .   #   r e l e v a n t   f o r   c + +   h e a d e r s . 5 6 .   #   F o r   a   C   p r o j e c t ,   y o u   w o u l d   s e t   t h i s   t o   ' c '   i n s t e a d   o f   ' c + + ' . 5 7 .   ' - x ' , 5 8 .   ' c + + ' , 5 9 .   ' - I ' , 6 0 .   ' . ' , 6 1 .   ' - i s y s t e m ' , 6 2 .   ' / u s r / i n c l u d e ' ,
7 0 .   7 1 .   7 9 .   8 4 .   8 6 .   8 9 .   9 0 .   6 3 .   ' - i s y s t e m ' , 6 4 .   ' / u s r / l o c a l / i n c l u d e ' , 6 5 .   ' - i s y s t e m ' , 6 6 .   ' / L i b r a r y / D e v e l o p e r / C o m m a n d L i n e T o o l s / u s r / i n c l u d e ' , 6 7 .   ' - i s y s t e m ' , 6 8 .   ' / L i b r a r y / D e v e l o p e r / C o m m a n d L i n e T o o l s / u s r / b i n / . . / l i b / c + + / v 1 ' , 6 9 .   ] 7 2 .   #   S e t   t h i s   t o   t h e   a b s o l u t e   p a t h   t o   t h e   f o l d e r   ( N O T   t h e   f i l e ! )   c o n t a i n i n g   t h e 7 3 .   #   c o m p i l e _ c o m m a n d s . j s o n   f i l e   t o   u s e   t h a t   i n s t e a d   o f   ' f l a g s ' .   S e e   h e r e   f o r 7 4 .   #   m o r e   d e t a i l s :   h t t p : / / c l a n g . l l v m . o r g / d o c s / J S O N C o m p i l a t i o n D a t a b a s e . h t m l 7 5 .   # 7 6 .   #   M o s t   p r o j e c t s   w i l l   N O T   n e e d   t o   s e t   t h i s   t o   a n y t h i n g ;   y o u   c a n   j u s t   c h a n g e   t h e 7 7 .   #   ' f l a g s '   l i s t   o f   c o m p i l a t i o n   f l a g s .   N o t i c e   t h a t   Y C M   i t s e l f   u s e s   t h a t   a p p r o a c h . 7 8 .   c o m p i l a t i o n _ d a t a b a s e _ f o l d e r   =   ' ' 8 0 .   i f   o s . p a t h . e x i s t s (   c o m p i l a t i o n _ d a t a b a s e _ f o l d e r   ) : 8 1 .       d a t a b a s e   =   y c m _ c o r e . C o m p i l a t i o n D a t a b a s e (   c o m p i l a t i o n _ d a t a b a s e _ f o l d e r   ) 8 2 .   e l s e : 8 3 .       d a t a b a s e   =   N o n e 8 5 .   S O U R C E _ E X T E N S I O N S   =   [   ' . c p p ' ,   ' . c x x ' ,   ' . c c ' ,   ' . c ' ,   ' . m ' ,   ' . m m '   ] 8 7 .   d e f   D i r e c t o r y O f T h i s S c r i p t ( ) : 8 8 .       r e t u r n   o s . p a t h . d i r n a m e (   o s . p a t h . a b s p a t h (   _ _ f i l e _ _   )   ) 9 1 .   d e f   M a k e R e l a t i v e P a t h s I n F l a g s A b s o l u t e (   f l a g s ,   w o r k i n g _ d i r e c t o r y   ) : 9 2 .       i f   n o t   w o r k i n g _ d i r e c t o r y : 9 3 .           r e t u r n   l i s t (   f l a g s   ) 9 4 .       n e w _ f l a g s   =   [ ] 9 5 .       m a k e _ n e x t _ a b s o l u t e   =   F a l s e 9 6 .       p a t h _ f l a g s   =   [   ' - i s y s t e m ' ,   ' - I ' ,   ' - i q u o t e ' ,   ' - - s y s r o o t = '   ]
9 9 .   1 0 4 .   1 0 9 .   1 1 4 .   1 1 8 .   1 1 9 .   1 2 3 .   1 2 4 .   9 7 .       f o r   f l a g   i n   f l a g s : 9 8 .           n e w _ f l a g   =   f l a g 1 0 0 .           i f   m a k e _ n e x t _ a b s o l u t e : 1 0 1 .               m a k e _ n e x t _ a b s o l u t e   =   F a l s e 1 0 2 .               i f   n o t   f l a g . s t a r t s w i t h (   ' / '   ) : 1 0 3 .                   n e w _ f l a g   =   o s . p a t h . j o i n (   w o r k i n g _ d i r e c t o r y ,   f l a g   ) 1 0 5 .           f o r   p a t h _ f l a g   i n   p a t h _ f l a g s : 1 0 6 .               i f   f l a g   = =   p a t h _ f l a g : 1 0 7 .                   m a k e _ n e x t _ a b s o l u t e   =   T r u e 1 0 8 .                   b r e a k 1 1 0 .               i f   f l a g . s t a r t s w i t h (   p a t h _ f l a g   ) : 1 1 1 .                   p a t h   =   f l a g [   l e n (   p a t h _ f l a g   ) :   ] 1 1 2 .                   n e w _ f l a g   =   p a t h _ f l a g   +   o s . p a t h . j o i n (   w o r k i n g _ d i r e c t o r y ,   p a t h   ) 1 1 3 .                   b r e a k 1 1 5 .           i f   n e w _ f l a g : 1 1 6 .               n e w _ f l a g s . a p p e n d (   n e w _ f l a g   ) 1 1 7 .       r e t u r n   n e w _ f l a g s 1 2 0 .   d e f   I s H e a d e r F i l e (   f i l e n a m e   ) : 1 2 1 .       e x t e n s i o n   =   o s . p a t h . s p l i t e x t (   f i l e n a m e   ) [   1   ] 1 2 2 .       r e t u r n   e x t e n s i o n   i n   [   ' . h ' ,   ' . h x x ' ,   ' . h p p ' ,   ' . h h '   ] 1 2 5 .   d e f   G e t C o m p i l a t i o n I n f o F o r F i l e (   f i l e n a m e   ) : 1 2 6 .       #   T h e   c o m p i l a t i o n _ c o m m a n d s . j s o n   f i l e   g e n e r a t e d   b y   C M a k e   d o e s   n o t   h a v e   e n t r i e s 1 2 7 .       #   f o r   h e a d e r   f i l e s .   S o   w e   d o   o u r   b e s t   b y   a s k i n g   t h e   d b   f o r   f l a g s   f o r   a 1 2 8 .       #   c o r r e s p o n d i n g   s o u r c e   f i l e ,   i f   a n y .   I f   o n e   e x i s t s ,   t h e   f l a g s   f o r   t h a t   f i l e 1 2 9 .       #   s h o u l d   b e   g o o d   e n o u g h .
1 4 1 .   1 4 2 .   1 5 0 .   1 5 4 .   1 3 0 .       i f   I s H e a d e r F i l e (   f i l e n a m e   ) : 1 3 1 .           b a s e n a m e   =   o s . p a t h . s p l i t e x t (   f i l e n a m e   ) [   0   ] 1 3 2 .           f o r   e x t e n s i o n   i n   S O U R C E _ E X T E N S I O N S : 1 3 3 .               r e p l a c e m e n t _ f i l e   =   b a s e n a m e   +   e x t e n s i o n 1 3 4 .               i f   o s . p a t h . e x i s t s (   r e p l a c e m e n t _ f i l e   ) : 1 3 5 .                   c o m p i l a t i o n _ i n f o   =   d a t a b a s e . G e t C o m p i l a t i o n I n f o F o r F i l e ( 1 3 6 .                       r e p l a c e m e n t _ f i l e   ) 1 3 7 .                   i f   c o m p i l a t i o n _ i n f o . c o m p i l e r _ f l a g s _ : 1 3 8 .                       r e t u r n   c o m p i l a t i o n _ i n f o 1 3 9 .           r e t u r n   N o n e 1 4 0 .       r e t u r n   d a t a b a s e . G e t C o m p i l a t i o n I n f o F o r F i l e (   f i l e n a m e   ) 1 4 3 .   d e f   F l a g s F o r F i l e (   f i l e n a m e ,   * * k w a r g s   ) : 1 4 4 .       i f   d a t a b a s e : 1 4 5 .           #   B e a r   i n   m i n d   t h a t   c o m p i l a t i o n _ i n f o . c o m p i l e r _ f l a g s _   d o e s   N O T   r e t u r n   a 1 4 6 .           #   p y t h o n   l i s t ,   b u t   a   " l i s t - l i k e "   S t r i n g V e c   o b j e c t 1 4 7 .           c o m p i l a t i o n _ i n f o   =   G e t C o m p i l a t i o n I n f o F o r F i l e (   f i l e n a m e   ) 1 4 8 .           i f   n o t   c o m p i l a t i o n _ i n f o : 1 4 9 .               r e t u r n   N o n e 1 5 1 .           f i n a l _ f l a g s   =   M a k e R e l a t i v e P a t h s I n F l a g s A b s o l u t e ( 1 5 2 .               c o m p i l a t i o n _ i n f o . c o m p i l e r _ f l a g s _ , 1 5 3 .               c o m p i l a t i o n _ i n f o . c o m p i l e r _ w o r k i n g _ d i r _   ) 1 5 5 .           #   N O T E :   T h i s   i s   j u s t   f o r   Y o u C o m p l e t e M e ;   i t ' s   h i g h l y   l i k e l y   t h a t   y o u r   p r o j e c t 1 5 6 .           #   d o e s   N O T   n e e d   t o   r e m o v e   t h e   s t d l i b   f l a g .   D O   N O T   U S E   T H I S   I N   Y O U R 1 5 7 .           #   y c m _ e x t r a _ c o n f   I F   Y O U ' R E   N O T   1 0 0 %   S U R E   Y O U   N E E D   I T . 1 5 8 .           # t r y : 1 5 9 .           #     f i n a l _ f l a g s . r e m o v e (   ' - s t d l i b = l i b c + + '   ) 1 6 0 .           # e x c e p t   V a l u e E r r o r : 1 6 1 .           #     p a s s 1 6 2 .       e l s e : 1 6 3 .           r e l a t i v e _ t o   =   D i r e c t o r y O f T h i s S c r i p t ( )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则