all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Emanuel Berg <embe8573@student.uu.se>
To: help-gnu-emacs@gnu.org
Subject: Re: Feeling lost without tabs
Date: Sun, 20 Jul 2014 20:28:43 +0200	[thread overview]
Message-ID: <87k377ubok.fsf@debian.uxu> (raw)
In-Reply-To: mailman.5726.1405828965.1147.help-gnu-emacs@gnu.org

Sampath Weerasinghe <swe20144@gmail.com> writes:

> I'm slowly migrating from notepad++ to emacs.
>
> I feel a bit lost because emacs doesn't show tabs.

You are not the first to experience this. A lot of
people got used to tabs from Firefox (or if it was
called Mozilla back then) and then it suddenly was a
common feature everywhere. (It would be interesting who
came up with it first though.)

In the Emacs world, I only have tabs in w3m
(screenshot: [1]), though in function names, commands,
etc. sometimes what I intuitively think of as tabs,
they refer to as buffers...

> I work on multiple projects, I get distracted by
> various things, but when I come back to the seat it
> is the tabs that remind me which project I was last
> working on.

`buffer-menu' would help you with that, as the most
recently used buffers are topmost.

> I know C-x C-b pops it up, but involves multiple keys

You can define your own shortcut. For example, I have
<caps> bring up the `buffer-menu'.

Specifically, I use this defun:

(defun buffer-menu-files-only ()
  (interactive)
  (buffer-menu (not Buffer-menu-files-only)) )

It means, if I hit it again while the buffer menu is
shown, I get a new buffer menu, this time not only
showing "file buffers" but also buffers of w3m, Gnus,
and so on.
  
> and it also takes a a lot of screen real estate.

Yes, for this, `buffer-menu' is even worse than
`list-buffers' (the one you get with `C-x C-b') because
`buffer-menu' uses the whole window. On the other hand,
that makes it impossible to use as a poor-man's
substitute for tabs, so you just go there to switch
buffer.

If you really like tabs, neither of these methods are
good. You need to find a tab package for Emacs.

The `buffer-menu' solution is good for simple switches,
but for more ambitious projects, and files that occur
regularly, I have a system that is based on keystrokes
and prefixes. `C-j e' is my "Emacs prefix", so `C-j e
e' is ~/.emacs, `C-j e f' is a file where I keep all
everything related to reaching files (f) from Emacs,
`C-j g g' is configurations/extentions for Gnus groups,
`C-j t' is ~/todo.txt, and so on. For a programming
project, I employ the same system, but with different
prefixes and/or keys, of course. Every single file I
setup this way. It is time consuming in the early phase
but then it is so fast it is not a loss of time, on the
contrary. But the main advantage isn't speed, but
workflow. When you have achieved a high degree of focus
then it really sucks to jump back and forth between
files writing long paths or searching for them in
nested files trees. With is system, I'm one keystroke
away from any other file, wherever I am in Emacs. [2]

Earlier, I used registers, like this:

