Vim의 줄 정렬 가이드

Vim Ui Jul Jeonglyeol Gaideu



Vim에서 줄을 정렬하려면 내장된 종류 정의된 범위에 따라 행을 정렬하는 명령입니다. 일반적으로 범위가 지정되지 않으면 문서의 모든 줄이 정렬됩니다.

예를 들어, 전체 문서를 정렬하려면 :종류 NORMAL 모드에서의 명령. 반면, 특정 줄만 정렬하려면 다음을 사용하세요. :x,y 정렬 명령, 어디서 엑스 그리고 그리고 줄 번호의 범위를 정의하십시오. 엑스 에게 그리고 .







정렬은 문서를 편집하는 데 필요한 중요한 기능 중 하나입니다. Vim은 정렬과 같은 고유한 기능을 제공하는 데 있어 여느 고급 편집기 못지 않습니다. 따라서 이 가이드에서는 Vim의 내장 기능에 대해 설명하겠습니다. 종류 명령 및 이를 사용하여 줄을 정렬하는 다양한 방법을 알아보세요.



메모: 이 가이드에 언급된 지침과 명령은 Linux(Ubuntu 22.04)에서 수행됩니다. Vim은 크로스 플랫폼 텍스트 편집기이며 이러한 명령은 macOS 및 Windows에서도 오류 없이 작동합니다.



모든 라인 정렬





문서의 모든 줄을 정렬하려면 다음을 실행하십시오. 종류 NORMAL 모드에서 명령을 실행합니다.

:종류



기본적으로 종류 명령은 사전순으로 줄을 정렬합니다.

파일에 빈 줄이 있으면 sort 명령은 실제 ​​텍스트 정렬 상단에 빈 줄을 배치합니다.

선택한 라인 정렬

선택한 라인을 정렬하려면 먼저 선택 모드에서 해당 라인을 선택해야 합니다. 선택 모드를 활성화하려면 ~에 을 사용하여 라인을 선택합니다. 시간 , 제이 , 케이, 그리고 키 또는 방향 버튼.

Vim에는 다음과 같은 줄별 선택 모드도 있습니다. 비주얼라인 방법. 누르다 V(shift+v) 활성화하기 위해 비주얼라인 라인을 선택하는 모드입니다.

라인을 선택하면 ' <, ' > 선택 범위를 나타내는 명령줄에서 ' < 시각적 선택의 첫 번째 줄을 표시하고 ' > 마지막을 나타냅니다.

이제 다음을 입력하세요. 종류 명령을 입력하고 Enter 키를 눌러 다음 GIF와 같이 선택한 줄에 정렬을 적용합니다.

원거리 라인 정렬

라인 범위는 종류 라인을 정렬하는 명령입니다. 그만큼 :번호 설정 명령을 사용하면 Vim에서 줄 번호를 활성화할 수 있으므로 줄 번호를 더 쉽게 식별할 수 있습니다.

예를 들어, 라인 번호 1부터 라인 번호 4까지 라인을 정렬하려면 다음을 사용하십시오. :1,4 정렬 명령.

: 1 , 4 종류

위 출력에서 ​​볼 수 있듯이 지정된 행만 정렬되어 있습니다.

역순으로 정렬

앞서 언급했듯이 기본 동작은 종류 명령은 사전순으로 줄을 정렬하는 것입니다. 어휘가 아닌 방식으로 행을 정렬하려면 느낌표( ! ) 후 종류 명령.

:종류 !

로케일별로 정렬

컴퓨터는 전 세계에서 작동되며 문자와 규칙이 다른 다양한 언어를 사용합니다. 로캘별로 데이터 정렬을 정렬하는 경우 문제가 발생합니다. 예를 들어, 일본에 거주하고 있으며 해당 로케일을 기준으로 행을 정렬하려면 이를 지정해야 합니다. 그만큼 종류 명령은 또한 깃발.

현재 데이터 정렬 로캘을 확인하려면 다음을 사용하세요. :언어 명령.

:언어

