VSCode Vim 설치 후 Ctrl+C, Ctrl+V 안 될 때 해결법
회사에서 VSCode에 Vim 확장을 설치하려고 Extensions 탭을 열었는데 접속이 안 됐다. 폐쇄망 환경이라 Marketplace 접근이 막혀있었다. VSIX 파일로 수동 설치가 가능하다는 걸 알게 돼서, 외부에서 파일을 받아 설치했다.
문제는 그 다음이었다. 코드 복사를 위해 Ctrl+C를 눌렀더니 Insert 모드가 해제됐고, Ctrl+V는 붙여넣기 대신 Visual Block 모드로 진입했다. Vim의 기본 키 바인딩과 OS 단축키가 완전히 충돌하면서 복사도, 붙여넣기도 제대로 동작하지 않았다.
이 글에서는 폐쇄망에서 VSIX로 Vim 확장을 설치하는 방법과, Ctrl+C/V 충돌 문제를 해결하는 방법을 정리한다.
1. VSCode Vim 확장 설치 방법
1-1. 온라인 설치 (기본)
인터넷이 되는 환경이라면 가장 간단한 방법이다.
1. VSCode 왼쪽 사이드바 Extensions 아이콘 클릭 (Ctrl+Shift+X)
2. 검색창에 "Vim" 입력
3. "Vim" (VSCodeVim) 확장 설치
4. VSCode 재시작

설치 후 에디터 하단 상태바에 --NORMAL-- 또는 --INSERT-- 표시가 보이면 정상 작동하는 것이다.
1-2. VSIX 파일로 수동 설치 (폐쇄망 환경)
회사 폐쇄망이나 인터넷 접속이 제한된 환경에서는 VSIX 파일을 이용한 수동 설치가 필요하다.
VSIX 파일 다운로드
외부 네트워크가 가능한 환경에서 다음 방법으로 다운로드한다.
방법 1: Visual Studio Marketplace
1. https://marketplace.visualstudio.com/vscode 접속
2. "Vim" 검색
3. VSCodeVim 페이지로 이동
4. 우측 "Download Extension" 버튼 클릭
5. .vsix 파일 다운로드
방법 2: GitHub Releases
vscode 공식 깃허브 최신 릴리즈에서 .vsix 파일을 다운로드 합니다.
https://github.com/VSCodeVim/Vim/releases
Releases · VSCodeVim/Vim
:star: Vim for Visual Studio Code. Contribute to VSCodeVim/Vim development by creating an account on GitHub.
github.com

다운로드한 파일명 예시: vim-1.x.x.vsix
VSCode에서 수동 설치
다운로드한 VSIX 파일을 폐쇄망 PC로 전송한 후 설치한다.
1. VSCode 실행
2. Ctrl + Shift + P (명령 팔레트)
3. "Install from VSIX" 입력
4. Extensions: Install from VSIX... 선택
5. 다운로드한 .vsix 파일 선택
6. 설치 완료 후 VSCode 재시작


설치가 완료되면 우측 하단에 Completed installing extension. 알림이 표시된다.
2. Vim 모드 켜고 끄는 방법
Vim 모드를 잠시 비활성화하거나 완전히 끄고 싶을 때 사용하는 방법이다.
2-1. 일시적으로 토글
작업 중 Vim 모드를 잠깐 껐다 켤 때 유용하다.
Ctrl + Shift + P → "Vim: Toggle Vim Mode" 입력
상태바의 Vim 모드 표시(--NORMAL--)가 사라지면 비활성화된 것이다. 다시 실행하면 활성화된다.
2-2. 완전 비활성화
Vim 확장 자체를 끄거나 제거하는 방법이다.
1. Extensions 탭 (Ctrl+Shift+X)
2. 설치된 확장에서 "Vim" 검색
3. Disable (비활성화) 또는 Uninstall (제거)
비활성화가 필요한 경우:
- Vim 키 바인딩에 익숙하지 않을 때
- 특정 작업에서 OS 기본 단축키가 필요할 때
- Vim 학습 초기 단계
3. Ctrl+C, Ctrl+V 충돌 문제 해결
3-1. 문제 원인
VSCode Vim 확장은 순수 Vim의 키 바인딩을 그대로 사용한다.
Ctrl+C의 동작:
- OS 기본: 복사 (Copy)
- Vim: Insert 모드 → Normal 모드 전환
Ctrl+V의 동작:
- OS 기본: 붙여넣기 (Paste)
- Vim: Visual Block 모드 진입 (열 단위 선택)
이 두 기능이 충돌하면서 복사도, 붙여넣기도 제대로 되지 않는다.
3-2. 해결법: 시스템 클립보드 연동 (추천)
가장 권장하는 방법은 useSystemClipboard 설정을 활성화하는 것이다.
settings.json 열기
Ctrl + Shift + P (Mac: Cmd + Shift + P)
"settings.json" 입력
Preferences: Open User Settings (JSON) 선택

