簡體   English   中英

使用命令將單詞對齊到vim中的指定列

[英]Allign the words to the specified column in vim using commands

如何將整個文件中的單詞移動或移動到指定的列? 例如如下:之前:

123 ABC
112 XYZS
15925 asdf
1111 25asd
1 qwer

之后:

123    ABC
112    XYZS
15925  asdf
1111   25asd
1      qwer

如何使用命令模式完成? 這里我們需要將第二個單詞移到指定的列這里指定的列是8

使用內置命令的方法

首先:substitute用Tab字符:substitute空格,然后:retab到第8列的制表位,擴展到空格(對於給定的示例):

:.,.+4substitute/\s\+/\t/ | set tabstop=7 expandtab | '[,']retab

(我忽略了重置修改后的選項,這對你來說很重要。)

插件的方法

我的AlignFromCursor插件具有將光標右側的文本與特定列對齊的命令。 將它與:global命令結合使用,該命令為范圍內的所有行調用此函數,並將W動作轉換為每個行中的第二個單詞,您將獲得:

.,.+4global/^/exe 'normal! W' | LeftAlignFromCursor 8

除了其他人提到的vim-plugins,如果你正在使用可用column命令的linux盒子上工作,你可以:

%!column -t

%可以是vim范圍,例如視覺選擇等。

我使用Tabular插件 安裝后,運行以下命令:

:%Tab/\s

其中\\s表示空白字符

我為這個問題做了兩個函數。 我在這里發布了它: https//github.com/imbichie/vim-vimrc-/blob/master/MCCB_MCCE.vim

我們需要在vim編輯器中調用此函數,並給出要移動的字符或空格的出現次數以及''和列號內的字符。

出現的次數可以從每一行的起點( MCCB功能)開始,也可以在每一行的末尾( MCCE功能)。

對於問題中提到的上述示例,我們可以使用MCCB函數和我們可以使用空格的字符,因此在vim編輯器中的用法將是這樣的。

:1,5call MCCB(1,'',8)

因此,這將從第1行到第5行將第一個空格( '' )移動到第8列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM