vimに単純な関数を書こうとしていますが、バッファに少数の行がある場合、特殊なキーを押した後にバッファ全体が収まるようにしています。ここで私は自動ウィンドウのサイズ変更
" get total lines of the current buffer
function! <SID>TotalLines()
let n = 0
for line in getline(1,'$')
let n+=1
endfor
return n
endfunction
" resize the window
function! <SID>ResizeCurrentWindow()
if has("gui_running")
let linesNumber = <SID>TotalLines()
if linesNumber < (&lines/2)
execute ':resize linesNumber'
endif
endif
endfunction
nnoremap <silent> <leader>rs :call <SID>ResizeCurrentWindow()<CR>
どう思うかだけでなく、実際にResizeCurrentWindow()関数は動作しません:私は、1行の高さの窓を得ます。しかし、私が書く場合は
execute 'echo linesNumber'
関数が働き、正しい結果を出力します。なにか提案を?最速のソリューションはありますか? おかげ
ありがとうございます!私はライン( '$')ショートカットについて知らない –