2010-06-25 5 views
3

는 이미vim에서 탭으로 구분 된 텍스트 파일의 열을 다시 정렬하는 가장 좋은 방법은 무엇입니까?

:%s/\(\S\+\)^I\(\S\+\)/\2^I\1/ 

와 함께 할 방법을 알고 있지만 많은 물건 방법을 입력하는 것 같은 느낌. 더 깨끗하고 빠른 방법이 있습니까?

+0

매크로를 사용해 보셨습니까? –

+0

Hrm. 다른 수의 열이있을 때 그것을 변경해야합니까? – mmarchin

+0

'\ {42}'와 (과) 아주 쉽습니다. –

답변

5

열이 늘어선 경우 Ctrl + V를 누른 다음 잘라내어 붙여 넣기로 시각적 차단 모드를 사용할 수 있습니다. 열이 정렬되지 않은 경우 문제의 열의 내용보다 길도록 탭 너비를 먼저 늘립니다.

+1

감사합니다. 작동하는 것 같습니다. 나는 일반적으로 시각적 블록 모드를 완전히 이용했다고 생각하지 않는다. – mmarchin

+1

차단 모드가 좋습니다. 블록을 선택하고 I 또는 A를 사용하여 블록의 각 행 앞이나 뒤에 동일한 텍스트를 추가하십시오 (예 : 코드 주석 처리). – idbrii

3

VIM에서 가장 좋은 방법은 VIM을 사용하지 않고 기존 도구를 (다시) 사용하는 것입니다. * NIX 특정 용액 :

:%!awk -F \\t '{print $2 FS $1}' 

겠습니까 파이프 awk에 탭 구분 파일의 내용과 첫 두 열을 인쇄 할 필드 세퍼레이터 (FS)에 의해 분리 된, 교환. awk은 Windows에서도 찾을 수 있습니다.

P. 처음에 나는 cut과 같은 것을 쓰고 싶었지만 시스템상의 어떤 이유로 든 cut -f 2,1 (TAB은 기본 구분자이므로 -d는 필요하지 않음)은 스왑되지 않은 동일한 순서로 필드를 출력했습니다.

+0

그래,이 awk 명령을 알고 있지만 사실 좀 더 우아한 것을 찾고 있었다. 나는 또한 커트를 많이 사용하지만, 열을 재 배열하지는 않는다. – mmarchin

관련 문제