단어의 철자가 틀릴 때 어떻게 터미널 벨 소리를 낼 수 있습니까?


17

나는 스크린을 보지 않고 100 + wpm에 타이핑하는 상당한 양의 전사를 수행합니다. 맞춤법 검사기가 마지막 단어를 표시 한 경우 vim이 소리를들을 수 있다면 유용 할 것이라고 생각합니다 (오타를 작성했음을 표시하고 쓴 내용을 다시 확인해야 함).

맞춤법 검사기는 스페이스 바를 누르 자마자 철자가 틀린 단어를 구문 강조 할 수 있습니다. 이것은 어떻게 작동합니까? 어떤 종류의 명령을 동시에 실행할 수있는 방법이 있습니까?

나는 항상 터미널에서 vim을 사용합니다. 지금은 터미널 벨 사운드가 설정되어 있지 않지만 가장 쉬운 방법이라면 작동시킬 수 있습니다.


질문 자체는 제쳐두고, 단어를 수정하기 위해 타이핑을 중단하고 싶습니까? 작문을 먼저 마친 다음에 "다음 철자가 틀린 단어로 점프"명령과 같은 오류를 겪는 것이 더 빠르지 않습니까?
Shahbaz

내 동기 부여는 다음과 같습니다. 일반적으로 입력하는 방식, 단어를 정확하게 입력했을 때 알 수 있지만 때로는 단어를 입력하고 조금 실수했음을 알지만 여전히 가능성이 있습니다. 맞습니다. 경고음이 들리지 않으면 제대로 설정 한 것이므로 걱정하지 않고 계속 진행할 수 있습니다. 그렇지 않으면, 나는 그것을 극복하고 다시 시도합니다. 그러나 이것은 완전히 공정한 질문입니다. 아마도 몇 가지 접근 방식의 타이밍을 정하고 어떤 일이 일어나는지 볼 가치가 있습니다.
Soren Bjornstad

2
좋아, 당신이하는 방식은 아마 더 효율적 일 것입니다. 경고음이 "보이게"된다면 속도가 느려졌을 것입니다. 그러나 화면을 보지 않고 자동 ^ W로 경고음에 반응하면 속도가 빨라야합니다. 다음 단어를 입력하기 시작한 후 두뇌가들을 수있는 신호음을 감지하면 ^ W는 잘못된 단어를 삭제합니다. 이 경우 ^ W를 누를 때까지 경고음이 울린 후 삽입 된 모든 문자를 버릴 수도 있습니다. 따라서 ^ W에서 맞춤법이 틀린 단어를 삭제 했으므로 계속 입력해야합니다.
Shahbaz

답변:


15

철자가 틀린 마지막 단어는 직접 액세스 할 수 없으며 강조 표시를 쿼리 할 수 ​​없습니다. 커서 앞에있는 단어를 직접 검색하고 철자를 확인하십시오. 다행히도 그러한 spellbadword()기능이 있습니다. 다음은 마지막 단어를 확인하는 삽입 된 각 키에 트리거를 설정합니다.

autocmd CursorMovedI * if &spell && spellbadword(matchstr(strpart(getline('.'), 0, col('.') - 1), '\S\+\s$') )[1] ==# 'bad' | execute "normal! \<C-\>\<C-n>\<Esc>" | endif

신호음을 울리는 대신 (을 통해 :normal! <Esc>) system()짧은 사운드를 재생 하는 외부 도구를 호출 할 수도 있습니다 . 또한 <Esc>커서 움직임 을 멈추는 문제를 피할 수 있습니다 .


이것은 완벽 해요! 스페이스 바를 누를 때 약간의 지연이 발생하지만 (단어 후) 큰 문제가 되기에는 충분하지 않으며 맞춤법 검사가 활성화 된 경우에만 발생합니다. 삐 소리를 내기 위해 스크립트를 만들어서 mplayer -really-quiet $SOUNDFILE >/dev/null 2>&1 &동작으로 넣었습니다.
Soren Bjornstad

1
감사! if &spell && spellbadword(...)맞춤법 검사 기능이 해제되어있는 경우 단어 검색 기능 을 비활성화하기 위해 추가를 추가 할 수도 있습니다 .
Ingo Karkat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.