我傾向於排列在等號代碼更易讀。從這:對齊文本用vim
$ = jQuery.sub()
Survey = App.Survey
Sidebar = App.Sidebar
Main = App.Main
要這樣:
$ = jQuery.sub()
Survey = App.Survey
Sidebar = App.Sidebar
Main = App.Main
有沒有一種簡單的方法在vim做到這一點?
我傾向於排列在等號代碼更易讀。從這:對齊文本用vim
$ = jQuery.sub()
Survey = App.Survey
Sidebar = App.Sidebar
Main = App.Main
要這樣:
$ = jQuery.sub()
Survey = App.Survey
Sidebar = App.Sidebar
Main = App.Main
有沒有一種簡單的方法在vim做到這一點?
我迄今發現的最好的插件是Tabular.vim。
最簡單的安裝方法是使用Pathogen插件,然後將Tabular git存儲庫克隆到~/.vim/bundle/tabular
。病原體自述文件中的完整說明。
它的安裝後,使用它僅僅是一個要對齊把你的光標停在某個段落的物質和運行:
:Tab /=
我認爲這是很容易與Tabular插件來完成。 Here it is in action.
選擇可視模式(實際上沒有必要)的範圍,並做到:
:Tabularize /=
該插件可以真正找到了自己的往往是正確的範圍,而不需要直觀地選擇,或指定一個範圍到ex命令。
這不是做事情的最簡單的方法,但它可以沒有任何插件。
V
和:s/=/ =/
在每個等號之前插入一堆空格。<<
爲「取消縮進」對你選擇的列每個方程的右側,然後按.
,直到跡象在列排隊等號。一種替代插件表格:
https://github.com/tommcdo/vim-lion
從文檔:
例如,
glip=
將轉向$i = 5; $username = 'tommcdo'; $stuff = array(1, 2, 3);
成
$i = 5; $username = 'tommcdo'; $stuff = array(1, 2, 3);
您可以使用Align Vim plugin來對齊這些塊,例如,通過鍵入
vip:Align =
在命令模式下,當光標放在要對齊的塊內時。
其中vip
進入虛擬模式並選擇當前段落。 Align
命令非常強大,例如你也可以指定多個圖案,花紋都被解釋爲正則表達式等
安裝tabularize插件和tpope修改要點,以這樣的:
inoremap <silent> : :<Esc>:call <SID>align(':')<CR>a
inoremap <silent> = =<Esc>:call <SID>align('=')<CR>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
的vim-easy-align插件不說爲好。這裏給出了許多例子之一:
這個插件工作的很棒!您也可以在可視模式下鍵入Tab以對齊突出顯示的文本。 – ericraio