tutorial mac help comandos vim

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()