I've been thinking of migrating to using vim (gvim) but I'm running into lots of difficulties on the road I just can't solve, and the documentation is... well, strange at best.

* Is it possible to make the cursor stay at it's position even after scrolling it out of view? As it is it follows with your scrolling which is bad because if my mouse suddenly gets the idea of scrolling up you get pretty displaced as well as inserting text where it doesn't belong. Other problems is that a selection, or visual, is also stretched out as the cursor moves.

* At the beginning of an indented line, why does normal mode put the cursor at the end of the first tab whereas insert mode is position at the beginning of the line like I think it should? It's annoying to move around in code like that.

* Is it possible to enter insert mode for files that aren't modifiable? Obviously any changes can't be saved but the buffer shouldn't be any problems to modify.

* Is it possible to close tabs with the middle mouse button?

* I wanted the Home-button to act so that it first jumps to the first non-whitespace character of the current line (i.e. skip the indentation) and if Home is pressed when you're already at the first non-whitespace character or before then it should jump to the real beginning of the line, column #1.
I made this function:
function! HomeKey ()
	let c = col(".")
	if c == 1
		if col(".") >= c
This doesn't want to work properly. It extends the command window and dumps some code from the bottom of the .vimrc and then asks for pressing enter and lastly jumps to line #180 in the same file. If c == 1 nothing happens, it doesn't go all wild but that 'w' keypress isn't executed. Also I have noticed that g0 doesn't really take you back to beginning of the line but the beginning of the horizontal scroll. A problem, but it doesn't explain why the code is acting crazy.

* In gvim, is it possible to have a drag-and-drop action open the dragged file into a new tab instead of a new buffer? Using the menu is just tedious, and you can't select multiple files either.

* I want to check a string if it begins with something but I have no clue why. I was thinking of a regexp but the only way to use matching regexps is for highlights and substition regexps seems to operate on the whole file or a selection and no way to use them on strings.