开发者

Am I the right target user for Emacs?

I recently had a problem in Emacs where I开发者_如何转开发 didn't know the syntax of the command "Other-window". I asked the question on stack overflow and I was referred to the Emacs documentation which says:

Select the ARG'th different window on this frame. All windows on current frame are arranged in a cyclic order. This command selects the window ARG steps away in that order. A negative ARG moves in the opposite order. If the optional second argument ALL_FRAMES is non-nil, cycle through all frames

: To me this description was totally meaningless and it got me to thinking. Does the documentation being at this level mean that maybe emacs is aimed at a different type of user than myself, or is the Emacs documentation just badly written?


If I recall, your previous problem was that you were trying to use a function that required one argument, but you were calling it without arguments. In order to use Emacs, you'll definitely need to learn enough elisp that this kind of basic documentation makes sense to you.

More generally, you won't always be able to make sense of the documentation without some experimentation. I find the doc that you quoted fairly readable, although the newest version of the Emacs manual is an improvement over your quote. But more to the point, if it doesn't make sense, a few short experiments ought to clarify the concept in your mind. If you're afraid to make mistakes while you learn a new language, that's going to be a serious impediment to learning Emacs.

Neither of these points are Emacs-specific, I think. In my experience they hold true for all programming languages. But it's so easy to just try things in Emacs that it ought to become second nature: 'this doesn't make sense, let's try a few things and see what happens' will be far more productive than 'this doesn't make sense, Emacs isn't for me'. If you 'break' something with your experiment, the worst that happens is you need to restart Emacs and try again. And most of the time you can back out without needing to restart. I find that to be a very rewarding learning environment.

Finally, maybe it isn't for you. You wouldn't be the first or the last to decide that. If some other editor does what you need, there's nothing wrong with using it!


The Emacs editor is really all about the programming language E-Lisp.

The introductory manual is probably one of the best-written programming manuals I've come across. If you read this then you'll understand Emacs very well.

Remember, Emacs is an editor for programmers. It is expected that you will do a little programming of the editor itself (using the E-Lisp macro language) to get the most benefit from it.


Emacs documentation is not bad. I suppose you may be learning a lot in a very short time, about Emacs. In other words, you may be a fairly new user.

As time passes, the amount of free time on hand increases with decreasing amount of new learning (w.r.t. Emacs), mostly because of what you learned over time, about Emacs and using Emacs. In other words, you would have become an intermediate to advanced user by then.

This transition is not a short one, and is sometimes considered hard to very hard. Are you willing to make the transition? If yes, you are a most fitting target user for Emacs. Otherwise, you should be looking elsewhere.

Here is an explanation of what is frame and what is a window. Which part of the documentation that you quoted is totally meaningless to you?


Try going through the Introduction To Programming In Emacs Lisp, which steps you through things, including how to debug problems and how to find documentation.

In this instance, I think you're focusing on the wrong thing. The error was Wrong number of arguments: #, 0, which is telling you that you've called the function with the wrong number of arguments... That's a problem in any language - no matter the meaning of the arguments.

More recent versions of Emacs have improved the doc string for other-window to use count instead of ARG (which your version seems to use). So the documentation has been updated, perhaps the newer docs are more understandable.

other-window is an interactive built-in function in `window.c'.

It is bound to C-x o.

(other-window count &optional all-frames)

Select another window in cyclic ordering of windows. count specifies the number of windows to skip, starting with the selected window, before making the selection. If count is positive, skip count windows forwards. If count is negative, skip -count windows backwards. count zero means do not skip any window, so select the selected window. In an interactive call, count is the numeric prefix argument. Return nil.

This function uses next-window' for finding the window to select. The argument all-frames has the same meaning as innext-window', but the MINIBUF argument of `next-window' is always effectively nil.


I used emacs as my primary coding environment (mostly C/C++/Perl) for decades, and would defend it vehemently against the vi(m) infidels (which I also used but for quickie in and out editing), but in recent years I've found it increasingly not relevant to the modern languages and systems I worked on, mostly because the syntax highlighting just wasn't keeping track, and also because integrated edit/debug environments like VS and XCode really are light years ahead of command line gdb, even emacs gdb mode (again which I used for many, many years).

Emacs is hard: learning to use it, customizing it, etc., takes a major investment of time. So, you may not be right for emacs, and emacs may not be right for you.


I'm not a an Emacs fan, nor an Emacs user. But I don't find anything incorrect and superflous in the piece of documentation you cited.

I would like every document I read was written like this.

Emacs, like real editors, is learned by practice. And by carefully reading the documentation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