2013-03-15 52 views
1

我必須編輯一個超過600000個UTF8格式的俄文縮寫詞的大文本文件。按perl排序對Vim行進行排序(因爲內建排序不能正確處理Windows 7中的UTF8)

每個字都位於一個單獨的線和文件已經由Perl腳本(使用其sort功能)成功排序:

enter image description here

,該字符範圍是0x0430 - 0x044F(請參閱the Unicode range chart)。

我的問題是:我必須保持我的它和它的零件編輯過程中整理文件,但是當我使用Vim的內置(或者是Windows)中%!sort那麼俄文字母是由他們的數字代碼和分類不按字母順序。

我的問題是:我在%path%perl - 我怎麼可能請用它來我編輯在Vim編輯器(整體和它的一部分)的文件進行排序?

+1

':%s的sort'不排序,這是一個替代品,消除「排序」每行。 ':%!sort'是Windows SORT.EXE,':%sort'是vim排序。 – sehe 2013-03-15 14:22:28

+0

+1謝謝,那是一個錯字。你已經回答了我的問題:':%sort'適合我! – 2013-03-15 14:35:31

回答

2

一定要看看

:help perldo 

看到Perl支持是否是內置在你的vim的副本。

另外,

%!perl -e 'print foreach sort (<>)' 

應該讓你開始使用外部的Perl

PS。另外,也要看看help :sort因爲我不太清楚你一直在使用Vim的排序直到現在

更新我只是想用1000個字從http://en.wiktionary.org/wiki/User:Dart_evader/Russian_1-1000並使用「外部」的perl oneliner像上面有正是相同的結果,只是在做(在Linux上)

:%sort 
+0

謝謝,但'perldo'似乎只適用於當前行(在'$ _'中) - 如何使用它來對文件進行排序? – 2013-03-15 14:25:22

+1

@Alexander很好,我不知道:)更新後,它應該不是真的有關嗎? – sehe 2013-03-15 14:34:06

+0

是的,':%sort'運行良好(我之前使用':%!sort'),謝謝! – 2013-03-15 14:36:06