Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to edit text in multiple columns in vim

How can I edit my code in Vim by displaying it in any number of columns?

My laptop and desktop monitors are widescreen (I suspect that is true of most monitors made in the last 5 or 10 years!). When I open any editor in full screen, more than half the screen is completely empty. I'd like to be able to effectively use the rest of the screen by splitting it into two or three columns so I can see all much more of my code in a single screen.

Frankly, I'm surprised that other than Microsoft Word, I have never seen this functionality in any editor.

I found the following page (http://vim.wikia.com/wiki/View_text_file_in_two_columns) which seems to do what I want, but I don't really understand what they are suggesting. I did set columns and scroll bind, but that didn't seem to do anything.

I don't normally use Vim, but if I can get access to this functionality, I'll switch happily. I am currently on Ubuntu 10.10 (gnome). The default version of Vim seems to be 7.2 (/usr/bin/vim.gnome).

like image 841
Shahbaz Avatar asked Feb 27 '11 03:02

Shahbaz


People also ask

How do I select vertically in Vim?

Use ctrl+v to select a column of text consisting of the first character of the place you want your new column to go in front of. Use I to go into insert mode, and type one space. Press Esc, and you'll see you have inserted a column of single spaces. Now use ctrl+v again to highlight the column of spaces.

How do I select an entire text in Vim?

If you want to select the entire line in a file, press V. Now when you press k or j to go up and down, vim will select the entire line above and below your cursor. Finally, you can select text in columns by pressing ctrl+v and moving up or down the block.

How do I go to a column in vim?

The | command does what you want, as in 3 0 | will take you to column 30. bar | To screen column [count] in the current line.


2 Answers

Just press CTRL-W v and the file you are working on will be split into two separate independent columns. Repeat CTRL-W v as many times as you want.

Set scrollbind: set scrollbind to columns that you want to scroll in sync.

For example:

vim afile         # Open a file ^w v              # split it gg                # go to top :set scrollbind   # bind this one ^w l              # go to the new split L                 # go to bottom of this split zt                # make it the top line :set scrollbind   # bind with this one 

Now, while you move on one column, the other one scrolls so as if the first column overflows the text to the second column.

like image 118
Eelvex Avatar answered Sep 22 '22 08:09

Eelvex


I think what you want to do is split windows...

Type :Vexplore to split a window vertically.

Then use Ctrl + W + arrowkey to navigate to another window. :Sexplore will enable you to split the window horizontally.

To evenly space after resizing, you can type Ctrl + W + =

like image 23
pyramation Avatar answered Sep 25 '22 08:09

pyramation