이것은 vim 스크립트로 해결할 수 있습니다. (나는 vim 스크립팅이 싫기 때문에 직접 해결하도록하는 것이 훨씬 더 심각한 영향을 주어야한다.) 기본값은 iTerm2's "paste slowly" mode 일지라도, 기본값은 16 바이트 덩어리로 붙여 넣을 데이터를 끊고 0.125 초마다 하나씩 보내는 것이다. . 따라서 16 바이트짜리 "키 입력"을 프로그래밍 방식으로 감지하고 그에 대한 작업을 수행 할 수 있어야합니다.
if too_fast_too_be_human():
set('pastemode', True)
else
set('pastemode', False)
# where either
def too_fast_too_be_human
char_threshold = 16
return len(input_buffer) > char_threshold
# or
def too_fast_too_be_human
static byte_times = []
char_threshold = 16
time_threshold = 0.125
byte_times.append(now())
while(len(byte_times) > char_threshold):
byte_times.unshift()
return (byte_times[-1] - byte_times[0]) < time_threshold
그에게 약점이있다, 그러나 대부분의 경우에 작동합니다 : 같을 것이다 의사에
.
이 질문을 마이그레이션 할 이유가 없다고 생각합니다. vim 질문이 SO에 속하는 것으로 받아 들여질뿐만 아니라 (http://meta.stackexchange.com/questions/25925/vim-questions-so-or-su), 프로그래머의 텍스트 편집기에 관한 질문으로, 프로그래밍 할 때 공통적 인 작업을 수행하는 데 사용됩니다. – Cascabel
@ Jefromi : 어떤 형태로든 텍스트 편집을 할 때 붙여 넣기가 일반적이지만 직접 관련된 프로그래밍이 아닌 경우에도 Vim/Emacs의 질문이 받아 들여질 수 있다고 인정할 것입니다. @Jonatan :''smartindent ''를 사용하지 말 것을 강력히 권합니다. 이유에 대한 설명은 http://vim.wikia.com/wiki/Restoring_indent_after_typing_hash#Using_filetype_indentation을 참조하십시오. – jamessan
@jamessan : 요점은이 특정 서식 지정 문제를 붙여 넣는 것이 매우 일반적인 프로그래밍 작업이라는 것입니다. 다른 곳에서는 들여 쓰기가있는 텍스트 블록을 줄 간격으로 붙여 넣기하지 않습니다. – Cascabel