inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Kỹ sư hệ thống hướng dẫn Linux cơ bản Bash Shell Script

Shell script đơn giản (2) Câu lệnh điều kiện case

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

Đã giải quyết

30

lodelj

1 câu hỏi đã được viết

0

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

linux shell-script

Câu trả lời 1

0

bashbomb

질문 주신 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