我正在尝试使用单个键绑定来切换 vim 中的自动格式化(例如,fo+=a
如果未启用,则启用,否则禁用),如下所示:fo-=a
nnoremap <leader>a "magic goes here"
我考虑过使用一些存在条件检查,但我找不到。我怎样才能做到这一点?
我正在尝试使用单个键绑定来切换 vim 中的自动格式化(例如,fo+=a
如果未启用,则启用,否则禁用),如下所示:fo-=a
nnoremap <leader>a "magic goes here"
我考虑过使用一些存在条件检查,但我找不到。我怎样才能做到这一点?
The magic is the '&' in the snippet below
:help expr-option
nnoremap <leader>a call ToggleFormat()
function! toggleFormat()
if &formatoptions !~ 'a'
set fo+=a
else
set fo-=a
endif
return 0
endfunction
这就是我要做的:
function! ToggleAutoFormat()
if -1==stdridx(&fo, 'a')
set fo+=a
else
set fo-=a
endif
endfunction
nnoremap <leader>a :call ToggleAutoFormat()
Lighthart 答案的更新版本,包含一些调整:
function! ToggleFormat()
if &formatoptions !~ 'a'
set fo+=a
else
set fo-=a
endif
"" print the value of formatoptions once we're done
set formatoptions
endfunction
"" End with <CR> to instantly run the function when triggered.
nnoremap <leader>a :call ToggleFormat()<CR>