
在我的 .vimrc 中,我列出了我的 vundle 包,如下所示:
cat ~/.vimrc
...
Bundle 'Raimondi/delimitMate'
Bundle 'kien/ctrlp.vim'
Bundle 'matchit.zip'
Bundle 'upAndDown'
Bundle 'rking/ag.vim'
...
現在,我想按捆綁包名稱快速對捆綁包列表進行排序,這適用於/
存在的行,如下所示:
cat ~/.vimrc | sort -t "/" -k2,2
...
Bundle 'matchit.zip'
Bundle 'upAndDown'
Bundle 'rking/ag.vim'
Bundle 'kien/ctrlp.vim'
Bundle 'Raimondi/delimitMate'
...
我如何對沒有foo/
預先新增到捆綁包名稱的行進行排序,例如 for 的情況Bundle 'matchit.zip'
?
答案1
您始終可以在前面新增 a ./
,然後再次將其刪除。例如:
sed "/\// ! s:^Bundle[[:space:]][[:space:]]*':&./:" ~/.vimrc |
sort -t "/" -k2,2 |
sed "s:\(^Bundle[[:space:]][[:space:]]*\)'\./:\1:"
或使用 GNU sed
,可以使用擴充正規表示式稍微縮短:
sed -r "/\// ! s:^Bundle[[:space:]]+:&./:" ~/.vimrc |
sort -t "/" -k2,2 |
sed -r "s:(^Bundle[[:space:]]+)'\./:\1:"
或者,如果您確定檔案是一致的,則僅使用單一文字空格。