현재 로케일로 정렬하려면 다음을 사용하십시오.

: 행운을 빌어요

메모: 이 옵션은 macOS 기반 시스템에서는 제대로 작동하지 않을 수 있습니다.

숫자로 정렬

라인의 첫 번째 소수를 기준으로 라인을 정렬하려면 다음을 사용하십시오. N 깃발을 꽂다 종류 명령. 정렬은 기본적으로 오름차순으로 진행됩니다.

:정렬 n

내림차순으로 정렬하려면 ! 명령 뒤의 기호.

:종류 ! N

차이점은 다음과 같습니다. 종류 그리고 n 정렬 sort 명령은 행의 숫자를 무시하고 어휘적으로 행을 정렬한다는 것입니다. 숫자를 기준으로 정렬하려면 N sort 명령으로 플래그를 지정합니다.

예를 들어, 다음 파일의 줄에는 문자와 숫자도 포함되어 있습니다. 적용하여 정렬하면 종류 명령만 실행하면 이 줄은 알파벳순으로 정렬됩니다. 반면에, n 정렬 명령은 다음 이미지에 표시된 대로 번호별로 줄을 정렬합니다.

숫자 정렬을 위한 몇 가지 다른 옵션이 다음 표에 언급되어 있습니다.

에프 부동 숫자 정렬
이진수 정렬
영형 8진수 정렬
시간 16진수 정렬

마크별로 정렬

Vim에서는 수백 줄의 파일을 더 쉽게 탐색할 수 있도록 표시를 사용하여 파일의 특정 위치를 설정합니다. 마크는 다음을 사용하여 정렬 작업을 수행하는 데 사용될 수 있습니다. 종류 명령.

두 개의 표시를 설정했다고 가정합니다. 그리고 .

따라서 마크에서 모든 라인을 정렬하려면 표시하다 , 다음 명령을 사용하십시오.

: 'ㅏ,' 종류

