I checked the behavior of visualmode() while answering a question on the vim users' list, and I noticed that the return value depends on the current buffer. Is this the way it is intended to work? If so, I think the docs should mention this.
Example: Open two buffers in two windows. Use linewise Visual mode in one and characterwise Visual mode in the other. Try :echo visualmode() :wincmd w :echo visualmode() and one will echo "v", the other "V". --Benji Fisher