Vim 고급 기능
이 마지막 단계에서는 생산성을 크게 향상시킬 수 있는 Vim 의 몇 가지 고급 기능을 배우게 됩니다. 여기에는 텍스트 검색, 바꾸기 및 여러 파일 작업이 포함됩니다.
텍스트 검색
Vim 에서 텍스트를 검색하려면:
- 일반 모드에서
/를 누릅니다.
- 검색어를 입력합니다.
Enter를 눌러 검색을 시작합니다.
n을 눌러 다음 일치 항목을 찾습니다.
N을 눌러 이전 일치 항목을 찾습니다.
검색을 연습할 파일을 만들어 보겠습니다.
vim ~/project/search_example.txt
i로 삽입 모드로 들어가 다음 텍스트를 입력합니다.
Linux is a family of open-source Unix-like operating systems.
The Linux kernel was first released by Linus Torvalds.
Linux is widely used in servers, desktops, and embedded systems.
Linux distributions include Ubuntu, Fedora, and CentOS.
Many server environments run on Linux due to its stability.
이제 검색을 연습합니다.
Esc를 눌러 일반 모드에 있는지 확인합니다.
/Linux를 입력하고 Enter를 누릅니다.
n을 눌러 "Linux"의 다음 일치 항목으로 이동합니다.
N을 눌러 이전 일치 항목으로 이동합니다.
찾기 및 바꾸기
Vim 을 사용하면 substitute 명령을 사용하여 텍스트를 바꿀 수 있습니다.
- 현재 줄에서 패턴의 첫 번째 일치 항목을 바꾸려면:
:s/old/new/
- 현재 줄의 모든 일치 항목을 바꾸려면:
:s/old/new/g
- 전체 파일의 모든 일치 항목을 바꾸려면:
:%s/old/new/g
- 확인과 함께 바꾸려면:
:%s/old/new/gc
대체를 시도해 보겠습니다.
Esc를 눌러 일반 모드에 있는지 확인합니다.
:%s/Linux/GNU\/Linux/g를 입력하고 Enter를 누릅니다.
- 이렇게 하면 파일 전체에서 "Linux"의 모든 일치 항목이 "GNU/Linux"로 바뀝니다.
파일을 스크롤하여 대체가 이루어졌는지 확인합니다.
파일을 저장하고 종료합니다.
:wq를 입력하고 Enter를 누릅니다.
시각 모드
Vim 의 시각 모드를 사용하면 작업을 수행하기 전에 텍스트를 선택할 수 있습니다.
v - 문자 단위 시각 선택 시작
V - 줄 단위 시각 선택 시작
Ctrl+v - 블록 단위 시각 선택 시작 (열 선택)
시각 모드를 연습할 새 파일을 만들어 보겠습니다.
vim ~/project/visual_example.txt
i로 삽입 모드로 들어가 다음을 입력합니다.
Line 1: This is the first line for practicing visual mode.
Line 2: We can select parts of this text.
Line 3: Visual mode is very powerful.
Line 4: It allows for precise text manipulation.
Line 5: This is the last line of our example.
Esc를 눌러 일반 모드로 돌아갑니다.
이제 이러한 시각 모드 작업을 시도해 보세요.
- 커서를 "Line 2"의 시작 부분으로 이동합니다.
V를 눌러 줄 단위 시각 선택을 시작합니다.
j를 눌러 선택 영역을 "Line 3"을 포함하도록 확장합니다.
d를 눌러 선택한 줄을 삭제합니다.
Line 2 와 3 이 삭제된 것을 볼 수 있습니다.
여러 파일 작업
단일 Vim 세션에서 여러 파일을 편집할 수 있습니다.
- 여러 파일을 한 번에 열려면:
vim file1.txt file2.txt
- 다음 버퍼로 전환하려면:
:bn
- 이전 버퍼로 전환하려면:
:bp
- 모든 버퍼를 나열하려면:
:ls
- 특정 버퍼로 전환하려면:
:b number 또는 :b name
여러 파일을 만들고 작업해 보겠습니다.
vim ~/project/file1.txt ~/project/file2.txt
첫 번째 파일에서 i로 삽입 모드로 들어가 다음을 입력합니다.
This is the content of file1.txt.
We're practicing working with multiple files in Vim.
Vim 을 종료하지 않고 이 파일을 저장합니다.
Esc를 눌러 일반 모드에 있는지 확인합니다.
:w를 입력하고 Enter를 누릅니다.
이제 두 번째 파일로 전환합니다.
:bn을 입력하고 Enter를 누릅니다.
i로 삽입 모드로 들어가 다음을 입력합니다.
This is the content of file2.txt.
Switching between files in Vim is efficient.
이 파일을 저장하고 Vim 을 종료합니다.
Esc를 눌러 일반 모드에 있는지 확인합니다.
:wq를 입력하고 Enter를 누릅니다.
주석이 있는 구성 파일 만들기
배운 고급 기능을 적용하여 더 복잡한 구성 파일을 만들어 보겠습니다.
vim ~/project/advanced_config.conf
i로 삽입 모드로 들어가 다음을 입력합니다.
## Server Configuration
## Last updated: 2023-10-20
[Database]
Host=localhost
Port=5432
User=dbuser
Password=secret
Database=myapp
[Web]
Host=0.0.0.0
Port=8080
Debug=true
LogLevel=info
[Security]
EnableSSL=true
SSLCert=/etc/ssl/certs/mycert.pem
SSLKey=/etc/ssl/private/mykey.pem
AllowedIPs=127.0.0.1,192.168.1.0/24
이제 몇 가지 고급 편집을 연습합니다.
/localhost를 사용하여 "localhost"를 검색합니다.
:s/secret/db_password/를 사용하여 "secret"를 "db_password"로 바꿉니다.
- 시각 모드를 사용하여 "AllowedIPs" 줄을 선택하고 삭제합니다.
o를 사용하여 새 줄에 삽입 모드로 들어가 마지막에 새 섹션을 추가합니다.
[Monitoring]
Enabled=true
Interval=60
AlertEmail=admin@example.com
파일을 저장하고 종료합니다.
Esc를 눌러 일반 모드에 있는지 확인합니다.
:wq를 입력하고 Enter를 누릅니다.
구성 파일의 내용을 확인합니다.
cat ~/project/advanced_config.conf
훌륭합니다! 이제 Linux 에서 텍스트를 편집할 때 생산성을 높이는 데 도움이 되는 Vim 의 고급 기능을 배우고 연습했습니다.