본문 바로가기
기타

bracketed paste mode

by 초특급하품 2020. 2. 12.

프로그램에 따라 같은 문자라도 직접 타이핑하는 경우와 복사해서 붙여 넣을 경우는 구분이 필요하다.

vim에서 코드를 복붙 해봤으면 공감이 갈 것이다. 자동 indentation 기능으로 직접 코딩할 때는 문제없지만, 다른 코드 여러 줄을 복붙 하면 indentation이 엉망이 되는 경우가 있다.

물론 이를 해결해주는 기능도 있지만 더 근본적으로 vim 입장에서 이 코드가 복사한 건지, 직접 입력한 건지 구분할 수 있다면 좋을 것이다.

 

구분을 위해 사용하는 게 bracketed paste mode이다.

이게 설정되면 붙여 넣기로 추가된 문자에 대해서 앞뒤로 특수 기호가 추가된다. 그 정체는 앞에는 \e[200~, 뒤에는 \e[201~ 가 붙는데 실제 눈에 보이는 건 00~01~일 것이다.

 

복사 여부를 bracketed paste mode로 구분한다는 것은 직접 제어할 수도 있다는 뜻이다. 아래와 같이 출력하면 시작/종료할 수 있다.

$ printf "\e[?2004h"
(ctrl+v)
$ 00~PASTED_STRING01~
$ printf "\e[?2004l"
(ctrl+v)
$ PASTED_STRING

 

가끔 비정상적인 프로세스 종료로 인해 bracketed paste mode가 켜있는 경우가 있다. 이런 경우 붙여 넣기 할 때 위 특수 문자가 붙겠지만 당황하지 않고 printf "\e[?2004l"로 모드를 종료하면 복구된다.

'기타' 카테고리의 다른 글

CSS flex 기본  (0) 2020.03.12
분산 트랜잭션 - 2단계 커밋(two-phase commit)  (0) 2020.02.20
newline의 골치 CR, LF  (0) 2020.02.11
[bash] history 사용법  (0) 2020.02.11
ssh 터널링  (0) 2020.02.02

댓글