zsh auto-complete overflows emacs term-mode buffer - emacs

I'm running zsh inside multi-term.el (which, as I understand it, is almost identical to term-mode with some additional commands) in character mode.
Edit: emacs 24.5.1 in a terminal (-nw), zsh 5.0.2, https://github.com/ayrtonmassey/config for my full config
When I hit TAB to invoke zsh's auto-complete, if the prompt is at the bottom of the screen the auto-complete options are hidden. This only happens on specific auto-completions: for example, pressing TAB after cd does not show the list of possible files/directories, but auto-completing names of executable files (e.g. typing b and hitting TAB) will show all the possible executables.
The currently selected auto-complete value is shown beside the prompt in all cases.
I assume this is something to do with it not scrolling down to show the output, but I can't find any more information.

I had the same problem, and after fiddling with the Customize group for term, it seems that setting the variable term-scroll-show-maximum-output to a non-nil value solves this problem (at least for ansi-term).

Related

Menu bar flashes for a moment when Emacs starts

With (menu-bar-mode 0) in my .emacs-file, Emacs (in a terminal) seems to be starting with the menu bar visible, and then within a fraction of a second, the bar disappears.
Is there a way to make Emacs not show the menu bar at all?
No: Emacs first starts by setting up its "frame" (which includes some initial display), then reads the .emacs file. That's why you see this flashing of the menu-bar. Emacs could read the .emacs first, but if the .emacs outputs any message or signals an error, there'd only be stderr to display it, whereas with the current setup, those messages are displayed in the minibuffer and the error can be caught in the "normal" way.
If you're runinng Linux (and I guess any system where Emacs runs in an X server), you can use X resources to tell Emacs you don't want the menu bar. Just put this in your ~/.Xresources file:
emacs.menuBar: off
These resources are used to customize frames appearance and are therefore read by Emacs at the very beginning.
See also:
Emacs manual: Menu Bars
Emacs manual: Table of Resources
man xrdb(1)

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 can I configure emacs to switch to a particular buffer when I click the mouse in it?

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).

Emacs keyboard changed

Several times now while programming in Emacs my keyboard has started to write Greek letters into the buffer. I assumed that I'd pressed some key combination but after searching I've yet to figure out what it is and my only solution right now is to restart Emacs. So what am I doing and how do I fix it?
Try to analyse what you've pressed.
M-x list-command-history shows command history
C-h l runs the command view-lossage which displays last 300 input keystrokes
I'm going out on a limb.
You're working on a windows computer that has multiple input languages configured (including greek). It also has the default keyboard shortcut to switch between them enabled (left alt+shift is the default, and if you have multiple inputs set up, it is on by default).
Some emacs shortcuts require an alt-shift combo, and depending on the order you press them, you get or don't get windows intercepting it for the IME switch.
Possible solutions include:
remove the greek IME
disable the windows shortcut to switch IMEs
change said shortcut
I typically want multiple IMEs on my systems, like that I can switch IMEs quickly, and don't want to mess with default shortcuts, so I ended up getting used to always pressing shift then alt when doing alt-shift combos in emacs.

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).