Closed utterances-bot closed 1 year ago
안녕하세요. 이 글을 보고 체크박스 기능과 책읽기 진행도 업데이트 기능을 구현해 보고 싶어졌습니다. ^^
먼저 체크박스 토글 기능은 애초부터 사용해 보고 싶었었는데 윈도우 파워쉘에서는 Ctrl + Space
로 체크박스가 생성되지 않아 잠시 미뤄뒀었는데, 이번에 아래와 같이 별도 단축키를 지정하니 정상적으로 작동했습니다.
nmap <LocalLeader>v <Plug>VimwikiToggleListItem
그런데, 책읽기 진행도 업데이트와 관련해서 아래와 같이 진행했는데 book.md 파일 저장 시 동작을 하지 않았습니다.
set-vimwiki.vim 파일이 있는 곳에 bookProgressUpdate.sh 파일 저장 (이하 코드는 위 문서의 코드와 동일합니다.)
#!/usr/bin/env bash
awk '/^#+ +[0-9]+% [0-9]+ \// { \
point = int(100 * $3 / $5); \
sub(/^(#+ +)[0-9]+/, $1 " " point); \
}1' $1 > $1.replaced
cat $1.replaced > $1
\rm $1.replaced
2) set-vimwiki.vim 파일에 아래 코드 추가
let g:vim_wiki_set_path = expand('<sfile>:p:h')
" book progress update function function! UpdateBookProgress() let l:cmd = g:vim_wiki_set_path . "/bookProgressUpdate.sh " . expand('%:p') call system(l:cmd) edit endfunction
augroup todoauto autocmd BufWritePost *wiki/book.md call UpdateBookProgress() augroup END
3) book.md 파일에 아래 와 같이 입력 후 저장
위 프로세스로 진행했는데 저장 후에도 0이라는 숫자가 변하지 않았습니다.
혹시 경로를 잘못 지정했나 싶어서 book.md 버퍼를 저장하고 command 상태에서 아래와 같이 입력해 봤는데
:echo vim_wiki_set_path . "/bookProgressUpdate.sh " . expand('%:p')
이런 결과를 출력했습니다. (경로에 이상은 없는 것 같습니다.)
/home/tlo/dev_envs/config/bookProgressUpdate.sh /home/tlo/git/shouts77.github.io/_wiki/book.md
(bookProgressUpdate.sh 파일은 set-vimwiki.vim 파일과 같은 경로에 있습니다.)
제가 sh 파일 내용까지는 아직 다 이해하지 못해서 그런 것일 수도 있는데,
혹시 어떤 점이 문제일 수 있는지 의견을 주시면 참고해서 추가로 더 확인해보겠습니다.
감사합니다.
@shouts77 book.md
파일의 내용이 정규식과 매치되지 않기 때문입니다. md 파일의 내용을 ## 0% 33 / 100
이렇게 해 보세요. (md 파일에서 %
앞에 있는 스페이스를 제거하시거나, sh 파일에서 /^#+ +[0-9]+% [0-9]+ \//
를 /^#+ +[0-9]+ *% [0-9]+ \//
로 고치면 될 거에요.)
아.. 되네요. 정규식도 틈틈이 공부해야겠네요. 감사합니다!
읽고 있는 책의 진행도를 Vim에서 자동으로 계산하자 - 기계인간 John Grib
awk 만세
https://johngrib.github.io/wiki/vim-update-book-progress/