작은따옴표( ' )은 마크에 액세스하는 데 사용됩니다.

정규식(RegEx)으로 정렬

정규식(RegEx)은 다음과 같은 패턴을 정의하여 줄을 정렬하는 일반적인 방법 중 하나입니다. 종류 명령.

예를 들어, 알파벳과 숫자가 포함된 열을 기준으로 행을 정렬하려면 /[az]*[0-9]+/ 패턴 종류 명령. 그만큼 아르 자형 이후 플래그 종류 명령은 언급된 패턴을 기반으로 정렬하도록 명령에 지시하는 데 사용됩니다.

:정렬r / [ a~z ] * [ 0 - 9 ] + /

위 이미지에서 볼 수 있듯이 마지막 열은 알파벳순으로 정렬되어 있습니다. 열을 숫자로 정렬하려면 다음을 삽입하십시오. N 깃발.

메모: 2,5번째 줄에서 범위를 정의하여 첫 번째 줄을 건너뛰었습니다.

그만큼 아르 자형 플래그를 사용하면 주어진 패턴으로 파일을 정렬할 수 있습니다. 없이 아르 자형 플래그를 지정하면 sort 명령은 패턴과 일치하지 않는 모든 행을 정렬합니다.

중복 라인 제거

파일에서 중복된 줄을 제거하는 가장 빠른 방법은 다음을 사용하는 것입니다. 종류 명령을 사용하여 ~에 고유성을 나타내는 플래그입니다.

:다양한 너

중복된 줄을 제거하기 위해 이 방법을 사용하면 줄도 정렬되므로 많은 상황에서 원하지 않을 수 있습니다. 정규식과 같은 대체 방법을 사용하면 정렬할 필요 없이 파일에서 중복된 줄을 제거할 수 있습니다.

열을 기준으로 행 정렬

Vim에서는 열을 기준으로 줄을 정렬하는 두 가지 방법이 있습니다. 첫 번째 방법은 외부 Linux 정렬 명령을 사용하고, 두 번째 방법은 내장된 정렬 명령을 사용합니다.

외부 명령은 기본 정렬 명령에 비해 구현하기 쉽습니다. 외부 명령은 Vim의 기본 명령이 아닙니다. 이는 운영 체제에서 지원하는 모든 명령을 의미합니다.

Vim에서 어떻게 작동하는지 이해해 봅시다.

Vim에서 외부 명령을 사용하려면 ! 해당 명령 앞에 기호가 사용됩니다. 쉼표로 구분된 파일(CSV)이 있고 세 번째 열을 기준으로 파일을 정렬한다고 가정합니다. 명령은 다음과 같습니다

: %! 종류 -티 ',' -k3

그만큼 % 전체 버퍼를 선택 항목으로 나타냅니다. 그만큼 -티 플래그는 쉼표, 콜론 또는 공백일 수 있는 필드 구분 기호를 정의하는 데 사용됩니다. 그만큼 -케이 flag는 줄의 위치를 ​​나타내는 키입니다. k2 지정된 구분 기호 다음의 두 번째 필드를 의미합니다.

예에서는 대신 범위를 언급했습니다. % 첫 번째 줄을 건너 뛰려면.

: 2 , 5 ! 종류 -티 ',' -k3

외부 종류 명령은 순서 섞기, 무작위 정렬, 병합과 같은 다양한 정렬 옵션을 제공하므로 다른 여러 가지 방법으로도 유용할 수 있습니다. Linux 정렬 명령에 대해 자세히 알아보려면 다음을 사용하세요. 남자 도움 명령.

반면 Vim의 내장 기능을 사용하려면 종류 명령을 실행하면 정규식 패턴이 sort 명령과 함께 사용됩니다.

:종류 / \v^ ( . { - } , ) { 2 } /

위 명령에서:

  • \안에 수직 탭을 나타냅니다
  • ^ 줄의 시작을 나타냅니다.
  • (.{-},) 는 다음과 같은 그룹입니다. .{-} 탐욕스럽지 않은 버전입니다 .* 그리고 , 분리 필드입니다
  • {2} 건너뛸 처음 2개 열을 나타냅니다.

다음과 같은 것을 알 수 있다. 아르 자형 플래그는 패턴과 함께 사용되지 않습니다. 즉, 패턴은 일치하는 열을 건너뛰고 패턴 다음에 열을 정렬합니다. 이 경우 파일은 세 번째 열을 기준으로 정렬됩니다. 다음 예에서는 첫 번째 줄을 건너뛰기 위해 범위 2,5를 사용했습니다.

기본적인 차이점은 .* 그리고 .{-} 그거야? .{-} 가장 짧은 일치 우선 알고리즘을 처리하는 반면 .* 최대한 맞춰드립니다. 예를 들어, 문자열 wxyz에서 x.*y 전체 문자열과 일치하지만 x.{-}y xy에만 일치합니다.

줄 정렬 대소문자 구분

대문자와 소문자로 시작하는 줄을 정렬하는 경우 sort 명령은 대문자로 된 줄을 먼저 정렬합니다. 대소문자 구분을 무시하려면 깃발.

다음 이미지에서 볼 수 있듯이, 정렬되지 않은 라인과 정렬된 라인은 :종류 그리고 :나 정렬 명령.

결론

Vim에서 정렬은 Vim 내장 기능을 사용하여 쉽게 수행할 수 있습니다. 종류 명령. 기본적으로 행은 알파벳순으로 정렬되지만 역순으로 정렬하려면 ! 명령 후에 서명하십시오. sort 명령은 일반적으로 전체 버퍼를 정렬합니다. 범위는 쉼표 구분 기호를 사용하여 정의할 수도 있습니다. 그만큼 N 플래그는 숫자 정렬에 사용되는 반면 중복 라인을 제거하는 데 사용됩니다. ~에 플래그가 사용됩니다. 또한, 분류 프로세스를 강화하기 위해 외부 종류 명령은 Vim에서도 사용할 수 있습니다.

Vim의 정렬에 대해 자세히 알아보려면 다음을 실행하세요. :도움말 정렬 명령.