*usr_30.txt*	 Vim version 6.2.   : 2002 Aug 10

		  VIM -  

			    


 Vim    ,    
.    ,    , 
      .    
       
    .

|30.1|	
|30.2|	   C
|30.3|	 
|30.4|	   
|30.5|	  
|30.6|	 

  : |usr_31.txt|     
 : |usr_29.txt|	   
      : |usr_toc.txt|

==============================================================================
*30.1*	

  Vim        .
       Vim  
 ,     . 
        , 
,    .     ,
      . 

    "make"   ģ  
 ,   ""  ţ : >

	:make {}

        - , 
 ͣ       ,    
.
          ":make". ( 
:make    ,    ,    ).
   ":make"    :

	:!make | &tee /tmp/vim215953.err ~
	gcc -g -Wall -o prog main.c sub.c ~
	main.c: In function 'main': ~
	main.c:6: too many arguments to function 'do_sub' ~
	main.c: At top level: ~
	main.c:10: parse error before '}' ~
	make: *** [prog] Error 1 ~

	2 returned ~
	"main.c" 11L, 111C ~
	(3 of 6): too many arguments to function 'do_sub' ~
	   ENTER    ~

    ,        "main.c". 
 <Enter>, Vim   "main.c",      6, 
  . Vim     ,  
,     ":make".

		+---------------------------------------------------+
		|int main()					    |
		|{						    |
		|	int i=3;				    |
      cursor -> |	do_sub("foo");				    |
		|	++i;					    |
		|	return (0);				    |
		|}						    |
		|}						    |
		| ~						    |
		|(3 of 12): too many arguments to function 'do_sub' |
		+---------------------------------------------------+

   ,    ,   >

	:cnext

Vim    10,   ,     '}'.
   Vim     ,      
 .    ,  : >

	:cc

      ":clist".    
: >

	:clist
<	3 main.c: 6:too many arguments to function 'do_sub' ~
	5 main.c: 10:parse error before '}' ~

     ,   Vim  
   . Vim ,    
 .         : 
   ̣ , ?  
 ,    "!": >

	:clist!
<	1 gcc -g -Wall -o prog main.c sub.c ~
	2 main.c: In function 'main': ~
	3 main.c:6: too many arguments to function 'do_sub' ~
	4 main.c: At top level: ~
	5 main.c:10: parse error before '}' ~
	6 make: *** [prog] Error 1 ~

     .     ,
: >
>
	:cprevious

 ,      :

	:cfirst		to first error
	:clast		to last error
	:cc 3		to error nr 3


  

 ,      ":make", 
 'makeprg'.   "make",   Visual C++, ,
  "nmake".      : >

	:set makeprg=nmake

        .   
     . : >

	:set makeprg=nmake\ -f\ project.mak

        Vim .  
  --  %,     Σ  
 .  ,     >
	
	:set makeprg=make\ %

   main.c,  ":make"    : >

	make main.c

   ,     ,
  :r ( , root): >

	:set makeprg=make\ %:r.o

     >

	make main.o

     : |_-|.


  

,    ":make".      
,     --   .   
  ":make" ,   --    .
     ,   ,  
  ,    ,  
    .    
  ,  : >

	:colder

    ":clist"  ":cc {}"   
 .
         ,  : >

	:cnewer

Vim    10  .


  

   ,        
 .      'errorformat'. ,
     ,  ,   
     ,   
.     : |_|.

,    .   
'makeprg' , ,   'errorformat'  ,  
  --  . Vim    
 . ,     
Microsoft Visual C++: >

	:compiler msvc

   Vim     "msvc"  
     .
          . .
|___|.


 

 ":make"        .
     , ,   
'shell'.   ":make"  -    
 ,     'makeef'  'shellpipe'. 
, ϣ      'shellquote'  'shellxquote'.

       ":make"   
 ,        
   .  Vim   ,  
: >

	:cfile {_}

      ,    
 ":make".

==============================================================================
*30.2*	   C

   ,     
. Vim      .
       C   'cindent'. Vim    
 C ,       
 .       'shiftwidth'.
  ,  4. ӣ     
