emacs interview questions
Top emacs frequently asked interview questions
How can I get Emacs to reload all my definitions that I have updated in .emacs
without restarting Emacs?
Source: (StackOverflow)
Is there a way to rename an open file in Emacs? While I'm viewing it? Something like save-as, but the original one should go away.
Source: (StackOverflow)
If I accidentally closed the scratch buffer in Emacs, how do I create a new scratch buffer?
Source: (StackOverflow)
I would prefer to write my commit messages in vim
, but it is opening in emacs
.
How do I configure git to always use vim
? Note that I want to do this globally, not just for a single project.
Source: (StackOverflow)
Without getting into a religious argument about why one is better than the other, what are the practical differences between Emacs and Vim? I'm looking to learn one or the other, but I realize the learning curve for each is high and I can't decide. I have never used an editor of this type (I've always used IDEs), so anything that helps a newbie is a plus.
Before a flame war starts: I'm not asking which is better, I'm asking the differences between the two. I would like an objective comparison. Thank you.
Source: (StackOverflow)
In another question, Mark speaks highly of IDEs, saying "some people still just dont know "why" they should use one...". As someone who uses vim for programming, and works in an environment where most/all of my colleagues use either vim or emacs for all of their work, what are the advantages of IDEs? Why should I use one?
I'm sure this is a charged issue for some people, and I'm not interested in starting a flame war, so please only reply with the reasons you believe an IDE-based approach is superior. I'm not interested in hearing about why I shouldn't use an IDE; I already don't use one. I'm interested in hearing from "the other side of the fence", so to speak.
If you think that IDEs may be suitable for some types of work but not others, I'm also interested to hear why.
Source: (StackOverflow)
As a follow-up to this question, it's trying to find out how to do something like this which should be easy, that especially stops me from getting more used to using Emacs and instead starting up the editor I'm already familiar with. I use the example here fairly often in editing multiple files.
In Ultraedit I'd do Alt+s then p to display a dialog box with the options: Find (includes using regular expressions across multiple lines), Replace with, In Files/Types, Directory, Match Case, Match Whole Word Only, List Changed Files and Search Sub Directories. Usually I'll first use the mouse to click-drag select the text that I want to replace.
Using only Emacs itself (on Windows XP), without calling any external utility, how to replace all foo\nbar with bar\nbaz in *.c
and *.h
files in some folder and all folders beneath it. Maybe Emacs is not the best tool to do this with, but how can it be done easily with a minimal command?
Source: (StackOverflow)
What I want:
I have a clojure program on a remote site, let's call it mccarthy
.
What I want to do is connect to a nrepl-ritz
from my laptop, preferably using nrepl-ritz-jack-in
. The jack in works fine for a local program, but doesn't seem to connect to a remote program.
Attempt 1
C-x C-f on /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Result
Emacs appears to hang. If I go to the *nrepl-server*
buffer, I see this:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.flatland.drip.Main.invoke(Main.java:117)
at org.flatland.drip.Main.start(Main.java:88)
at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)
(and tons of other lines, too...)
I am using drip
on my laptop, but not on mccarthy
, so clearly nrepl-ritz-jack-in
is not detecting that it's a remote file. Regular old nrepl-jack-in
will work as expected in this case, however.
Attempt 2
I also tried starting an nrepl-ritz
using lein
on mccarthy
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
From my laptop I forward a port so local 42874
connects to 42874
on mccarthy
:
ssh -L 42874:localhost:42874 -N mccarthy
Then, from my local Emacs:
(require 'nrepl-ritz)
M-x nrepl
Host: 127.0.0.1
Port: 42874
This gives me a connection:
; nREPL 0.1.7-preview
user>
So to test it out, I run
M-x nrepl-ritz-threads
It gives me a nice table of threads.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Result
This hangs, but sometimes shows a hidden debugging buffer with some restarts available. If I tell it to pass the exception back to the program, it never gives control back to the REPL.
I've done plenty of searches but have not been able to get anything more specific than "make sure lein is on your path" (And I did do that, on both machines...).
Source: (StackOverflow)
Currently my workflow with Emacs when I am coding in C or C++ involves three windows. The largest on the right contains the file I am working with. The left is split into two, the bottom being a shell which I use to type in compile or make commands, and the top is often some sort of documentation or README file that I want to consult while I am working. Now I know there are some pretty expert Emacs users out there, and I am curious what other Emacs functionally is useful if the intention is to use it as a complete IDE. Specifically, most IDEs usually fulfill these functions is some form or another:
- Source code editor
- Compiler
- Debugging
- Documentation Lookup
- Version Control
- OO features like class lookup and object inspector
For a few of these, it's pretty obvious how Emacs can fit these functions, but what about the rest? Also, if a specific language must be focused on, I'd say it should be C++.
Edit: One user pointed out that I should have been more specific when I said 'what about the rest'. Mostly I was curious about efficient version control, as well as documentation lookup. For example, in SLIME it is fairly easy to do a quick hyperspec lookup on a Lisp function. Is there a quick way to look up something in C++ STL documentation (if I forgot the exact syntax of hash_map, for example)?
Source: (StackOverflow)
I am trying to replace a character - say ;
- with a new line using replace-string
and/or replace-regexp
in Emacs.
I have tried the following commands:
M-x replace-string
RET ;
RET \n
This will replace ;
with 2 characters: \n
.
M-x replace-regex
RET ;
RET \n
This results in the following error (shown in the minibuffer):
Invalid use of `\' in replacement text.
What's wrong with using replace-string
for this task? Is there any other way to do it?
Thanks.
Source: (StackOverflow)
This article says that "Emacs has redo because you can reverse direction while undoing, thereby undoing the undo".
What does this mean? How can a user 'redo' with Emacs?
Source: (StackOverflow)
I'm trying to edit some assembly code which tends to be formatted in long but thin listings. I'd like to be able to use some of the acres of horizontal space I have and see more code on-screen at one time. Is there a method for getting Emacs (or indeed another editor) to show me multiple columns all pointing to the same buffer?
C-x 3 (emacs) and :vsplit (vim) are great for multiple separate views into the code, but I'd like it to flow from one column to the other (like text in a newspaper).
Source: (StackOverflow)
I've been updating my emacs config with the use of Rsense to allow for an autocomplete drop down box to appear whilst typing code. This works well in most files except I've found it doesn't allow me to select an answer from the table when I'm editing some code in my ruby on rails project.
Here is my setup:
https://github.com/map7/simple_emacs
I'm using this under Ubuntu 10.04.
For simple ruby script files it works great. I can open up a new file and type.
"test".up...
Just as I type the 'p' character in up a list of options appear and I can go up and down the list with arrow keys and select one (eg: upcase) with the enter key.
What doesn't work is when I do the exact same test but within a rails project's base directory.
Update:
Found that the problem is with (require 'rails), so it's something in the emacs-rails plugin that the autocomplete doesn't like.
Update:
It's within emacs-rails -> rails-project.el. If I comment this macro out then autocomplete works, otherwise it doesn't:
(defmacro* rails-project:with-root ((root) &body body)
"If you use `rails-project:root' or functions related on it
several times in a block of code, you can optimize your code by
using this macro. Also, blocks of code will be executed only if
rails-root exist.
(rails-project:with-root (root)
(foo root)
(bar (rails-core:file \"some/path\")))
"
`(let ((,root (rails-project:root)))
(when ,root
(flet ((rails-project:root () ,root))
,@body))))
Can someone explain why this breaks autocomplete?
Source: (StackOverflow)
Suppose I want to open a file in an existing Emacs session using su
or sudo
, without dropping down to a shell and doing sudoedit
or sudo emacs
. One way to do this is
C-x C-f /sudo::/path/to/file
but this requires an expensive round-trip through SSH. Is there a more direct way?
[EDIT] @JBB is right. I want to be able to invoke su
/sudo
to save as well as open. It would be OK (but not ideal) to re-authorize when saving. What I'm looking for is variations of find-file
and save-buffer
that can be "piped" through su
/sudo
.
Source: (StackOverflow)