vim + iterm: how to use mouse for everything EXCEPT selection? - user-interface

Ok, have a very specific setup question. I'm using Mac OS X, iTerm, and vim. I really like using my mouse for clicking tabs in normal mode, scrolling in normal mode etc. (e.g. I already have the mouse working within iTerm/vim).
However, I dislike using visual mode for selecting. I just want to use OS X selection not vim's visual select. The next logical step? Disable visual selection in the mouse options:
set mouse=nicr
The problem with this is that when I try to select (using the mouse) vim intercepts the mouse click and doesn't allow me to select at all!
Anyone know how deal with this issue? It feels like its solvable if one knew the proper character/control codes (which I obviously do not).
Goal: use the mouse in vim for everything except "select". Let iTerm/OS do the selection.

I don't have a Mac, but under Linux holding Shift while highlighting allows you to use the mouse to copy with the mouse settings you mentioned.
See the "Note:" in :h mouse

Related

How to show/hide autocomplete pop-up in Colab using only the keyboard?

I like having the autocomplete "tooltip" window readily available for those times when I don't know the function signature, but the rest of the time it just gets in the way.
I know it's possible to globally and persistently enable/disable autocomplete, but this is not what I want. Rather, I want to hit some key(s) like TAB to make the popup appear, and/or ESC to make the pop-up disappear.
How do I make the pop-up disappear using the keyboard?
How do I make a "hidden-by-default" pop-up appear using the keyboard?
A solution for either of these 2 questions would solve my problem.
[edit]
I'm using Vim keybindings, which seems to eat the default meaning of ESC.
Your screenshot shows parameter hints, which should always be dismissed by pressing escape.
If dismissed, you can summon the parameter hints again using the keyboard shortcut Shift-⌘ space on OSX or Shift-Control space on other platforms.

mouse capturing differences between Terminal.app with MouseTerm SIMBL plugin and iTerm2

iTerm2:
Mouse reporting works out of the box, works in Vim, works fully in Tmux, mouse wheel reporting works in Vim and for navigating Tmux history, but mouse wheel reporting does not work in manpages, does not work in git log, does not work in less
Terminal.app:
Mouse reporting does not work out of the box, but once installed mouse wheel reporting works everywhere including less and manpages and git log, etc. However mouse click+drag fails in Tmux, but still works in Vim.
So I'd rather use just one of these terminal apps, and I am particularly digging the immense feature set of iTerm2 (e.g. mouse-over to select which term to input to beats the hell out of anything Tmux can offer since it is zero keys to switch contexts) so I'd prefer if I can get mouse wheel reporting working fully in those programs.
I am having a hard time trying to debug the terminal codes being sent because the only way I can intercept them is through Vim, (as ctrl+V followed by scroll in my terminal will just have it scroll the terminal buffer) but Vim seems to be doing everything correctly.
Update: According to mouseterm project, it seems to be using a feature called "Simulated mouse wheel scrolling" to scroll programs like less... maybe I can configure iTerm to do the same. Somehow. I do believe PuTTY also accomplishes this, and I'd like to have at least the functionality I can get on Windows on the Mac... Nope, I'm just spoiled by the neatness of MouseTerm.
Although less (which is also used in git log) does not use mouse reporting itself,
iTerm2 can be configured to send up/down-arrow escape codes for scrolling
(from mouse wheel or trackpad two-finger swipe)
and less understands those.
See my answer
to a related question about how to set this up for iTerm2.
less does not actually recognize any terminal mouse events. (As such, tools that use it, like man and git log will not recognize mouse events either.) Something else you've done must be making it appear to support mouse events.
If you want the mouse wheel to work in your pager, you'll need to find a pager other than less which supports it. You might be able to put something together using view (vim in read-only mode), but applications like man which output content with control codes will be an issue there.

Make Visual Studio 2010 display more lines in code editor

With a 14" LCD monitor (1366x768), my VS2010 can only display 21 lines in code editor. There are too many tool bars occupied upper and bottom part (see below screenshot). When writing codes, it's OK to use fullscreen mode. However, when reading codes, I need some of the toolbar like the bookmark bar, open file tab. Is there any suggestion to increase the viewing area?
Create a single custom toolbar with just the commands you really use in it. Remove the other toolbars. Close tool windows docked at the bottom.
There is an addon that can even remove the menu bar – you'll need to learn keyboard shortcuts (this is a good idea anyway: moving a hand to/from the mouse is much slower).
Increase secreen resolution
Use a different font such as Terminal or Consolas. I guess you must be already using Consolas, try Terminal.
Decrease the font size.
Turn monitor by 90 degree, so it is higher not wider.
Besides that - get a decent monitor. 14" is barely legal acording to some european laws for office use. Programmers tyically get a lot bigger.
Customize your toolbars and get rid of the buttons you don't use. You'll probably be able to fit everything on one row after that.
For example, I don't think I have used the toolbar buttons for cut/copy/paste, using the keyboard instead, so those were the first buttons I removed.
On the right side of each toolbar, there is a button with an arrow, click on that and you should see "customize this toolbar" in the drop-down menu.
Well, if you are having an older notebook, you might not able to change your display, increase your screen resolution or turn the monitor by 90 degrees, like the others suggested. Here are my suggestions for when this is the case:
Place your toolbars left or right instead at the top or bottom
close output window
use fullscreen mode and learn keyboard shortcuts for bookmarks and file menu functions, so you can work without the specfic toolbars
I use Full Screen mode (ALT+SHIFT+ENTER to toggle) when doing the actual editing, with only the solution explorer open on the right hand side.

