inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

시스템엔지니어가 알려주는 리눅스 기초편 Bash Shell Script

간단 쉘 스크립트(2) 조건문 case

vi 줄 정렬하신 방법에 대해 문의드립니다.

해결된 질문

30

lodelj

작성한 질문수 1

0

3:30~3:33 정도 사이에 각 줄의 콜론을 정렬하신 방법에 대해 궁금합니다.

linux shell-script

답변 1

0

강민구

질문 주신 3:30~3:33 구간에서 사용한 건 vi(vim)의 비주얼 블록 모드 일괄 삽입입니다.

편집 상황


내용 : 설명

내용 : 설명

내용 : 설명

내용이 길었던 줄 : 설명


앞의 세 줄은 콜론 위치가 같고, 네 번째 줄만 내용이 길어서 콜론이 오른쪽으로 밀려 있는 상태였습니다. 앞의 세 줄 콜론을 네 번째 줄 콜론 위치까지 밀어서 맞추는 작업입니다.


조작 순서

1. 세 번째 줄에서 콜론 바로 앞 칸에 커서를 둡니다.

2. Ctrl + v 를 눌러 비주얼 블록 모드로 들어갑니다. (화면 아래에 VISUAL BLOCK 표시)

3. k 를 두 번 눌러 위로 두 줄 확장합니다. 이제 1~3줄의 같은 열이 세로로 선택된 상태입니다.

4. 대문자 I 를 누릅니다. 블록의 맨 앞(선택한 열)에 삽입 모드로 들어갑니다.

5. 스페이스바를 눌러 네 번째 줄 콜론과 같은 위치가 될 때까지 공백을 넣습니다. 이때 화면에는 커서가 있는 한 줄만 밀리는 것처럼 보입니다.

6. Esc 를 누릅니다. 이 순간 입력한 공백이 선택했던 나머지 줄에도 똑같이 복제되어, 1~3줄의 콜론이 한 번에 밀려 정렬됩니다.

핵심은 5번이 아니라 6번입니다. 비주얼 블록 삽입은 편집 중에는 한 줄만 바뀌는 것처럼 보이고, Esc 로 삽입 모드를 빠져나갈 때 블록의 모든 줄에 일괄 반영됩니다. 그래서 Esc 를 누르기 전에 화면만 보고 안 된다고 판단하지 않으셔도 됩니다.


알아두시면 좋은 점

- 소문자 i 가 아니라 대문자 I 입니다. 소문자는 블록 삽입이 아닙니다. 블록의 끝쪽에 붙여 넣을 때는 대문자 A 를 씁니다.

- 이 방법은 선택한 줄들의 콜론 위치가 서로 같을 때 한 번에 맞출 수 있습니다. 줄마다 콜론 위치가 제각각이면 같은 열에 공백이 들어가므로 원하는 결과가 나오지 않습니다. 그때는 위치가 같은 줄끼리 나눠서 여러 번 하시면 됩니다.

- 윈도우 터미널에서 Ctrl + v 가 붙여넣기로 동작해 비주얼 블록 모드가 안 들어가는 경우가 있습니다. 그럴 때는 Ctrl + q 를 사용하시면 됩니다.

- 되돌리기는 u 입니다. 블록 편집도 한 번의 u 로 전부 취소됩니다.


참고로 열 맞추기를 자동으로 하고 싶다면 다음 방법도 있습니다.

:%!column -t -s:

다만 이 명령은 구분자인 콜론이 사라지거나 원본 형태가 바뀔 수 있습니다. 그래서 강의에서 보여드린 것처럼 눈으로 확인하며 맞추는 방식을 저는 더 선호합니다.

다양한 방법을 사용해보세요 :-)


실습환경

0

26

2

강의 듣는 타겟층

0

123

2

기초편 교안 실행 안될 경우 참고사항.

2

428

1

AND에서 조건 둘이 참이어야 실행한다는 부분이 이해가 되지 않아 질문 드립니다.

0

410

1

강의 자료 제공 가능할까요?

0

508

1

codeonweb 관련 질문

0

559

2

Ubuntu / Network Interface SysConfig 파일 찾는 법

0

1443

1

Ubuntu / Bareword "test0" not allowed while "strict subs" / 해결법

0

1095

1

실습환경에 대한 문의 드립니다.

0

605

2

강의를 초반을 듣는중에 궁금한점이 있어 문의드립니다.

0

400

1

bash와 zsh은 어느 정도의 차이가 나나요?

0

3027

1

웹 리눅스 환경으로만 진행해야 하나요?

0

436

1

방화벽에 대해서 질문드립니다.

0

367

1

mount에 대해서 질문드립니다.

0

409

1

쉘 스크립트 안에서

0

412

1

쉘 스크립트 작성해보았습니다

2

811

1

별도의 강의 자료는 없는것인지 문의 드립니다.

0

318

1

분명 파일이 있는데 계속 -bash: cd: /root/SHELL: No such file or directory 라고 뜹니다

0

2949

1

저는 이렇게 작성했습니다. 멘트 부탁드려요

0

292

1

강의듣다보니..

0

306

1

문자열 비교 관련 질문드립니다.

0

652

3

/dev/null 에 관해서 질문이요

0

820

1

menu.sh 내 menu 함수 작성 시 중괄호

0

313

1

sed 명령어 옵션 질문

0

545

2