The solution is to use a custom filetype.vim and 'scripts.vim'. In filetype.vim add: au BufNewFile,BufRead *.h call FTCheck_inform() and after augroup END add " function to detect inform code (any extension) fun! FTCheck_inform() if getline(1) =~ "^!" setfiletype inform elseif getline(2) =~ "^!" setfiletype inform else let s:colnum = col('.') let s:linenum = line('.') call cursor(500, 1) if search('\[\(\s*\I\i*\)*\s*;', 'bW') > 0 setfiletype inform endif call cursor(s:linenum, s:colnum) endif endfun For files with no extension, create a '$HOME/.vim/scripts.vim': See also the site
Attributes | Values |
---|
rdfs:label
| - Allow Inform header files to be distinguished from C headers
|
rdfs:comment
| - The solution is to use a custom filetype.vim and 'scripts.vim'. In filetype.vim add: au BufNewFile,BufRead *.h call FTCheck_inform() and after augroup END add " function to detect inform code (any extension) fun! FTCheck_inform() if getline(1) =~ "^!" setfiletype inform elseif getline(2) =~ "^!" setfiletype inform else let s:colnum = col('.') let s:linenum = line('.') call cursor(500, 1) if search('\[\(\s*\I\i*\)*\s*;', 'bW') > 0 setfiletype inform endif call cursor(s:linenum, s:colnum) endif endfun For files with no extension, create a '$HOME/.vim/scripts.vim': See also the site
|
Version
| |
dbkwik:vim/property/wikiPageUsesTemplate
| |
Previous
| |
Category
| - Filetype
- LanguageSpecific
|
Author
| - Stephen Thomas, Ross Presser, Neil Cerruti
|
Complexity
| |
Created
| |
ID
| |
NEXT
| |
Rating
| |
abstract
| - The solution is to use a custom filetype.vim and 'scripts.vim'. In filetype.vim add: au BufNewFile,BufRead *.h call FTCheck_inform() and after augroup END add " function to detect inform code (any extension) fun! FTCheck_inform() if getline(1) =~ "^!" setfiletype inform elseif getline(2) =~ "^!" setfiletype inform else let s:colnum = col('.') let s:linenum = line('.') call cursor(500, 1) if search('\[\(\s*\I\i*\)*\s*;', 'bW') > 0 setfiletype inform endif call cursor(s:linenum, s:colnum) endif endfun On loading a file with a '.h' extension, a function is called to examine the file for certain Inform-specific constructs. If it finds any, it sets the filetype as inform, otherwise it leaves the filetype unset, allowing the global filetype.vim to determine the filetype. For files with no extension, create a '$HOME/.vim/scripts.vim': " local scripts.vim gets called when " all autocommands have failed to identify file type, " but before global scripts.vim " call FTCheck_inform() See also the site
|