Vim 함수를 자동으로 호출


25

커서를 현재 줄의 첫 문자로 이동시키는 작은 Vim 함수를 작성했습니다. 커서가 이미 첫 번째 문자 인 경우 커서는 대신 첫 번째 열로 이동합니다.

" Jump to first character or column
noremap H :call FirstCharOrFirstCol()<cr>

:function! FirstCharOrFirstCol()
:  let current_col = virtcol('.')
:  normal ^
:  let first_char = virtcol('.')
:  if current_col == first_char
:    normal 0
:  endif
:endfunction

이 함수를 자동으로 호출하려면 어떻게합니까? 오히려 ': call FirstCharOrFirstCol ()'이 상태 표시 줄에 표시되지 않았습니다. 단순히 변경하는 것만으로 noremap H :silent call…는 충분하지 않은 것 같습니다.


7
작은 메모 : VimScript 파일 (예 :) *.vim에서는 선행 :문자 가 필요하지 않습니다 .
tommcdo

답변:


34

자동 맵을 정의하여 자동으로 함수를 호출 할 수 있습니다.

noremap <silent> H :call FirstCharOrFirstCol()<cr>

자세한 내용은를 참조하십시오 :h :map-<silent>. 특히 이것은 매핑이 실행될 때 명령이 화면에 에코되지 않도록합니다. 이 :silent명령은 함수 자체의 출력을 침묵시키는 데 사용됩니다 (참조 :h :silent).


1
좋은 :silent것은 내가 쫓아 온 것입니다. 함수에 오류가 있으면를 사용하지 않으면 메시지가 계속 표시됩니다 !. 코드를 유효하지 않은 상태로 두었다는 것을 알지 못했기 때문에 :silent에코를 무음으로 처리하지 않아서 출력에서 ​​오류를 볼 수 있으므로 올바르게 사용하지 않는다고 생각 했습니다 !!
JonnyRaa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.