한글 Windows 7 환경에서 Vim 8.0 x64 빌드를 사용할 경우 vim-signify 플러그인에서 오류가 발생한다.
lang mes C를 해도 메시지가 한글로 표시되기 때문에 나타나는 문제이다. 아래와 같이 소스를 수정해주면 문제가 해결된다.
diff --git a/autoload/sy/fold.vim b/autoload/sy/fold.vim
index 35028d8..a51ef54 100644
--- a/autoload/sy/fold.vim
+++ b/autoload/sy/fold.vim
@@ -100,7 +100,11 @@ function! s:get_lines() abort
let lines = []
for line in split(signlist, '\n')[2:]
- call insert(lines, matchlist(line, '\v^\s+line\=(\d+)')[1], 0)
+ let tokens = matchlist(line, '\v^\s+line\=(\d+)')
+ if 0 == len(tokens)
+ let tokens = matchlist(line, '\v^\s+줄\=(\d+)')
+ endif
+ call insert(lines, tokens[1], 0)
endfor
return reverse(lines)
diff --git a/autoload/sy/sign.vim b/autoload/sy/sign.vim
index 6af68ff..2cd818b 100644
--- a/autoload/sy/sign.vim
+++ b/autoload/sy/sign.vim
@@ -30,9 +30,11 @@ function! sy#sign#get_current_signs() abort
silent! execute 'sign place buffer='. b:sy.buffer
redir END
silent! execute 'language message' lang
-
for signline in split(signlist, '\n')[2:]
let tokens = matchlist(signline, '\v^\s+line\=(\d+)\s+id\=(\d+)\s+name\=(.*)$')
+ if 0 == len(tokens)
+ let tokens = matchlist(signline, '\v^\s+줄\=(\d+)\s+id\=(\d+)\s+이름\=(.*)$')
+ endif
let line = str2nr(tokens[1])
let id = str2nr(tokens[2])
let type = tokens[3]
수정 후 fold.vim은 cp949, sign.vim은 utf-8로 저장해야 한다.