2016-06-19 1 views
1

사용자에게 양식을 제공하는 플러그인을 작성하고 있습니다. 모든 것이 잘 작동하지만 처음 두 열의 편집을 막을 수 있다면 성공할 수 있습니다. 기본적으로 이것은 다음과 같습니다. col(".") < X 일 때,하지만 삽입 모드에서 누른 모든 키를 연결하는 방법을 모르겠습니다. 내 방향이 올바른지, 키 스트로크에 연결하는 방법은 무엇입니까?Vim에서 주어진 열 앞에있는 텍스트 편집을 차단하십시오.

기타 나는 또한 처음으로 선택한 줄을 편집하는 것을 차단하고 싶습니다. 7 줄.

답변

1

당신은 예를 들어, CursorMoved 자동 명령 내부 옵션 modifiable을 사용할 수 있습니다

au CursorMoved * call CheckCursorPos() 

function! CheckCursorPos() 
    " This code has to be improved, it's just an example: 
    if col('.') <= 2 
     set nomodifiable 
    else 
     set modifiable 
    endif 
endf 

당신은 기능 (예를 들어 7 첫 선을 처리하는) 내부의 더 복잡한 테스트를 추가 할 수 있습니다.

자동 완성을하려면 CursorMovedI 자동 명령을 처리해야합니다. 그렇지 않으면 편집 모드가 가능합니다 (예 : 수정할 수있는 4 번째 열의 i을 누른 다음

+0

"E21 : 변경할 수 없으며 '수정 가능'이 꺼져 있습니다. 어떻게 든 사라질 수 있습니까? –

관련 문제