I know Vim provides functions to display window's dimensions. But does it alsoprovide ways for me to know current buffer/split's dimensions? Like how many linesand columns in displable area? Currently all I can find online is the information on how to change the splitwidth and height rather than obtaining the current dimension. But I don't needto change the split size, only need to know its size information toorganize some material in the buffer.Edit: As indicated by @Tommy A in his comment, the reason I have this questionis that I misunderstood of the terminology. To quote him:A window is a viewport for a buffer. Split is just a verb in Vim. I think  you might be mixing up the terminology for windows and buffers. Soft wrapping  occurs at winwidth(0) and it's also the the total number of characters that  can be displayed horizontally. Hard wrapping occurs at &textwidth. Hence what I want to do is to show the window dimension, by winwidth(0) andwinheight(0).Also, as mentioned in Question Get Usable Window Width in VimScript,winwidth(0) is usually larger than the usable width of the window for thecontent. To obtain the correct size information, please refer to the answer inthat question.
Is it possible to obtain the displayable area, width and height of current buffer in Vim?
vimscript;buffers;split
These are the different ways (that I know of) to get dimensional information from Vim.Vim&columns and &lines will give you the total width and height of the screen Vim is displayed in.  These can be changed at runtime, but it's not recommended.&cmdheight will give you the height of the command line.Windowswinwidth(0) and winheight(0) will give you the dimensions for the current window.  It includes the width of the gutter columns, but not the window separator.If you wanted to get the size as a ratio, you would need to turn one of the values into a float:let width_ratio = winwidth(0) / str2float(&columns)let height_ratio = winheight(0) / str2float(&lines)BuffersIf you want the total number of lines in a buffer:let total_lines = line('$')If you want the number of visible lines in a buffer:let visible_lines = line('w$') - line('w0')w$ is the bottom line and w0 is the top line.To get the maximum column from the buffer, you could use:function! BufferWidth() abort  let view = winsaveview()  let max_col = 0  g/^/let max_col=max([max_col, col('$') - 1])  call histdel('search', -1)  let @/ = histget('search', -1)  call winrestview(view)  return max_colendfunctionThe :global command is used to get the last column in every line and keep the highest value.  The rest of the function saves/restores the state since :global moves the cursor and changes the search history.