VIM:排序python多行导入

rom*_*ski 4 python sorting vim

有没有办法用vim内置功能(按字母顺序)对多行导入进行排序?

例如

import Fred
import Foo, Baz,\
     Bar, Spam, Eggs
import Python
Run Code Online (Sandbox Code Playgroud)

应该成为:

import Foo, Baz,\
     Bar, Spam, Eggs
import Fred
import Python
Run Code Online (Sandbox Code Playgroud)

我检查过:帮忙排序.特别是模式匹配接近我想要的,但它使导入的类在排序块下分开.

kev*_*kev 5

Vim只能按行排序.所以你可以

  • 替换\\\n|
  • 分类
  • 替换|\\\n

试试这个:

:%s/\\\@<=\n/|
:sort
:%s/\\\@<=|/\r
Run Code Online (Sandbox Code Playgroud)

注意: \@<=\zs此处相同.