설정 추가
settings.json 파일에 다음 내용을 추가한다.
{
"vim.useSystemClipboard": true
}
설정의 의미
이 옵션은 Vim의 레지스터(")를 시스템 클립보드와 자동으로 연동한다.
- Vim 내부에서 복사한 내용이 시스템 클립보드에 저장됨
- Ctrl+C/V가 OS 기본 동작으로 복구됨
- Vim 방식(
"+y,"+p)도 계속 사용 가능
설정 저장 후 VSCode를 재시작하면 바로 적용된다.
3-3. 대안: 특정 키 비활성화
useSystemClipboard 설정만으로 부족하다면, 아예 Vim이 특정 키를 처리하지 못하게 막을 수 있다.
{
"vim.handleKeys": {
"<C-c>": false,
"<C-v>": false
}
}

동작 방식
<C-c>: Ctrl+C를 VSCode 기본 복사로 처리<C-v>: Ctrl+V를 VSCode 기본 붙여넣기로 처리- Vim은 이 키 조합을 무시함
장단점
장점:
- OS 기본 단축키 완전 복구
- Vim 초보자에게 친화적
단점:
- Vim 고유 기능(Visual Block 등) 사용 불가
- Vim 방식 학습에 방해될 수 있음
4. Vim 방식 복사/붙여넣기
시스템 클립보드 설정 후에도 Vim 스타일을 유지하고 싶다면 다음 방법을 사용한다.
4-1. 시스템 클립보드 레지스터 사용
복사 (Yank)
Visual 모드에서 텍스트 선택 후
"+y
": 레지스터 선택 명령+: 시스템 클립보드 레지스터y: yank (복사)
붙여넣기 (Put)
Normal 모드에서
"+p
p: put (붙여넣기)
레지스터 개념
Vim은 복사한 내용을 "레지스터"라는 버퍼에 저장한다.
": 기본 레지스터 (Vim 내부에서만 사용)+: 시스템 클립보드 레지스터 (OS와 공유)*: 선택 영역 레지스터 (Linux 중간 클릭 붙여넣기)
useSystemClipboard: true 설정은 기본 레지스터(")와 시스템 클립보드(+)를 자동으로 연결해주는 역할을 한다.
5. 정리
VSIX 수동 설치
폐쇄망 환경에서는 Marketplace 대신 VSIX 파일을 다운로드해 Install from VSIX... 명령으로 설치한다.
Vim 모드 토글
Ctrl + Shift + P → Vim: Toggle Vim Mode로 일시적 비활성화가 가능하다.
시스템 클립보드 설정 (핵심)
{
"vim.useSystemClipboard": true
}
이 설정 하나로 Ctrl+C/V 충돌 문제가 대부분 해결된다.
추천 설정
{
"vim.useSystemClipboard": true,
"vim.handleKeys": {
"<C-c>": false,
"<C-v>": false
}
}
완전한 OS 단축키 복구를 원한다면 handleKeys까지 추가한다.
'환경설정' 카테고리의 다른 글
| Ubuntu에 Docker 설치하고 n8n 자동화 서버 구축하기: 단계별 가이드 (0) | 2025.10.12 |
|---|---|
| 우분투 Python 환경설정. pip, venv, 자동실행 스크립트까지 (0) | 2025.10.10 |
| 리눅스 개발자를 위한 터미널 색상 설정 - Gogh로 우분투 테마 설정 (0) | 2025.10.05 |