(set-register ?l (cons 'file "/sudo::/etc/rc.local"))

And then I setup a shortcut to `jump-to-register'
(`C-j' actually, short, and doesn't require you to move
you hands from typing positions). That was a good idea
but there aren't enough registers, which is why I
thought of the prefix solution. (The prefix way is also
mnemonic/intuitive as it can be made to mirror the tree
structure of a filesystem, so you get more
familiar/comfortable with that just by jumping between
files.)

There are also bookmarks, and many, many other attempts
to solve this file problem, which a very important
problem for programmers and all computer people. We all
think the approach of "small, modular files, use the
filesystem to express purpose and association as well
as to encapsulate" is the best. But do that all day
long, and moving between all those soon-to-be zillion
files is a real pest! So to jump between them in the
close-to-speed-of-thought must be solved somehow,
otherwise all that overhead typing paths and navigating
the filesystem will just make for crappy workflow,
frustration and loss of focus, which is (as said) much
more important than the time loss, which is important
in itself.

So the Emacs "pros" should really put their minds to
this problem even more as it is an annoyance to many
veterans as well as an obstacle to many newcomers.

[1] http://user.it.uu.se/~embe8573/dumps/w3m-tabs.png
[2] http://user.it.uu.se/~embe8573/conf/emacs-init/global-keys.el

-- 
underground experts united


  parent reply	other threads:[~2014-07-20 18:28 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.5726.1405828965.1147.help-gnu-emacs@gnu.org>
2014-07-20 14:19 ` Feeling lost without tabs Dan Espen
2014-07-20 18:11   ` Bob Proulx
2014-07-20 18:34   ` Emanuel Berg
     [not found]   ` <mailman.5777.1405879906.1147.help-gnu-emacs@gnu.org>
2014-07-20 21:44     ` Emanuel Berg
2014-07-21 17:02       ` Bob Proulx
2014-07-20 23:52     ` Dan Espen
2014-07-21 22:54       ` Emanuel Berg
2014-07-21 23:33         ` Bob Proulx
2014-07-22  2:44         ` Dan Espen
2014-07-22 21:23           ` Emanuel Berg
     [not found]         ` <mailman.5833.1405985639.1147.help-gnu-emacs@gnu.org>
2014-07-22 22:02           ` Emanuel Berg
2014-08-04  1:20             ` OT: User Interfaces (was: Feeling lost without tabs) Bob Proulx
     [not found]             ` <mailman.6530.1407115234.1147.help-gnu-emacs@gnu.org>
2014-08-04 22:10               ` Emanuel Berg
2014-07-20 18:28 ` Emanuel Berg [this message]
2015-11-03 14:07 ` Feeling lost without tabs swe20144
2015-11-03 14:21   ` Dan Espen
2015-11-03 15:22   ` Yuri Khan
2015-11-03 15:46     ` Dirk-Jan C. Binnema
2015-11-03 17:31       ` Michael Heerdegen
2015-11-03 17:47         ` Charles Philip Chan
2015-11-03 21:24           ` Michael Heerdegen
2015-11-03 15:37   ` Filipp Gunbin
2015-11-03 16:25     ` editing, searching minibuffer content [was: Feeling lost without tabs] Drew Adams
2015-11-03 15:53   ` Feeling lost without tabs Aziz Yemloul
2015-11-03 15:56   ` Charles Philip Chan
2015-11-03 20:07   ` Bob Proulx
2015-11-03 23:48   ` Kendall Shaw
     [not found] <mailman.5886.1406078772.1147.help-gnu-emacs@gnu.org>
2014-07-23  2:29 ` Emanuel Berg
     [not found] <mailman.5882.1406068755.1147.help-gnu-emacs@gnu.org>
2014-07-22 23:57 ` Emanuel Berg
2014-07-23  1:25   ` Robert Thorpe
     [not found] <mailman.5835.1405987077.1147.help-gnu-emacs@gnu.org>
2014-07-22 21:18 ` Emanuel Berg
2014-07-22 22:32   ` Robert Thorpe
2014-07-20  1:47 Sampath Weerasinghe
2014-07-20  4:08 ` Yuri Khan
2014-07-20  4:27   ` Eli Zaretskii
2014-07-20  5:12     ` Yuri Khan
2014-07-20  6:09       ` Eli Zaretskii
2014-07-20 16:48         ` Yuri Khan
2014-07-20 17:30           ` Eli Zaretskii
2014-07-21 14:15           ` Stefan Monnier
2014-07-22  3:51             ` Yuri Khan
     [not found]         ` <mailman.5771.1405874938.1147.help-gnu-emacs@gnu.org>
2014-07-20 18:40           ` Emanuel Berg
2014-07-21  3:56             ` Yuri Khan
2014-07-20  7:19       ` Bob Proulx
     [not found]       ` <mailman.5741.1405840784.1147.help-gnu-emacs@gnu.org>
2014-07-20 18:36         ` Emanuel Berg
2014-07-20 23:48           ` Dan Espen
2014-07-21  0:29             ` Emanuel Berg
2014-07-21  1:08               ` Charles Philip Chan
2014-07-21  2:25               ` Dan Espen
2014-07-21 16:25           ` Bob Proulx
2014-07-22  0:57             ` Robert Thorpe
     [not found]           ` <mailman.5823.1405959942.1147.help-gnu-emacs@gnu.org>
2014-07-21 18:04             ` Dan Espen
2014-07-21 21:05               ` Bob Proulx
2014-07-21 21:43               ` Emanuel Berg
     [not found]               ` <mailman.5831.1405976742.1147.help-gnu-emacs@gnu.org>
2014-07-21 21:22                 ` Dan Espen
2014-07-21 21:54                   ` Emanuel Berg
2014-07-21 23:57                     ` Robert Thorpe
2014-07-22  2:33                     ` Dan Espen
2014-07-22 21:28                       ` Emanuel Berg
2014-07-21 21:47                 ` Emanuel Berg
2014-07-20  5:22   ` Tak Kunihiro
     [not found]   ` <mailman.5729.1405830475.1147.help-gnu-emacs@gnu.org>
2014-07-22 15:14     ` Javier
2014-07-22 15:32       ` Ken Goldman
2014-07-22 21:01       ` Emanuel Berg
2014-07-23  0:57         ` Javier
2014-07-23  2:21           ` Emanuel Berg
     [not found]       ` <mailman.5871.1406043177.1147.help-gnu-emacs@gnu.org>
2014-07-22 21:03         ` Emanuel Berg
     [not found]     ` <<lqlv3t$hog$1@speranza.aioe.org>
2014-07-22 17:03       ` Drew Adams
2014-07-20  6:25 ` Filipp Gunbin
2014-07-20  9:20 ` Kevin Le Gouguec
2014-07-20 17:36 ` Drew Adams
2014-07-20 18:02 ` Robert Thorpe
2014-08-16 21:13 ` Marcin Borkowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k377ubok.fsf@debian.uxu \
    --to=embe8573@student.uu.se \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.