PageRenderTime 56ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/myvimfiles/ftplugin/c.vim

https://github.com/cashq/myconfigurations
Vim Script | 225 lines | 142 code | 15 blank | 68 comment | 4 complexity | af1e043fd38cb4a1ac9449c8b8cb6974 MD5 | raw file
  1. " Vim filetype plugin file
  2. "
  3. " Language : C / C++
  4. " Plugin : c.vim (version 4.3)
  5. " Maintainer : Fritz Mehner <mehner@fh-swf.de>
  6. " Last Change: 10.11.2006
  7. "
  8. " This will enable keyword completion for C and C++
  9. " using Vim's dictionary feature |i_CTRL-X_CTRL-K|.
  10. " -----------------------------------------------------------------
  11. "
  12. " Only do this when not done yet for this buffer
  13. "
  14. if exists("b:did_C_ftplugin")
  15. finish
  16. endif
  17. let b:did_C_ftplugin = 1
  18. "
  19. " ---------- C/C++ dictionary -----------------------------------
  20. "
  21. if exists("g:C_Dictionary_File")
  22. silent! exec 'setlocal dictionary+='.g:C_Dictionary_File
  23. endif
  24. "
  25. " ---------- F-key mappings ------------------------------------
  26. "
  27. " Alt-F9 write buffer and compile
  28. " F9 compile and link
  29. " Ctrl-F9 run executable
  30. " Shift-F9 command line arguments
  31. "
  32. map <buffer> <silent> <A-F9> <C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR>
  33. imap <buffer> <silent> <A-F9> <C-C><C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR>
  34. "
  35. map <buffer> <silent> <F9> <C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR>
  36. imap <buffer> <silent> <F9> <C-C><C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR>
  37. "
  38. " <C-C> seems to be essential here:
  39. map <buffer> <silent> <C-F9> <C-C>:call C_Run()<CR>
  40. imap <buffer> <silent> <C-F9> <C-C><C-C>:call C_Run()<CR>
  41. "
  42. map <buffer> <silent> <S-F9> <C-C>:call C_Arguments()<CR>
  43. imap <buffer> <silent> <S-F9> <C-C><C-C>:call C_Arguments()<CR>
  44. "
  45. " alternate file plugin
  46. "
  47. if exists("loaded_alternateFile")
  48. map <buffer> <silent> <S-F2> <C-C>:A<CR>
  49. imap <buffer> <silent> <S-F2> <C-C><C-C>:A<CR>
  50. endif
  51. "
  52. "
  53. " ---------- KEY MAPPINGS : MENU ENTRIES -------------------------------------
  54. "
  55. " ---------- comments menu ------------------------------------------------
  56. "
  57. map <buffer> <silent> <Leader>ce <Esc>:call C_LineEndComment("/* */")<CR>$2hi
  58. vmap <buffer> <silent> <Leader>ce <Esc>:call C_MultiLineEndComments("/* */")<CR>$2hi
  59. map <buffer> <silent> <Leader>cn <Esc>:call C_LineEndComment("// ")<CR>A
  60. vmap <buffer> <silent> <Leader>cn <Esc>:call C_MultiLineEndComments("// ")<CR>A
  61. map <buffer> <silent> <Leader>cl <Esc>:call C_GetLineEndCommCol()<CR>
  62. map <buffer> <silent> <Leader>ci <Esc>o/*<CR>/<Esc>kA<Space>
  63. vmap <buffer> <silent> <Leader>ci <Esc>:call C_CodeComment("v","yes")<CR><Esc>:nohlsearch<CR>
  64. map <buffer> <silent> <Leader>c* <Esc>:call C_CodeComment("a","yes")<CR><Esc>:nohlsearch<CR>
  65. vmap <buffer> <silent> <Leader>c* <Esc>:call C_CodeComment("v","yes")<CR><Esc>:nohlsearch<CR>
  66. map <buffer> <silent> <Leader>c\ <Esc>:call C_CodeComment("a","no")<CR><Esc>:nohlsearch<CR>
  67. vmap <buffer> <silent> <Leader>c\ <Esc>:call C_CodeComment("v","no")<CR><Esc>:nohlsearch<CR>
  68. map <buffer> <silent> <Leader>co <Esc>:call C_CommentCode("a")<CR><Esc>:nohlsearch<CR>
  69. vmap <buffer> <silent> <Leader>co <Esc>:call C_CommentCode("v")<CR><Esc>:nohlsearch<CR>
  70. map <buffer> <silent> <Leader>cf <Esc>:call C_CommentTemplates("frame")<CR>
  71. map <buffer> <silent> <Leader>cu <Esc>:call C_CommentTemplates("function")<CR>
  72. map <buffer> <silent> <Leader>cm <Esc>:call C_CommentTemplates("method")<CR>
  73. map <buffer> <silent> <Leader>ca <Esc>:call C_CommentTemplates("class")<CR>
  74. map <buffer> <silent> <Leader>cd a<C-R>=strftime("%x")<CR>
  75. map <buffer> <silent> <Leader>ct a<C-R>=strftime("%x %X %Z")<CR>
  76. map <buffer> <silent> <Leader>cy <Esc>:call C_Toggle_C_Cpp()<CR>
  77. "
  78. " ---------- statements menu ------------------------------------------------
  79. "
  80. map <buffer> <silent> <Leader>sd <Esc>:call C_DoWhile("a")<CR><Esc>f(la
  81. vmap <buffer> <silent> <Leader>sd <Esc>:call C_DoWhile("v")<CR><Esc>f(la
  82. map <buffer> <silent> <Leader>so <Esc>:call C_Stat("a","for ( ; ; )")<Esc>f;i
  83. vmap <buffer> <silent> <Leader>so <Esc>:call C_Stat("v","for ( ; ; )")<Esc>f;i
  84. map <buffer> <silent> <Leader>sr <Esc>:call C_StatBlock("a","for ( ; ; )")<Esc>f;i
  85. vmap <buffer> <silent> <Leader>sr <Esc>:call C_StatBlock("v","for ( ; ; )")<Esc>f;i
  86. map <buffer> <silent> <Leader>si <Esc>:call C_Stat("a","if ( )")<Esc>f(la
  87. vmap <buffer> <silent> <Leader>si <Esc>:call C_Stat("v","if ( )")<Esc>f(la
  88. map <buffer> <silent> <Leader>se <Esc>:call C_IfElse("a")<Esc>f(la
  89. vmap <buffer> <silent> <Leader>se <Esc>:call C_IfElse("v")<Esc>f(la
  90. map <buffer> <silent> <Leader>sf <Esc>:call C_StatBlock("a","if ( )")<Esc>f(la
  91. vmap <buffer> <silent> <Leader>sf <Esc>:call C_StatBlock("v","if ( )")<Esc>f(la
  92. map <buffer> <silent> <Leader>sl <Esc>:call C_IfBlockElse("a")<Esc>f(la
  93. vmap <buffer> <silent> <Leader>sl <Esc>:call C_IfBlockElse("v")<Esc>f(la
  94. map <buffer> <silent> <Leader>sw <Esc>:call C_Stat("a","while ( )")<Esc>f(la
  95. vmap <buffer> <silent> <Leader>sw <Esc>:call C_Stat("v","while ( )")<Esc>f(la
  96. map <buffer> <silent> <Leader>sh <Esc>:call C_StatBlock("a","while ( )")<Esc>f(la
  97. vmap <buffer> <silent> <Leader>sh <Esc>:call C_StatBlock("v","while ( )")<Esc>f(la
  98. map <buffer> <silent> <Leader>ss <Esc>:call C_CodeSwitch()<Esc>f(la
  99. vmap <buffer> <silent> <Leader>ss <Esc>:call C_CodeSwitchVisual()<Esc>f(la
  100. map <buffer> <silent> <Leader>sc <Esc>ocase 0:<Tab><CR>break;<CR><Esc>2kf0s
  101. vmap <buffer> <silent> <Leader>sc <Esc>:call C_CodeCaseVisual()<Esc>
  102. map <buffer> <silent> <Leader>s{ <Esc>:call C_Block("a")<CR>o
  103. vmap <buffer> <silent> <Leader>s{ <Esc>:call C_Block("v")<CR>
  104. "
  105. " ---------- preprocessor menu ----------------------------------------------
  106. "
  107. map <buffer> <silent> <Leader>p< <Esc><Esc>o#include<Tab>>><Esc>hr<a
  108. map <buffer> <silent> <Leader>p" <Esc><Esc>o#include<Tab>xx<Esc>hr"lr"i
  109. map <buffer> <silent> <Leader>pd <Esc><Esc>:call C_PPDefine()<CR>f<Tab>a
  110. map <buffer> <silent> <Leader>pu <Esc><Esc>:call C_PPUndef()<CR>f<Tab>a
  111. map <buffer> <silent> <Leader>pi <Esc><Esc>:call C_PPIfElse("if" ,"a+")<CR>ji
  112. map <buffer> <silent> <Leader>pf <Esc><Esc>:call C_PPIfElse("ifdef" ,"a+")<CR>ji
  113. map <buffer> <silent> <Leader>pn <Esc><Esc>:call C_PPIfElse("ifndef","a+")<CR>ji
  114. map <buffer> <silent> <Leader>pe <Esc><Esc>:call C_PPIfDef ( "a" )<CR>2ji
  115. map <buffer> <silent> <Leader>p0 <Esc><Esc>:call C_PPIf0("a")<CR>2ji
  116. vmap <buffer> <silent> <Leader>pi <Esc><Esc>:call C_PPIfElse("if" ,"v+")<CR>
  117. vmap <buffer> <silent> <Leader>pf <Esc><Esc>:call C_PPIfElse("ifdef" ,"v+")<CR>
  118. vmap <buffer> <silent> <Leader>pn <Esc><Esc>:call C_PPIfElse("ifndef","v+")<CR>
  119. vmap <buffer> <silent> <Leader>pe <Esc><Esc>:call C_PPIfDef ( "v" )<CR>
  120. vmap <buffer> <silent> <Leader>p0 <Esc><Esc>:call C_PPIf0("v")<CR>
  121. map <buffer> <silent> <Leader>pr <Esc><Esc>:call C_PPIf0Remove()<CR>
  122. "
  123. " ---------- idioms menu ----------------------------------------------------
  124. "
  125. map <buffer> <silent> <Leader>if <Esc>:call C_CodeFunction("a")<CR>
  126. vmap <buffer> <silent> <Leader>if <Esc>:call C_CodeFunction("v")<CR>
  127. map <buffer> <silent> <Leader>it <Esc>:call C_CodeFunction("sa")<CR>w
  128. vmap <buffer> <silent> <Leader>it <Esc>:call C_CodeFunction("sv")<CR>w
  129. map <buffer> <silent> <Leader>im <Esc>:call C_CodeMain()<CR>3jA
  130. "
  131. map <buffer> <silent> <Leader>i0 <Esc>:call C_CodeFor("up" )<CR>a
  132. map <buffer> <silent> <Leader>in <Esc>:call C_CodeFor("down")<CR>a
  133. "
  134. map <buffer> <silent> <Leader>ie <Esc>:call C_EST("enum")<CR>o
  135. map <buffer> <silent> <Leader>is <Esc>:call C_EST("struct")<CR>o
  136. map <buffer> <silent> <Leader>iu <Esc>:call C_EST("union")<CR>o
  137. "
  138. map <buffer> <silent> <Leader>ip <Esc><Esc>oprintf )x\nx);<Esc>2F)r(fxr"fxr"2hi
  139. map <buffer> <silent> <Leader>ic <Esc><Esc>oscanf )xx, & );<Esc>2F)r(lr"lr"i
  140. "
  141. map <buffer> <silent> <Leader>il <Esc>:call C_CodeMalloc("c")<CR>i
  142. map <buffer> <silent> <Leader>ia <Esc>:call C_CodeMalloc("m")<CR>i
  143. "
  144. map <buffer> <silent> <Leader>iz isizeof))<Esc>hr(a
  145. vmap <buffer> <silent> <Leader>iz disizeof))<Esc>hr(pa
  146. map <buffer> <silent> <Leader>ir <Esc><Esc>oassert));<Esc>2F)r(a
  147. vmap <buffer> <silent> <Leader>ir diassert));<Esc>2F)r(pa
  148. "
  149. map <buffer> <silent> <Leader>ii <Esc>:call C_CodeFopen("input")<CR>jf"a
  150. map <buffer> <silent> <Leader>io <Esc>:call C_CodeFopen("output")<CR>jf"a
  151. "
  152. " ---------- snippet menu ----------------------------------------------------
  153. "
  154. map <buffer> <silent> <Leader>nr <Esc>:call C_CodeSnippet("r")<CR>
  155. map <buffer> <silent> <Leader>nw <Esc>:call C_CodeSnippet("w")<CR>
  156. vmap <buffer> <silent> <Leader>nw <Esc>:call C_CodeSnippet("wv")<CR>
  157. map <buffer> <silent> <Leader>ne <Esc>:call C_CodeSnippet("e")<CR>
  158. "
  159. map <buffer> <silent> <Leader>np <Esc>:call C_ProtoPick("n")<CR>
  160. vmap <buffer> <silent> <Leader>np <Esc>:call C_ProtoPick("v")<CR>
  161. map <buffer> <silent> <Leader>ni <Esc>:call C_ProtoInsert()<CR>
  162. map <buffer> <silent> <Leader>nc <Esc>:call C_ProtoClear()<CR>
  163. map <buffer> <silent> <Leader>ns <Esc>:call C_ProtoShow()<CR>
  164. "
  165. " ---------- C++ menu ----------------------------------------------------
  166. "
  167. map <buffer> <silent> <Leader>+d <Esc>:call C_CodeMethod()<CR>
  168. map <buffer> <silent> <Leader>+l <Esc>:call C_CommentTemplates("CppClass")<CR>
  169. map <buffer> <silent> <Leader>+n <Esc>:call C_CommentTemplates("CppClassUsingNew")<CR>
  170. map <buffer> <silent> <Leader>+o <Esc>:call C_CommentTemplates("CppErrorClass")<CR>
  171. map <buffer> <silent> <Leader>+t <Esc>:call C_CommentTemplates("CppTemplateClass")<CR>
  172. map <buffer> <silent> <Leader>+w <Esc>:call C_CommentTemplates("CppTemplateClassUsingNew")<CR>
  173. map <buffer> <silent> <Leader>+f <Esc>:call C_CodeTemplateFunct()<CR>
  174. map <buffer> <silent> <Leader>+y <Esc>:call C_CodeTryCatch("a")<CR>o
  175. vmap <buffer> <silent> <Leader>+y <Esc>:call C_CodeTryCatch("v")<CR>f(fci
  176. map <buffer> <silent> <Leader>+h <Esc>:call C_CodeCatch("a"," const &ExceptObj ")<CR>f(fci
  177. vmap <buffer> <silent> <Leader>+h <Esc>:call C_CodeCatch("v"," const &ExceptObj ")<CR>f(fci
  178. map <buffer> <silent> <Leader>+. <Esc>:call C_CodeCatch("a","...")<CR>
  179. vmap <buffer> <silent> <Leader>+. <Esc>:call C_CodeCatch("v","...")<CR>
  180. "
  181. " ---------- run menu --------------------------------------------------------
  182. "
  183. map <buffer> <silent> <Leader>rc <C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR>
  184. map <buffer> <silent> <Leader>rl <C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR>
  185. map <buffer> <silent> <Leader>rr <C-C>:call C_Run()<CR>
  186. map <buffer> <silent> <Leader>ra <C-C>:call C_Arguments()<CR>
  187. map <buffer> <silent> <Leader>rm <C-C>:call C_Make()<CR>
  188. map <buffer> <silent> <Leader>rg <C-C>:call C_MakeArguments()<CR>
  189. map <buffer> <silent> <Leader>rp <C-C>:call C_SplintCheck()<CR>:redraw<CR>:call C_HlMessage()<CR>
  190. map <buffer> <silent> <Leader>ri <C-C>:call C_SplintArguments()<CR>
  191. map <buffer> <silent> <Leader>rd <C-C>:call C_Indent("a")<CR>:redraw<CR>:call C_HlMessage()<CR>
  192. vmap <buffer> <silent> <Leader>rd <C-C>:call C_Indent("v")<CR>:redraw<CR>:call C_HlMessage()<CR>
  193. map <buffer> <silent> <Leader>rh <C-C>:call C_Hardcopy("n")<CR>
  194. vmap <buffer> <silent> <Leader>rh <C-C>:call C_Hardcopy("v")<CR>
  195. map <buffer> <silent> <Leader>rs <C-C>:call C_Settings()<CR>
  196. if has("unix")
  197. map <buffer> <silent> <Leader>rx <C-C>:call C_XtermSize()<CR>
  198. endif
  199. map <buffer> <silent> <Leader>ro <C-C>:call C_Toggle_Gvim_Xterm()<CR>
  200. "
  201. " Abraxas CodeCheck (R)
  202. "
  203. if executable("check")
  204. map <buffer> <silent> <Leader>rk <C-C>:call C_CodeCheck()<CR>:redraw<CR>:call C_HlMessage()<CR>
  205. map <buffer> <silent> <Leader>re <C-C>:call C_CodeCheckArguments()<CR>
  206. endif
  207. " ---------- plugin help -----------------------------------------------------
  208. "
  209. map <buffer> <silent> <Leader>h <Esc>:call C_HelpCsupport()<CR>
  210. "