sudo vim 사용 시 코드 형식이 깨지는 이유와 올바른 붙여넣기 방법

라이트세일에서 운영 중일 때 SSH를 사용하여 연결을 통해 작업을 해야 하는 경우가 있습니다. 이때 sudo vim으로 코드를 추가하다 보면, 붙여넣기 시 단락이 무너지는 문제가 발생해 어려움을 겪을 수 있습니다. 저와 같은 문제를 겪는 분들을 위해, 한 번에 올바르게 붙여넣는 방법을 알아보겠습니다.

sudo vim에서 코드 붙여넣기를 할 때 줄바꿈, 들여쓰기, 공백 등이 무너지는 이유는 vim의 자동 들여쓰기 기능이 붙여넣는 도중에 작동하기 때문입니다. 이를 해결하려면 붙여넣기 모드(paste mode)를 활성화한 후 붙여넣기를 해야 합니다.

문제가 발생하는 이유

vim은 기본적으로 코드를 편집할 때 자동으로 들여쓰기를 조정해주는 기능을 갖고 있습니다. 그런데 외부에서 복사한 코드를 붙여넣으면, vim이 이 입력을 한 줄씩 타이핑한 것처럼 인식해서 자동으로 들여쓰기를 바꿔버리게 됩니다.

sudo vim 명령어

sudo vim

SSH를 사용해 연결하면 위와 같은 터미널 화면이 나타납니다. 여기서 코드를 추가할 파일을 편집하려면 sudo vim [파일명]을 입력하면 됩니다.

vim 모드 및 명령어

모드설명진입/사용 방법
Normal 모드기본 모드, 커서 이동, 삭제, 복사,
붙여넣기 등 단축키 사용
vim 실행시 기본
Insert 모드텍스트 입력 모드Normal 모드에서 i(현재 커서 앞), a(커서 뒤), o(아래 줄 새로 삽입) 등
Command-line 모드파일 저장, 종료, 설정 변경 등 명령어 입력Normal 모드에서 : 누름
  • :w → 저장
  • :q → 종료
  • :wq → 저장 후 종료
  • :set paste → 붙여넣기 모드 활성화
  • :set nopaste → 붙여넣기 모드 비활성화

vim에서 : 를 누르게 되면 화면 아래에 커서가 깜빡이면서 명령어 입력 상태가 되고, 그때 위의 명령어를 입력하면 됩니다. 모드를 빠져나가는 방법은 Esc키를 누르면 됩니다.

Insert 모드로 들어가기

sudo vim

sudo vim 으로 파일 편집기로 들어가게 되면 기본적으로 Normal 모드에서 시작하기 때문에 타이핑을 해도 수정이 안 됩니다. 편집 모드로 전환을 해야 입력 및 수정이 가능합니다.

설명
i현재 커서 위치에서 입력 시작
a커서 뒤에서 입력 시작
o아래 줄 새로 만들어서 입력 시작

위의 키를 누르게 되면 입력 화면 아래 —INSERT— 가 나타나고 이때부터 텍스트 수정이 가능합니다.

붙여넣기 모드 사용하기

sudo vim

코드를 붙여넣기를 할 경우 깨지는 문제를 해결하는 방법은 :set paste 를 입력하신 후에 붙여넣기를 하게 되면 단락이 무너지는 문제가 발생하지 않습니다.

:set paste

순서를 보게 되면 편집기로 들어간 후에 i 를 눌러서 삽입 모드(insert mode)로 전환한 후에, 원하는 코드를 붙여넣기(Ctrl+Shift+V 또는 shift+insert)를 하시면 됩니다.

:set nopaste

붙여넣기가 끝나게 되면 :set nopaste 입력해서 다시 원래 상태로 돌리시면 됩니다.

sudo vim 편집기는 많이 사용되기 때문에 코드를 붙여넣을 일이 많습니다. 하지만 모드를 제대로 알지 못하면 단락이 구분되지 않아 오류가 발생하는 경우가 많습니다. 위의 설명을 참고해 편하게 코드를 복사하고 붙여넣기하시기 바랍니다.

▶ 라이트세일에 OpenLiteSpeed(OLS) 웹 서버를 설치하는 방법

▶ Keep-Alive 활성화해서 워드프레스 속도 향상하기(OLS 기준)

▶ 라이트세일에 OpenLiteSpeed(OLS) 웹 서버를 설치하는 방법

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