Align text on an equals sign in vim

后端 未结 9 2448
一生所求
一生所求 2020-12-12 22:48

I tend to align code on equal signs for better readability. From this:

$ = jQuery.sub()
Survey = App.Survey
Sidebar = App.Sidebar
Main = App.Main
         


        
9条回答
  •  感动是毒
    2020-12-12 22:53

    Install tabularize plugin and modify gist by tpope to something like this :

    inoremap  :   ::call align(':')a
    inoremap  =   =:call align('=')a
    
    function! s:align(aa)
      let p = '^.*\s'.a:aa.'\s.*$'
      if exists(':Tabularize') && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
        let column = strlen(substitute(getline('.')[0:col('.')],'[^'.a:aa.']','','g'))
        let position = strlen(matchstr(getline('.')[0:col('.')],'.*'.a:aa.':\s*\zs.*'))
        exec 'Tabularize/'.a:aa.'/l1'
        normal! 0
        call search(repeat('[^'.a:aa.']*'.a:aa,column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
      endif
    endfunction
    

提交回复
热议问题