How can I configure emacs to switch to a particular buffer when I click the mouse in it? - emacs

I'm using iTerm2 on my mac to ssh into a Linux box and run emacs in the terminal. On a big monitor, I like to split the window to see multiple buffers side-by-side. I'd like to be able to switch to a particular buffer by clicking the mouse in it (rather than doing C-x o).
What seems to be happening is that if I click the mouse anywhere outside the currently active buffer e.g. in the next buffer, on the mode line etc., the click is being interpreted as which is bound to (tmm-menubar-mouse EVENT).
I have disabled the menubar by doing the following in my .emacs_d/init.el:
(menu-bar-mode -1)
This seems to disable the visible display of the menu bar at the top of the window, but the mouse click behavior I described is still happening.
I think what I need is to have the click interpreted as something other than and then bind that to some function that detects which buffer the click happened in and switch to it. But, I don't know how to do that and the searching I've done hasn't yielded any clear answer. Can anyone help?
Alternatively, I looked into using windmove to enable switching between buffers with SHIFT and the arrow keys. I did (windmove-default-keybindings) but emacs then seems to respond to SHIFT left-arrow by inserting "2C" into the buffer and SHIFT-right-arrow by inserting "2D". If anyone has any tips on making this work too, I'd love to hear them.
Thanks

I ran into this problem a while ago, where clicking on column > 95 was interpreted as <menu-bar> <mouse-1>, which invokes tmm-menubar-mouse. It turned out to be a bug:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6594
There hasn't been a formal release since this bug was fixed, but you can get the patch here:
http://bzr.savannah.gnu.org/lh/emacs/emacs-23/revision/100618
If I recall correctly, you should be able to just drop the modified file into your existing emacs installation and byte-compile it (assuming you're running the 23.3.1, the latest release).

Related

How to navigate by clicking with your cursor in Unix?

So when I am writing in Unix in the emacs editor it is not possible to change lines I wrote before by clicking on that particular part. Now I have to use my arrows on the keyboard and that takes a lot of time. Anyone suggestions?
I assume you're asking about using a mouse in a terminal. If so, use xterm-mouse-mode by running M-x xterm-mouse-mode or adding (xterm-mouse-mode 1) to your init.el.

pop up buffer menu is slow

When clicking C-mouse-1 in emacs you get a pop up buffer menu to select opened buffers from.
I noticed after switching from emacs 23 to 24 that the menu is slow to open "categories".
For example I have :
Fundamentals
Dired by name
C
Others
Moving the mouse to one of these categories wont open the list of buffers inside it without moving the mouse a little more.
Meaning, I would move the mouse lets say on Fundamentals, it gets highlighted but doesn't show the second level popup with the list of buffers, I need to move the mouse some more "while still on Fundamentals" to reveal the list.
This was not the behavior in emacs 23 where the second level list opens instantly once you hover the mouse on the category.
Any reason for that? And a possible fix?
Sounds like the difference between Lucid menus and Gtk menus. IOW it's probably not the change in Emacs version but the fact that your Emacs-23 was built with the Lucid toolkit whereas your Emacs-24 is built with the Gtk toolkit.

Prevent mouse-selected text from being put into Emacs paste buffer?

In emacs, there is a feature where if I select text with a mouse, then without pressing
ctrl-c I can paste into emacs with ctrl-v if I have cua mode turned on.
I want to turn off this feature while keeping the cua mode on. I mean I want to
explicitly press ctrl-c so that the text will get copied to the clipboard.
I suspect that you are using a version of Emacs older than version 24? If so, see the last paragraph of this page of the current Emacs manual. You can probably get rid of the behaviour you dislike by setting x-select-enable-primary to nil.
From my quick tests, setting it to T (which isn't the default on Emacs 24) reproduces the problem behaviour, and this happens both in and not in cua-mode.

How do I keep Emacs org-mode from splitting windows?

I'm a new emacs user using emacs for the awesome org-mode. I have links to all my org files at the top of my pages but everytime I click a link it splits my window, so I only have half of the screen estate available. How do I set it so that emacs does not split the window horizontally but rather opens up a new window for my links?
I'm assuming you mean you want to open the link in a new frame. (Emacs terminology is a bit different from other GUI apps, because Emacs predates X11. What would be called a "window" in other apps is called a "frame" in Emacs, because "window" already had a specific meaning in Emacs, and was used in the names of lots of functions.) What's happening now is that you have a frame containing one window, and Emacs is splitting that window to form two windows.
You need to customize org-link-frame-setup to use find-file-other-frame instead of the default find-file-other-window.
You can do this by typing M-x customize-variable <ENTER> org-link-frame-setup <ENTER>. Click the Value Menu next to find-file-other-window and select find-file-other-frame, then click Save for future sessions.
One option is to tell Emacs to never split windows, which can be done like so:
(setq same-window-regexps '("."))
This will keep your window from splitting, and then you use your regular commands to switch buffers to get back to what you were looking at.
This is as opposed to what it sounds like you were asking for, which was new frames, which IMO doesn't really help if you have limited screen real estate because you're now having to switch frames (graphical windows).

How to disable cursor in emacs when emacs doesn't have focus?

I'm using emacs 22.3.3 over X on a Windows box.
When I've switched to another window, the cursor stays enabled (which means if it's blinking, it still blinks).
Every other program I've ever used disables the cursor when the window doesn't have focus. Since emacs is different, I keep accidentally typing input meant for emacs into other programs.
How can I programatically disable the cursor in my .emacs file when the window loses focus?
I know that emacs has a disabled cursor mode, because it switches the cursor to white with a black border when a particular buffer doesn't have the focus.
Update: My X client is Xming 6.9.0.31. I'm using X forwarding through putty.
Sounds like it's a window manager issue... the window manager is sending events to Emacs when (you believe) it shouldn't.
GNU Emacs doesn't have a window(frame) leave event hook (I've looked and can't find one (as of 23.1)), and the question: how to automatically save files on lose focus in emacs appears to bear that out.
Good luck...
The white with a black buffer is what I get when the Emacs window doesn't have focus. I'm using GNU Emacs 22.1.1 on XP. I haven't tried 22.3.3 yet, but I'd guess the issue might be that it is over X, rather than the version.
Some more info might be nice. What platform is the emacs itself running on? What version of X client are you using?