我如何右對齊(左對齊?)數字或文本塊在vim這樣的:如何對齊最大數字或最大字符串爲對齊指示符的列?
來自:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
這樣:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
這意味着,每列中最大數字或最大字符串不移動。
第一列是45 + 34,第二列209 + 120,第三列300和最後一列12.
我如何右對齊(左對齊?)數字或文本塊在vim這樣的:如何對齊最大數字或最大字符串爲對齊指示符的列?
來自:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
這樣:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
這意味着,每列中最大數字或最大字符串不移動。
第一列是45 + 34,第二列209 + 120,第三列300和最後一列12.
使用Align和AlignMaps插件:選擇使用V,然後\ anum(AlignMaps自帶Align)。 \ anum的一個優點是它也處理小數點(逗號)和科學記數法。
你的插件很棒。它可以做很多事情,但不易於理解Tabular。我發現的另一個缺點是你不能把地圖放在命令行p.e中。在menu.vim或vimrc中使用它們。而且......這個插件使用了很多以不同字母開頭的地圖。我希望他們會更容易記住(或由用戶更改)。我不喜歡DrChip菜單。 (更糟糕的是......我之前已經嘗試過\ anum,唯一不知道我必須選擇linewise的。) – Reman
您可以查看Tabularize插件。所以,如果你有類似
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
只是在視覺模式選擇那些線和類型:Tab/
,它會格式化爲
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
此外,它看起來就像你不具有同等數量當前分隔數字的空間。所以,你使用插件之前,與the following regex替換所有單個空格多個空格:
%s![^ ]\zs \+! !g
請參閱我的問題。 (順便說一句...我有對齊和tabularize插件,但無法找到如何解決我的問題)。 – Reman
看一看在align
插件,它可以做到這一點,更。在您的實用帶上的偉大工具!
找到here
經過一番認真vimhelp /閱讀中,我找到了正確的AlignCtrl
映射... 直觀地選擇表,例如通過使用ggVG
,然後做一個\Tsp
即<leader>Tsp
然後我得到這個:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
從vimhelp:
\Tsp : use Align to make a table separated by blanks |alignmap-Tsp|
(right justified)
'align'插件很不錯,但'Tabularize'插件(由yoda提到)非常出色。 – Jeet
隨着Align plugin你可以選擇你要對齊的行和打:
<Leader>Tsp
從Align.txt
\Tsp : use Align to make a table separated by blanks |alignmap-Tsp|
(right justified)
(幫助提\
,因爲它是默認的領導者,但如果你已經改成了別的東西,你必須做出相應的調整)
只是想在我安裝,我得到以下結果:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
在我看來對齊插件是偉大的,但「排列圖」和各種命令是不是真的很容易記住。
是的,我同意。 DrChip(爲什麼他叫他自己的Dr.chip?))創造了很好的東西,但大多數事情都很難找到,理解並且不能實現。 – Reman
我覺得做的最好的事情就是先吃掉所有的多個空格與
:{range}s/ \+/ /g
然後調用Tabularize
:Tab//r1
或更改r
到l
。
您是否使用空格來獲取輸入?當我使用製表符輸入數字列時,它們自然是左對齊的。 – NorthGuard
@inTide,是空格(我在緩衝區中不使用製表符) – Reman