:set": >

	:set cindent shiftwidth=4

 ޣ  'cindent'     "if (x)", 
      . 

					    if (flag)
	 	      --->	do_the_work();
	   <--   if (other_flag) {
	          --->	do_file();
	 		        do_some_more();
	   <--   }

     ,      ,
   .   ģ   '}',
 Vim   ,  ,    .

        
   .    }  , 
     ,  ,   
-  }.   "%"    {
 }.
           )  ;. 
       ,  ,  
 .

    ,   ,    
  ,      . 
   "=".     : >

	==

       .    
 ,  "="    . 
  "="     .  
      "a{",  
  {}.  ,     ,  
ݣ ,   >

	=a{

     ,     
>
	gg=G

  ,       ,    
  .   
  ,        
 .


  

      .   Vim  
 ,  ,    90% .   
,   .       
     'cinoptions'.
       'cinoptions'    Vim 
  .         ,  
  ,     ,  
. ,      :

	if (flag) ~
	  { ~
	    i = 8; ~
	    j = 0; ~
	  } ~

  >

	:set cinoptions+={2

      .  
 |cinoptions-|.

==============================================================================
*30.3*	 

    'cindent'   ,   
   C,      : >

	:filetype indent on

  ,     ,   
'cindent'   C.  ,     ,
 ,       .
      ,  Vim     
   .   Vim ޣ    
  .    Vim  
     , 
   .

       , 
      >

	:filetype indent off

         
,      .    : >

	:let b:did_indent = 1

      :

	{}/indent/{-}.vim

{-}    ,  "cpp"  "java".  
   ,   Vim,   >

	:set filetype

,      :

	filetype=help ~

       {-} "help".
     {}     Vim.  
  >

	:set runtimepath

  ,   .    :

	runtimepath=~/.vim,/usr/local/share/vim/vim60/runtime,~/.vim/after ~

   {}   "~/.vim".  ,  
     

	~/.vim/indent/help.vim ~

 ,     ,  
   .   ,   ,
  |-|.

==============================================================================
*30.4*	   

     --  
'autoindent'.    ,     ,  
  .     -- 'smartindent',
    ,      
.  'smartindent'   ,   'cindent',  
 'autoindent'.
   ޣ  'smartindent'    
     { (     
 }).        
     'cinwords'. ,    #,
  --     .   
,        1.  
    . 


 

   'autoindent'  'smartindent'  
,         
 'shiftwidth'.         
  CTRL-D  CTRL-T.
   , ,     , 
   :

	if test -n a; then ~
	   echo a ~
	   echo "-------" ~
	fi ~

   : >

	:set autoindent shiftwidth=3

,       <Enter>,   
:

	if test -n a; then ~
	echo ~

    ,   CTRL-T. :

	if test -n a; then ~
	   echo ~

 CTRL-T       'shiftwidth' 
  ,   ,     .
      ,       
<Enter>.      ӣ  .  <Enter>   
  .     :

	if test -n a; then ~
	   echo a ~
	   echo "-------" ~
	   fi ~

     ,  CTRL-D.   
    'shiftwidth',   ,    
.
            
  ">>"  "<<".  ">"  "<"  ,
      ң   
,     .    
    -- i{: >

	>i{

          {}. 
  {  }   .  ">a{"   
   ,  {  }.  ģ  
    "printf":

	 	 ">i{"		 ">a{"

	if (flag)		if (flag)		if (flag) ~
	{			{			    { ~
	printf("yes");		    printf("yes");	    printf("yes"); ~
	flag = 0;		    flag = 0;		    flag = 0;  ~
	}			}			    } ~

==============================================================================
*30.5*	  

 ,   'tabstop'   .   
  ,     Σ  .
      ,     
  Vim.     ,  
,       .  , 
  (8)     .   
   'tabstop'  . (   , 
      ,  ,  
 ,  |25.3|.)
     ,       
,   ,  ,   
   .     
 .     , 
ң .
    <Tab>   ,     ң
,          <Tab>.
  ,   :

1.   <Tab>  .  <Tab>  
    ,       .  <Tab>
    ,    ,  ,  
        .

2.   .      ,
        .

 , Vim    .


  

     ,    
 . Vim        
.
     'softtabstop'      
  .    Vim   <Tab> 
     ,    ,  
         .
     ģ       <Tab>
       ң : >

	:set softtabstop=4

  <Tab>   ,     4 . 
 , Vim   4     <Tab>,
    . Vim    <Tab>,
 ,      . 
      <BS>, ӣ    . <BS>
   ,     'softtabstop'.
 ,       <Tab>
  .
   ģ , ,  ,    <Tab>
 ,     <BS>.   ".",  <Tab>
     "------->".

				   ~
	<Tab>			  ....
	<Tab><Tab>		  ------->
	<Tab><Tab><Tab>		  ------->....
	<Tab><Tab><Tab><BS>	  ------->
	<Tab><Tab><Tab><BS><BS>   ....

    'smarttab'.   ,  Vim
 'shiftwidth'       <Tab>  
,        
 <Tab>. ,    <BS>   .


 

         
,     'expandtab': >

	:set expandtab

 ޣ  'expandtab'    <Tab>   
 .  ,    ,    
   <Tab>,  ,     
 .
    <BS>      .  ,
  <Tab>,   ģ  <BS>  .  
ģ    ,        CTRL-D.


    ( )

  'expandtab'     . 
,        . 
      ,    ":retab".
: >

	:set expandtab
	:%retab

 Vim        .
,   ,    
,  .      ,   !: >

	:%retab!

   ,      
   .  ,   ,
   >

	/"[^"\t]*\t[^"]*"

      .
  ,    "\t".

      : >

	:set noexpandtab
	:%retab!

==============================================================================
*30.6*	 

    Vim   ,    .
   Vim    ,   ӣ
 .
   ,     :

	/* ~
	 *   ~
	 *  . ~
	 */ ~

         >

	gq]/

"gq"    ,  "]/"  , 
    .   :

	/* ~
	 *    . ~
	 */ ~

 ,  Vim      .
             
"gq".

     ,     
  "o".   :

	/* ~
	 *    . ~
	 * ~
	 */ ~
	
Vim      ף  .  
   .    ,   
'textwidth',  Vim ӣ     ף 
 :

	/* ~
	 *    . ~
	 *    ģ  ,  Vim ~
	 *  ӣ~
	 */ ~

    ,     
 'formatoptions':

	r	 ף   <Enter>   
	o	 ף   "o"  "O"  
	           
	c	       
	           'textwidth'

     |fo-|.


 

    'comments'. Vim  
  ,    .
    ,  ,   ̣ .
 C++  //,  Makefiles #,   Vim ". ,  Vim
  C++: >

	:set comments=://

     ,   
.     'comments':

	{}:{}

{},      ,  .
        ,   . 
     . , 
 , ,   ,   
  ">"  "!".       >

	:set comments=n:>,n:!

  ,   ,   ">",  
,   "!".     "n". 
  ,      . , 
  ">",     ,  ">".  
  :

	> !  ,   ? ~
	> !   . ~
	>   .   ~
	> . ~
	     URL? ~

  'textwidth'   ,  80, 
 ,   "gq"    .
  :

	> !  ,   ?   . ~
	>   .   . ~
	     URL? ~

 ,  Vim     . 
"" ,   ,   ,   
  ">",      "> !". Vim ,  
 .


   

 C   "/*",      "*",   
 ģ "*/".     'comments' 
: >

	:set comments=s1:/*,mb:*,ex:*/

     "s1:/*". "s"   
  ң .     ,  
 : "/*".  "1"   ,    
    .
     "mb:*"   "m",     
.  "b" ,      .
 Vim  ,  "*pointer"    
. 
     "ex:*/"    ,  
 "e".  "x"   :    ,  
,  Vim  ף,  / ģ    . 

  |-|.

==============================================================================

 : |usr_31.txt|     
 : . |___|  

vim:tw=78:ts=8:ft=help:norl:
