나는 최근 필터링 !
기술을 알고 있었고 그것을 좋아합니다. 불행히도 비주얼 블록 모드에서는 사용할 수 없습니다. 여기에 일부 전문가가 도움이되기를 바랍니다.
기본적으로 아래 세 번째와 같은 열을 적절하게 정렬하고 싶습니다 (MWE 만). 그리고 정렬 할 때 다른 열을 방해하고 싶지 않습니다.
유틸리티를 !
통해 시각적으로 (블록 모드) 선택한 세 번째 열 을 필터링 ( ) 하려고했습니다 sort
. 그러나 정렬은 선택을 넘어 확장됩니다. 즉, 선택뿐만 아니라 모든 행이 교환되어 첫 번째 열을 기준으로 정렬 됩니다.
1. LARGEST 40
2. SECOND-LARGEST 168
3. MID 2.8
4. MID 540
5. MID 14.84
6. MID 40
7. SECOND-LEAST 64
8. LEAST 8
비주얼 블록을 사용하여 마지막 열을 선택 !sort --reverse
했는데 다음 과 같이 표시됩니다.
'<,'>!sort --reverse
그리고 결과는 내가 기대 한 것과 반대입니다. 결과는 세 번째 열 선택에 관계없이 첫 번째 열을 기준으로 한 열뿐만 아니라 전체 행이 정렬 / 스왑되었습니다 !
8. LEAST 8
7. SECOND-LEAST 64
6. MID 40
5. MID 14.84
4. MID 540
3. MID 2.8
2. SECOND-LARGEST 168
1. LARGEST 40
달리 불가능하지 않으면 sed
/ 와 같은 비교적 고급 도구가 아닌 순수한 vim + 정렬 솔루션을 원합니다 awk
. 비주얼 모드와 비교하여 비주얼 블록 모드가 얼마나 제한되어 있는지 아는 것이 더 중요합니다.
:help filter
뿐만 아니라 표준화되어 있습니다 (죄송합니다. POS와 딥 링크하는 방법을 모르겠습니다). RFTM을하지 않으면 불만을 제기 할 수 없습니다.
sort
사용할 수 있는 vim 내부 명령이 있으므로!sort
정기적 정렬을 위해 외부를 호출 할 필요가 없습니다 .