Scrolling inside Vim in Mac's Terminal

I've been googling around trying to figure out if it's possible to use my mouse wheel to scroll while inside Vim in Mac's Terminal, with no luck. It seems as if only X11 or iTerm support this.
Before I give up, I thought I'd try the geniuses here to see if anyone knows a way to do this. So, does anyone know if I can set that up?
Or should I seriously consider using a different terminal application?
And if you're using iTerm, add this to your vimrc
:set mouse=a
http://bitheap.org/mouseterm/
Use MouseTerm (and do make sure to install SIMBL first!) and scrolling will work like a charm, even remote, using Mac Terminal.
You need to fully quit the Terminal application (Command+Q) and then launch it again after installing MouseTerm.
This is an old question, but a top hit on google, so I feel compelled to provide an updated answer.
Running OSX El Capitan 10.11, vim mouse and trackpad scrolling just worked(TM) for me in Terminal.app by default. However occasionally the mouse/trackpad input stopped manipulating the vim buffer, and started scrolling the terminal buffer. The answer was Command+R or Menu View --> Allow Mouse Reporting. Turning that on allowed the mouse/trackpad scroll operations to move the cursor in vim.
Termanal Menu > View > Allow Mouse Reporting
Terminal Menu > Preferences >
Keyboard > Scroll alternate screen
If the mouse functionalities still do not work properly take a look at my answer in this post How to let vim behave on Mac OS X as on Ubuntu?, just add to your .vimrc
set ttymouse=xterm2
You can read this article, but I'm pretty sure since the default terminal in Mac OS X has a built-in scrollbar, the mousewheel commands automatically go to it. You could definitely use gVim as suggested in the previous answer. I find that I don't generally want to use the mouse in Vim though as it takes my hands off the keyboard.
I just use 50j to go down and 50k to go up. Not exactly scrolling, but it works pretty well.
Make sure the terminal is xterm & not ansi in Terminal Menu > Preferences > Profiles > Advanced. I accidentally broke scrolling by changing the term type in a naive effort to get coloring to work over ssh.
Use gVim, which gives you a text editing environment in a window you can scroll. Terminal is not involved when using gVim.
I'm using xterm in X11 (XQuartz 2.3.4) and vim works very fine with mouse and also suport 256 colors.
Here is the ~/.Xresources I use to make my xterm nicer in X11:
XTerm*faceName: Lucida Sans Typewriter Regular
XTerm*faceSize: 9
XTerm*utf8: 1
xterm*saveLines: 1000
xterm*jumpScroll: true
!xterm*awaitInput: true
!xterm*multiScroll: true
XTerm*scrollBar: false
xterm*scrollbar*thickness: 16
xterm*rightScrollBar: true
XTerm*foreground: white
XTerm*background: grey10
!XTerm*background: black
XTerm*cursorColor: yellow
xterm*visualBell: false
xterm*loginShell: true
Little tips, to remove the bell sound in X11's xterm type this command:
xset b 0
I would recommend using iTerm - it has so many advantages over Terminal eg Mouse support, 256 colors, sensible copy and paste (auto-copy, word/url selection with double click, middle click paste)...
When using iTerm create a .vimrc file (if not already there) in your home folder and add the line:
:set mouse=a
Scrolling down in vim to view a file works after this.

Unable to use X clipboard in Screen

I read the following code in Unix Power Tools on page 117
*VT100.Translations: #override\
Button1 <Btn3Down>: select-end(primary,CUT_BUFFER0,CLIPBOARD)\n\
!Shift <Btn2Up>: insert-selection(CLIPBOARD)\n\
~Shift ~Ctrl ~Meta <Btn2Up>: insert-selection(primary,CUT_BUFFER0)
I have not managed to see any effect of the above code.
How can you use X clipboard in Screen, without your mouse?
Using the mouse. Left-click drag to select and usually the middle mouse button pastes but some terminals may differ (PuTTY uses right-click). If you only have two buttons you click them both together (left mouse button + right mouse button).
In reply to comment below ("Can you do it without your mouse?"):
ctrl-insert : copy
shift-insert : paste
shift-delete : cut
shift-ctrl-C : copy
shift-ctrl-V : paste
Not all applications will support the last three (though Konsole does). In fact most console applications will not allow you to delete text once it's printed.
As far as selecting text without a mouse I'm not sure there's a generic mechanism for that. It's probably terminal and/or application specific (ie, vim has it's own keys for marking and copying text - but only within vim). You could do it with mouse emulation but I'm sure that would be a painful process.
You can't use the traditional Mac/Windows shortcuts in a terminal because they were reserved for different actions long before these OS existed (ie, Ctrl-C terminates the running process).
I'm trying to use Ctrl-C in X
X does not handle these operations directly, they are handled by the application. That's why modern GUI programs like Firefox or Gedit support Ctrl-C for copy but terminals and command-line programs generally do not. As I said, it's a conflict in established conventions and Ctrl-C for kill got in first.
BTW, you could do some key-remapping if it drives you nuts but then you would be learning bad habits when you use a different machine. Best to just get used to it or do most of your editing in a GUI application.
More Information
EDIT: For a Mac, this may help: MacOSX-to-Konsole or This or This. It looks like you need to replace Ctrl with Command on Mac keyboards. It seems like Terminal the mac console has a right-click context menu for copy-paste so to do it the traditional way you me need to install a different console program or change some settings in Terminal.

Resources