From fce0a103ff0fdb743647f5fb0d80a0a8ee2743c5 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Thu, 19 Sep 2013 17:27:26 +0900 Subject: [PATCH] Use try-finally for reverting the setup --- autoload/easy_align.vim | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/autoload/easy_align.vim b/autoload/easy_align.vim index 4bb3ad3..68665b7 100644 --- a/autoload/easy_align.vim +++ b/autoload/easy_align.vim @@ -92,16 +92,19 @@ let s:prev_echon_len = 0 function! s:echon_(msg) " http://vim.wikia.com/wiki/How_to_print_full_screen_width_messages let xy = [&ruler, &showcmd] - set noruler noshowcmd - let winlen = winwidth(winnr()) - 2 - let msg = len(a:msg) > winlen ? (a:msg[0 : winlen - 3] . '..') : a:msg - let len = len(msg) - if len < s:prev_echon_len - echon "\r". repeat(' ', min([winlen, s:prev_echon_len])) - endif - echon "\r". msg - let s:prev_echon_len = len - let [&ruler, &showcmd] = xy + try + set noruler noshowcmd + let winlen = winwidth(winnr()) - 2 + let msg = len(a:msg) > winlen ? (a:msg[0 : winlen - 3] . '..') : a:msg + let len = len(msg) + if len < s:prev_echon_len + echon "\r". repeat(' ', min([winlen, s:prev_echon_len])) + endif + echon "\r". msg + let s:prev_echon_len = len + finally + let [&ruler, &showcmd] = xy + endtry endfunction function! s:echon(l, n, d, o)