mac - vim pdf
¿Cómo uso las variables en mi.vimrc? (6)
Aquí hay un trazador de líneas que activa / desactiva la columna de color cuando aciertas leader + c:
nnoremap <Leader>c :execute "set colorcolumn=" . (&cc == "+1" ? "0" : "+1")<CR>
Tengo un pequeño problema con "tamaño de pestaña" y proyecto diferente, algunos como 2 o 4 y el kernel de Linux como 8 espacios por pestaña.
Y este no es un gran problema ya que puedo cambiar un par de configuraciones en mi .vimrc
set tabstop=4
set shiftwidth=4
set softtabstop=4
Pero eso son 3 líneas que necesito cambiar ...
Sería bueno tener una línea con una variable con el número 2,4 u 8.
Un poco como
let l:tabsize=4
set tabstop=l:tabsize
set shiftwidth=l:tabsize
set softtabstop=l:tabsize
Pero esto no funciona ...
¿Sabes cómo arreglar ésto?
Gracias Johan
Actualización : Esto resuelve mi pequeño problema.
let tabsize = 4
execute "set tabstop=".tabsize
execute "set shiftwidth=".tabsize
execute "set softtabstop=".tabsize
Cuando este tema volvió a la vida, aquí están mis pocos 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
. Y olvídate de execute ''set option=''.var
. let &option=var
está disponible desde al menos vim-7.0
.
Esta solución no usa variables locales, pero obtendrá el resultado que desea utilizando solo su archivo .vimrc
. Simplemente agregue el código a continuación a su archivo .vimrc
y agregue más opciones específicas de proyecto (incluso asignaciones) a las funciones correspondientes a continuación. (Recuerde cambiar las rutas globbing en las líneas autocmd!
nombre de la carpeta correspondiente).
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
Esto está funcionando:
let my_sw = 20
let &sw = my_sw
Ahora puedes averiguar cómo arreglar tu código
También me ha preocupado este problema durante mucho tiempo. Esto es especialmente doloroso cuando tengo que trabajar con el código de otras personas al mismo tiempo, lo que me obliga a cambiar el tamaño de sangría hacia adelante y hacia atrás con frecuencia. Solía tener algo similar a la solución de OP, pero eso aún requiere actualizar el archivo .vimrc
todo el tiempo. Más tarde, aprendí que puedo definir esta función que podría llamar desde el editor:
function! SetTabSize(size)
execute "set tabstop=".a:size
execute "set shiftwidth=".a:size
execute "set softtabstop=".a:size
endfunction
command! -nargs=1 Sts call SetTabSize(<f-args>)
En el editor, si desea cambiar el tamaño de sangría actual a 4, simplemente haga lo siguiente:
:Sts 4
Espero que esto ayude.
no puede usar variables en el rhs en .vimrc.
try: help-list para más información. para Unix vs Windows por ejemplo (no estoy seguro de cuáles son sus proyectos):
if has("unix")
" do stuff for Unix
elseif has("win32")
" do stuff for Windows
endif
podría funcionar, u otros ejemplos son
let &path = g:desktop_path
o
execute "set path=".g:desktop_path
Si g: desktop_path contiene espacios, deberá escaparse de ellos, ya sea en la configuración original de g: desktop_path o al configurar ''path'', por ejemplo,
execute "set path=".escape(g:desktop_path, '' '')
Ver
:help let-option
:help execute
:help escape()