vi 줄 정렬하신 방법에 대해 문의드립니다.
3:30~3:33 정도 사이에 각 줄의 콜론을 정렬하신 방법에 대해 궁금합니다.
답변 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





