Mercurial > vim
comparison runtime/ftplugin/abaqus.vim @ 2034:7bc41231fbc7
Update runtime files.
author | Bram Moolenaar <bram@zimbu.org> |
---|---|
date | Wed, 06 Jan 2010 20:54:52 +0100 |
parents | 631143ac4a01 |
children | 94601b379f38 |
comparison
equal
deleted
inserted
replaced
2033:de5a43c5eedc | 2034:7bc41231fbc7 |
---|---|
1 " Vim filetype plugin file | 1 " Vim filetype plugin file |
2 " Language: Abaqus finite element input file (www.abaqus.com) | 2 " Language: Abaqus finite element input file (www.abaqus.com) |
3 " Maintainer: Carl Osterwisch <osterwischc@asme.org> | 3 " Maintainer: Carl Osterwisch <osterwischc@asme.org> |
4 " Last Change: 2004 Jul 06 | 4 " Last Change: 2008 Oct 5 |
5 | 5 |
6 " Only do this when not done yet for this buffer | 6 " Only do this when not done yet for this buffer |
7 if exists("b:did_ftplugin") | finish | endif | 7 if exists("b:did_ftplugin") | finish | endif |
8 | 8 |
9 " Don't load another plugin for this buffer | 9 " Don't load another plugin for this buffer |
10 let b:did_ftplugin = 1 | 10 let b:did_ftplugin = 1 |
11 | 11 |
12 " Save the compatibility options and temporarily switch to vim defaults | 12 " Save the compatibility options and temporarily switch to vim defaults |
13 let s:cpo_save = &cpoptions | 13 let s:cpo_save = &cpoptions |
14 set cpoptions&vim | 14 set cpoptions&vim |
15 | |
16 " Folding | |
17 if version >= 600 | |
18 " Fold all lines that do not begin with * | |
19 setlocal foldexpr=getline(v:lnum)[0]!=\"\*\" | |
20 setlocal foldmethod=expr | |
21 endif | |
22 | 15 |
23 " Set the format of the include file specification for Abaqus | 16 " Set the format of the include file specification for Abaqus |
24 " Used in :check gf ^wf [i and other commands | 17 " Used in :check gf ^wf [i and other commands |
25 setlocal include=\\<\\cINPUT\\s*= | 18 setlocal include=\\<\\cINPUT\\s*= |
26 | 19 |
40 setlocal define=^\\*\\a.*\\c\\(NAME\\\|NSET\\\|ELSET\\)\\s*= | 33 setlocal define=^\\*\\a.*\\c\\(NAME\\\|NSET\\\|ELSET\\)\\s*= |
41 | 34 |
42 " Abaqus keywords and identifiers may include a - character | 35 " Abaqus keywords and identifiers may include a - character |
43 setlocal iskeyword+=- | 36 setlocal iskeyword+=- |
44 | 37 |
38 let b:undo_ftplugin = "setlocal include< includeexpr< isfname<" | |
39 \ . " comments< commentstring< define< iskeyword<" | |
40 | |
41 if has("folding") | |
42 " Fold all lines that do not begin with * | |
43 setlocal foldexpr=getline(v:lnum)[0]!=\"\*\" | |
44 setlocal foldmethod=expr | |
45 let b:undo_ftplugin .= " foldexpr< foldmethod<" | |
46 endif | |
47 | |
45 " Set the file browse filter (currently only supported under Win32 gui) | 48 " Set the file browse filter (currently only supported under Win32 gui) |
46 if has("gui_win32") && !exists("b:browsefilter") | 49 if has("gui_win32") && !exists("b:browsefilter") |
47 let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" . | 50 let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" . |
48 \ "Abaqus Results (*.dat)\t*.dat\n" . | 51 \ "Abaqus Results (*.dat)\t*.dat\n" . |
49 \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" . | 52 \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" . |
50 \ "All Files (*.*)\t*.*\n" | 53 \ "All Files (*.*)\t*.*\n" |
54 let b:undo_ftplugin .= "|unlet b:browsefilter" | |
51 endif | 55 endif |
52 | 56 |
53 " Define keys used to move [count] sections backward or forward. | 57 " Define patterns for the matchit plugin |
54 " TODO: Make this do something intelligent in visual mode. | 58 if exists("loaded_matchit") && !exists("b:match_words") |
55 nnoremap <silent> <buffer> [[ :call <SID>Abaqus_Jump('?^\*\a?')<CR> | 59 let b:match_ignorecase = 1 |
56 nnoremap <silent> <buffer> ]] :call <SID>Abaqus_Jump('/^\*\a/')<CR> | 60 let b:match_words = |
57 function! <SID>Abaqus_Jump(motion) range | 61 \ '\*part:\*end\s*part,' . |
58 let s:count = v:count1 | 62 \ '\*assembly:\*end\s*assembly,' . |
59 mark ' | 63 \ '\*instance:\*end\s*instance,' . |
60 while s:count > 0 | 64 \ '\*step:\*end\s*step' |
61 silent! execute a:motion | 65 let b:undo_ftplugin .= "|unlet b:match_ignorecase b:match_words" |
62 let s:count = s:count - 1 | 66 endif |
63 endwhile | 67 |
64 endfunction | 68 " Define keys used to move [count] keywords backward or forward. |
69 noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR> | |
70 noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR> | |
65 | 71 |
66 " Define key to toggle commenting of the current line or range | 72 " Define key to toggle commenting of the current line or range |
67 noremap <silent> <buffer> <m-c> :call <SID>Abaqus_ToggleComment()<CR>j | 73 noremap <silent><buffer> <LocalLeader><LocalLeader> |
74 \ :call <SID>Abaqus_ToggleComment()<CR>j | |
68 function! <SID>Abaqus_ToggleComment() range | 75 function! <SID>Abaqus_ToggleComment() range |
69 if strpart(getline(a:firstline), 0, 2) == "**" | 76 if strpart(getline(a:firstline), 0, 2) == "**" |
70 " Un-comment all lines in range | 77 " Un-comment all lines in range |
71 silent execute a:firstline . ',' . a:lastline . 's/^\*\*//' | 78 silent execute a:firstline . ',' . a:lastline . 's/^\*\*//' |
72 else | 79 else |
73 " Comment all lines in range | 80 " Comment all lines in range |
74 silent execute a:firstline . ',' . a:lastline . 's/^/**/' | 81 silent execute a:firstline . ',' . a:lastline . 's/^/**/' |
75 endif | 82 endif |
76 endfunction | 83 endfunction |
77 | 84 |
85 let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]" | |
86 \ . "|unmap <buffer> <LocalLeader><LocalLeader>" | |
87 | |
78 " Restore saved compatibility options | 88 " Restore saved compatibility options |
79 let &cpoptions = s:cpo_save | 89 let &cpoptions = s:cpo_save |