How do I use variables in my .vimrc?

you can't use variables on the rhs in the .vimrc.

try :help feature-list for more info. for unix vs windows for example (not sure what your projects are):

if has("unix")
    " do stuff for Unix
elseif has("win32")
    " do stuff for Windows
endif

might work, or another example is

execute "set path=".g:desktop_path

If g:desktop_path contains spaces, you will have to escape those, either in the original setting of g:desktop_path or when setting 'path', e.g.,

execute "set path=".escape(g:desktop_path, ' ')

See

:help let-option
:help execute
:help escape()

This is working:

let my_sw = 20
let &sw = my_sw

Now you can figure how to fix your code


As this topic was brought to life again here are my few bits:

" In the vimrc
set softtabstop=-1 " Make 'softtabstop' follow 'shiftwidth'
set shiftwidth=0   " Make 'shiftwidth' follow 'tabstop'

" Somewhere else
let &tabstop=l:tabsize " Assign 'tabstop' a value of local tabsize variable
" or, typed manually
set ts=4

. And please forget about execute 'set option='.var. let &option=var is available since at least vim-7.0.


This solution doesn't use local variables, but it will get you the result you want using just your .vimrc file. Just add the code below to your .vimrc file and add more project-specific options (even mappings) to the corresponding functions below. (Remember to change the globbing paths in the autocmd! lines to the appropriate folder name.)

autocmd! BufReadPost,BufNewFile */myProject/** call <SID>MyProjectOptions()
autocmd! BufReadPost,BufNewFile */linux-kernel/** call <SID>LinuxKernelOptions()

function! <SID>MyProjectOptions()
    " everything in this function only applies to myProject files
    setlocal tabstop=4
    ...
endfunction

function! <SID>LinuxKernelOptions()
    " everything in this function only applies to linux kernel files
    setlocal tabstop=8
    ...
endfunction

Here's a one-liner that toggles colorcolumn on/off when you hit leader+c:

nnoremap <Leader>c :execute "set colorcolumn=" . (&cc == "+1" ? "0" : "+1")<CR>