2017-12-04 27 views
1

라인의 가장 왼쪽 공백이 아닌 문자로만 커서 이동을 제한하는 정력 설정이 있습니까?Vim : 왼쪽 커서 이동을 줄의 첫 번째 공백이 아닌 문자로 제한하는 방법은 무엇입니까?

일부 정보를 버퍼에 출력하고있는 플러그인을 작성 중입니다. 모든 텍스트는 왼쪽에 많은 여백 공백을 갖지만 모든 줄은 들여 쓰여질 것입니다. 나는 텍스트가없는이 패딩 영역에서 커서를 움직이지 못하게하고 싶습니다. 예를 들어

:

| Lorem ipsum 
| Lorem ipsum 
| Lorem ipsum 
| Lorem ipsum 

'|' vim 테두리를 나타내며 테두리와 텍스트 사이는 공백입니다. 커서는이 공백에서 절대 이동해서는 안되며 'L'에서 멈춰야합니다.

당신은 더 도움말을 참조하십시오 CursorMoved:normal!

augroup BossyMotions 
    autocmd! 
    autocmd CursorMoved <buffer> if strpart(getline('.'), 0, col('.')) =~ '^\s*$' | execute 'normal! ^' | endif 
augroup END 

과 라인의 시작 부분에 커서를 강제 할 수

+1

나는 사용자가 w ** 사용하기에 충분히 스마트 될 것 같아요 ** 그러한 경우. –

+0

우리는 당신이 성취하고자하는 것에 대해 더 많은 정보를 필요로합니다. 예를 들어'' 'nomodifiable' '을 통해 버퍼가 변경되는 것을 막을 수 있습니까? 그렇다면 각 행에 대한 추가 정보를 버퍼 로컬 변수에 저장할 수 있습니다. 어쩌면 우리는 은폐를 사용할 수 있습니다. 아마도 이것은 버퍼가 아니어야하며 대신 퀵 픽스 목록이나'inputlist()'를 사용하십시오. –

+0

이미 버퍼가 변경되는 것을 방지하고 버퍼가되어야합니다. 확실하지 않은 더 많은 정보를 제공 할 ... – skamsie

답변

1

:

:h :normal 
:h :autocmd 
:h :autocmd-buflocal 
:h :augroup 
:h CursorMoved 
:h :exe 
:h strpart() 
+0

내 질문을 오해했다 생각합니다 ... 나는 커서가 라인의 첫 번째 공백이 아닌 문자에있을 때 커서의 움직임을 방지하고 싶습니다. 모든 행 앞에 빈 공백이 많이 붙습니다 (vim 용 python lib 사용). 기본적으로 너무 많은 번거 로움없이 패딩 효과를 만들려고합니다. – skamsie

+0

이것을 vimrc에 추가했지만 어떤 차이도 보이지 않습니다 ... 더 많은 것이 있습니까? – skamsie

+0

이것은 로컬의 버퍼'autocmd' (일명 '')로 이것을 특정 버퍼에 추가해야합니다. 기본적으로 당신은 당신이 이것으로하고 싶지만 움직일 수 있습니다. 그러나 당신이 들여 쓰기 안에 들어가면 그것은 당신을 첫번째 비 공백 문자로 강제 할 것입니다. –