There are two ways. Use the filetype plugin or use autocommands like file or extension.
The autocommands (placed in your .vimrc / _vimrc) take the form of either
autocmd Filetype cpp set textwidth=100
or
autocmd BufRead *.cpp,*.h,*.c set textwidth=100
(Obviously, set textwidth=100 can be replaced with any other command)
The best solution, especially if you have many custom commands for the file type, is to use ~/.vim/after/ftplugin/<filetype>.vim for each file type. Commands in these files will be executed after loading a file of this type.
source share