分隔的單詞在Python代碼,我經常碰到的import語句是這樣的:對線路如何排序逗號Vim中
from foo import ppp, zzz, abc
有什麼Vim的伎倆,像:sort
,進行排序,以這樣的:
from foo import abc, ppp, zzz
分隔的單詞在Python代碼,我經常碰到的import語句是這樣的:對線路如何排序逗號Vim中
from foo import ppp, zzz, abc
有什麼Vim的伎倆,像:sort
,進行排序,以這樣的:
from foo import abc, ppp, zzz
是的,有:
%s/import\s*\zs.*/\=join(sort(split(submatch(0), '\s*,\s*')),', ')
的關鍵要素是:
要回答的評論,如果你想申請一個可視選擇替換,就變成:
'<,'>s/\%V.*\%V\@!/\=join(sort(split(submatch(0), '\s*,\s*')), ', ')
新的關鍵要素是這個時候:
順便說一句,我們還可以使用s
和i_CTRL-R_=
交互,或把它放在一個映射(這裏觸發µ
):
:xnoremap µ s<c-r>=join(sort(split(@", '\s*,\s*')), ', ')<cr><esc>
或者,您可以執行以下步驟:
將要分類的詞移動到下一行:
from foo import ppp, zzz, abc
在單詞列表的末尾添加一個逗號:
from foo import ppp, zzz, abc,
與移選擇例如單詞列表 - v。現在點擊:,然後輸入!xargs -n1 | sort | xargs
。它應該是這樣的:
:'<,'>!xargs -n1 | sort | xargs
命中輸入。
from foo import abc, ppp, zzz,
現在刪除後面的逗號和單詞列表(移例如 - Ĵ)合併回原線。
from foo import abc, ppp, zzz
有Vim的插件,這可能對你有用:
AdvancedSorters插件看起來非常有用。謝謝! :) –
@AshwinNanjappa我很高興我能幫你;) –
爲什麼不嘗試VIM-isort? https://github.com/fisadev/vim-isort
我使用和VIM-yapf格式爲美化代碼:) https://github.com/pignacio/vim-yapf-format
我來到這裏尋找一種快速的方式進行排序逗號分隔的列表,在一般情況下,如
relationships = {
'project', 'freelancer', 'task', 'managers', 'team'
}
我的習慣是用換行符搜索/替換空格並調用shell排序,但這是一個很痛苦的事情。
我最終找到了Chris Toomey的sort-motion
插件,這就是門票:https://github.com/christoomey/vim-sort-motion。強烈推薦。
我可以直觀地標記逗號分隔的列表部分並對其應用此操作嗎?這可能更一般,因爲我可以將其應用於其他類型的Python代碼(如實際列表的元素)。 –