This vim bundle adds advanced syntax highlighting for GNU as (AT&T).
This file defines a (almost) complete syntax for GNU as assembler.
My motivation in writing this was the lack of a complete, working syntax for this common assembler.
For now the basic as directives as well as the Intel / AMD, ARM (thumb) and AVR instruction sets are included.
Opcodes supporting a size suffix are recognized plain as well as suffixed with b/w/l/q.
You can set different highlighting for each set listed above by adding a line like this to you .vimrc:
hi def link gasOpcodeX86_PENT_SSE <some_highlighting>
Since version 0.6 it is possible to disable sets of opcodes by either CPU they where introduced in or by their extension name. This is done by setting a special variable recognized by gas.vim to the list of disabled opcodes.
E.g.
" globally disable all x86_64 opcodes
:let g:gasDisableOpcodes='x86_64'
" disable SSE and SSE2 for this buffer
let b:gasDisableOpcodes='sse sse2'
Disabled opcodes will be highlighted as errors.
recognized CPU groups:
186, 286, 386, 3862, 486, 8086, amd, future, ia64, katmai, nehalem,
p6, pentium_m, pentium, prescott, sandybridge, x64, x642, x86_64
recognized extension groups:
base, 3dnow, mmx, mmx2, sse, sse2, sse3, ssse3, sse4.1, sse4.2, sse4a,
sse5, avx, fma, vmx
I hope this syntax file will be useful to other people - but don't blame me if it doesn't suit your needs.
GAS allows code to be processed by the same preprocessor used for C/C++ code.
So directives like #include
, #define
etc. will be highlighted using the C
syntax highlighter if available.
This behavior can be turned off by setting the gasDisablePreproc
option
either globally in your .vimrc or on a per-buffer basis:
" globally disable preprocessor macro detection
:let g:gasDisablePreproc=1
" disable only for this buffer
let gasDisablePreproc=1
This syntax file can either be installed manually, by using pathogen or vundle.
Download gas.vim and copy the file to .vim/syntax/ in your home folder. Add this line to the end of your file:
/* vim: ft=gas :
*/
Install pathogen into ~/.vim/autoload/
and add the
following line to your ~/.vimrc
:
call pathogen#infect()
Make a clone of the vim-gas
repository:
$ mkdir -p ~/.vim/bundle
$ cd ~/.vim/bundle
$ git clone https://github.com/HealsCodes/vim-gas
OR use git submodules:
$ git submodule add https://github.com/HealsCodes/vim-gas.git bundle/vim-gas
$ git submodule init
Install and setup vundle then add this to your ~/.vimrc
inside
the vundle#begin()
/ vundle#end()
block:
Plugin shirk/vim-gas
Restart your vim and call VundleInstall
BSD (3 clause) - see LICENSE for details