如何在vim中使用单个keybind切换自动格式化?

时间:2013-02-21 22:05:24

标签: vim

我正在尝试在vim中切换自动格式化(例如,如果未启用,则启用fo+=a,否则使用fo-=a禁用),使用单个键绑定,如下所示:

nnoremap <leader>a "magic goes here"

我想过使用一些带条件的存在检查,但我找不到任何。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

这就是我要做的事情:

function! ToggleAutoFormat()
    if -1==stdridx(&fo, 'a')
        set fo+=a
    else
        set fo-=a
    endif
endfunction

nnoremap <leader>a :call ToggleAutoFormat()

答案 1 :(得分:2)

神奇的是'&amp;'在下面的代码段中

:help expr-option

nnoremap <leader>a call ToggleFormat()

function! toggleFormat()
      if &formatoptions !~ 'a'
          set fo+=a
      else
          set fo-=a
      endif
  return 0 
endfunction