From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: GNU Emacs raison d'etre Date: Wed, 27 May 2020 23:13:09 -0700 (PDT) Message-ID: <0f1cd319-fa8c-4453-b909-fdd36f337906@default> References: <5230692c-c665-a330-7a12-e59fa25d97dd@gmail.com> <70bb51fd-447d-928c-4d69-1c9673a44471@online.de> <871rnnvmdx.fsf@red-bean.com> <87pnb7sira.fsf@red-bean.com> <87lflcg0k9.fsf@red-bean.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="35516"; mail-complaints-to="usenet@ciao.gmane.io" Cc: andreas.roehler@online.de, emacs-devel@gnu.org To: Karl Fogel , Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu May 28 08:14:08 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jeBnq-00097L-OR for ged-emacs-devel@m.gmane-mx.org; Thu, 28 May 2020 08:14:06 +0200 Original-Received: from localhost ([::1]:48230 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jeBnp-0007WF-QC for ged-emacs-devel@m.gmane-mx.org; Thu, 28 May 2020 02:14:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39552) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jeBn9-0006sf-Og for emacs-devel@gnu.org; Thu, 28 May 2020 02:13:23 -0400 Original-Received: from aserp2120.oracle.com ([141.146.126.78]:33570) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jeBn8-0007cu-CX; Thu, 28 May 2020 02:13:23 -0400 Original-Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 04S68Av3041096; Thu, 28 May 2020 06:13:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=H4uxnG0JRt7xfyb1jZs14z81Feg0av7JhEomnG2QG8E=; b=Hkcv/YGBBGS4P+5u8UgtrVSd2Sj0EabSlsjpOu+PNqw3tL5J5MK1A7NW5AWjzHhH4CnW iiofKwHIk/1ZaETVqzcBRjwPdzlJ8lGgydjwA8zP2yUjvH2CG7LE36KxMh9wxqUzz+0a aZuIj+gbqIiI8apoKnX76S9Louupl6U08b75VLiX5SpTYNuqaJz2/JcsMXvQFPLblfBZ cu6gd3OewCXnIvTExxswQyaCjUj1z0kJpUZtXtoK+nK/MRtUDw6k/YPlAQ7zlwQ/LGqN ROQtgI4vcVcPdMX46CXUfbRDe4fXCf/qmgrFtz3HCvnxoZm3BGUsSR3ROOXVvSy4HG6y bw== Original-Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by aserp2120.oracle.com with ESMTP id 318xe1k428-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 28 May 2020 06:13:17 +0000 Original-Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 04S69dDA132408; Thu, 28 May 2020 06:13:16 GMT Original-Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3020.oracle.com with ESMTP id 317dkvv915-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 May 2020 06:13:16 +0000 Original-Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 04S6DCU7013866; Thu, 28 May 2020 06:13:12 GMT In-Reply-To: <87lflcg0k9.fsf@red-bean.com> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.5005.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9634 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 bulkscore=0 spamscore=0 suspectscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005280038 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9634 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 adultscore=0 cotscore=-2147483648 mlxscore=0 bulkscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005280038 Received-SPF: pass client-ip=141.146.126.78; envelope-from=drew.adams@oracle.com; helo=aserp2120.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/28 02:13:18 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:251536 Archived-At: > >We made this very simple a few years ago: Just keep typing C-g. > >I guess these users don't know that. >=20 > Sometimes they know that, but it's still stressful for them to have to > do it. They don't like the sensation of getting into state they don't > understand, and then having to type a magical quit-key to get out of > that state. It makes them apprehensive about even using the editor -- > they feel like they got bitten. >=20 > >Can anyone thing of a better way to teach them about this? > >It could teach them first about the minibuffer, then about C-g > >to get out. It could copy the current minibuffer prompt > >into the help screen to make the explanation clearer. > > > >The tricky part is how to detect when a user could use this help. >=20 > I don't think the issue is ignorance about C-g. It's that people have > a relationship with software interfaces in which they're not accustomed > to being bitten. Even when the bite draws no blood, they still don't > like the feeling. >=20 > I can see directly that they don't like the feeling, that it's > upsetting to them. I conjecture that part of the reason is that even > if they quickly ascertain that everything's all right this time, they > still have a (rational) fear that the next time the bite might actually > cause harm -- e.g., that maybe they'll lose a file, or accidentally > rename something, or that edits that they don't know about will be > accidentally made somewhere. >=20 > I haven't actually asked new users if that's their worry, but on the > now-rare occasions when Emacs bites me, I worry about such things. > Also, I've been using Emacs long enough to know that most likely > nothing harmful happened, and that if I patiently unwind the state I'll > be able to figure it all out. A newcomer does not have that comfort at > first, and they can only acquire it through sustained exposure to the > editor. >=20 > Again, none of the above is meant to suggest that Emacs should change > something. I'm just saying that we should be intentional about the > kinds of users Emacs is likely to attract, and not make changes > designed around people who are unlikely to be long-term Emacs users > anyway. I hear you, Karl. Just a thought - sorry it's longer than I thought it would be. I think it makes sense for the Emacs tutorial - or some Emacs tutorial(s) - to have users use C-g right off the bat, in a realistic way. In fact, have them use C-g at various points in the tutorial, to show what it can do in different contexts. Users should get to know C-g and some important help keys right at the outset - and now and again throughout the tutorials. Doing stuff with Emacs is a dialog with Emacs, including a lot of asking Emacs and learning about what's going on in any given context. By having them use these things over and over, to=20 different ends, tutorial(s) can help users learn why they are important - how helpful they can be. There's a tremendous amount of stuff you can learn about Emacs, and you can learn pretty much all of it by asking Emacs itself. Learning how to do that - at least some basic ways - gives you a leg up. I mentioned the `Whoops!?' submenu I add to the `Help' menu. It has 3 items: `Cancel Current Action' (C-g) `Back to Top Level' (no key; command `top-level') `What Did I Do!?' (C-h l) Regardless of whether we put such things in a help menu, I think an Emacs tutorial should have users use them a bit. ___ Yes, `C-h l' could still be improved. But it's useful as it is, and showing the output in a tutorial can be a way to point out some key notation, including pseudo function keys. The first thing to point out about `C-h l' output are the keyboard key sequences. They, at least, are recognizable, once you know the notation. We can also say what things like , , , , and [view-lossage] represent, in general. That way, the output isn't so scary or just a wall of vomit. Knowing in general what you're looking at, even without understanding it, lets you see past what (to you at that point) is just noise, to some meaningful signals that you can recognize (e.g. keyboard keys). ___ And of course, tutorials that get into some Lisp can get users acquainted with more powerful ways to ask Emacs. Some of the things that are obstacles, because Emacs is maybe not helpful enough regarding them, can be subject to (later) tutorial explorations. How to find out about faces, highlighting, chars, overlays, fringe, mode-line, etc. Someone who uses Emacs to work quickly, as Karl suggests, knows Emacs well in one sense. Someone who knows how to dig in and ask Emacs things about itself knows Emacs well in another sense. Knowing something about asking Emacs provides (1) self-confidence, (2) power to learn further, and (3) knowledge that you can find out, yourself, how to learn further _further_. It's an eye-opener to learn that Emacs is pretty much interactively transparent all the way down.