From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Ergus Newsgroups: gmane.emacs.help Subject: Re: Is Elisp really that slow? Date: Sun, 19 May 2019 15:00:51 +0200 Message-ID: <20190519130051.jhxjwa3yoba3yf4r@Ergus> References: <20190514235412.kncazq45szlum2gr@Ergus> <83v9yb92c7.fsf@gnu.org> <878sv7sp3r.fsf@telefonica.net> <83r28z8zl9.fsf@gnu.org> <20190515210924.sijzy6mnpgzkt4gm@Ergus> <86a7fjnwdq.fsf@zoho.eu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="120781"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: NeoMutt/20180716 Cc: Van L , help-gnu-emacs@gnu.org To: =?utf-8?B?7KGw7ISx67mI?= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun May 19 15:06:37 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hSLWO-000VHG-Uc for geh-help-gnu-emacs@m.gmane.org; Sun, 19 May 2019 15:06:37 +0200 Original-Received: from localhost ([127.0.0.1]:48594 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSLWN-0007X9-Tm for geh-help-gnu-emacs@m.gmane.org; Sun, 19 May 2019 09:06:35 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:45733) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSLRG-00042T-4o for help-gnu-emacs@gnu.org; Sun, 19 May 2019 09:01:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSLRE-0004qV-63 for help-gnu-emacs@gnu.org; Sun, 19 May 2019 09:01:18 -0400 Original-Received: from sonic306-20.consmr.mail.ir2.yahoo.com ([77.238.176.206]:36000) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSLR8-0004Xb-Uo for help-gnu-emacs@gnu.org; Sun, 19 May 2019 09:01:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1558270856; bh=+CORP2ZNWMZy9m2DtNv6sn2ljBHrmN0iD4FBGEs+32c=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject; b=HjIen+744B2VEMhcvib/ol1q9kz25LAohl/+j1lCvIXr0zjKm+9gGIdpAMM1Sd9HiI9w9rG35Lnzb5JsRRab/X3oqqpUXALsgnBNBJ4tdppHxcf/j90TByEzwNDBBDOQ70SlWANl3YMktpMbFLQwJKZEMtfIQvtI2jlm0be6LwG2CjiiZdZH1Yqs35aDxg3ZyF1cz4AU4+1CkldeoD0s4aafYBO7JsHZtP8YRanvfGaGoxawmyIThuEY/FdQVPlKYGNg58JYL1Q+qQEYXsayy7oEXH/mDcVY97F7Fc0x4hLs03Ho1krLkpUWZXiXf3oHoGHfm401bW5VY2ds562tCA== X-YMail-OSG: odUDX.EVM1lcHe9qbB_uuheeRW6CHFO3PCS0zgIMLQkTz.YytYK4Y53VdLqQ4eg JzW778uz6TfauxWIK66vEPPgfYskzCqN6dsGWzwJUGNKs80nK51f82PCb0waQslBREFI1lhBouMB xWhqKuxc7qVwyxU8iedkXs5ElhKpQtT_hqU73QIAhdKsrkhGgKyP_Ki0z3e145973KRYuFUuW7DP o_vg0fX75Opmiq2B.EJ_6WTC3RtwVoSMjlPlbJYaNn4LuQQhy6UJ.TFgGGNZBXgOFW3DkEvOJ0pS ZDd8bTxyzAvqkanTDhg5KGopBsmBykJKtdhGqE3AubCUlwYAnEbLRCKZuTvmUCV8jI5B2lKnHzLc ZtgGf8sN6rKkDjTdM0dgngr1CKtmxBRm8UoB.1byXZFpEU84DzCsVBt36.BDmFm2dhMWAtLyBIxx KH_rriauBqPUinZTN_iQ10ysMqlPkWQropRA64DdoqU0Kig6FhAS0CsKXm.Pk0ZhOaveG00KNxUM 10ZMCej7uFgFnhQ6VM1Rpbd5F6mVsSlFjGhi.cItS1OZHvmbpwhg4pq_k5IimXjB.ObfFZxg8w6l 1Oin15Co6wnT3DRMlhDhdhAwaa1KVMAPs0Xo2xkmikiurJcYPG3cVTFS4_YVtp6bWZvO6ZtNNFfQ E7m0_HnIUB56Vs_d1W9F5juHVZ7e5n.wxpU3DmQgK5SS1QvH0jIJ1F5HllPpQZEGIzLr.r896HJI IlMlK.DEZyGtuGgbU_vrCeNHHNHImgoFzHaNLxT_GTFoU67gRqeIwRbQqOlI4h5nRBjcYU6lou0E 79Xj34UyouDJRS.QhTzlY2UWrEeg_s3snpl2n5BbeN Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ir2.yahoo.com with HTTP; Sun, 19 May 2019 13:00:56 +0000 Original-Received: from 2.152.205.184.dyn.user.ono.com (EHLO Ergus) ([2.152.205.184]) by smtp430.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID c5576a0c2f0adacb667cdc3d234aec31; Sun, 19 May 2019 13:00:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 77.238.176.206 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:120541 Archived-At: On Sun, May 19, 2019 at 07:35:58PM +0900, 조성빈 wrote: > >2019. 5. 19. 오후 5:16, Van L 작성: > >> Emanuel Berg writes: >> >>> Ergus wrote: >>> I don't consider myself an Emacs expert - >>> far from it. But I've been here for 10+ >>> years, so I'm happy with my Emacs and my >>> skill level. But this place still >>> doesn't feel like home! That is strange. >> >> Is it possible to have the best of all possible >> worlds? >> >> For conservatives, a winter release of old gold keybindings. >> For the free radicals, a spring release with modernizations. > >What if having a compatibility-mode that can be activated by something like: >```elisp >(classic-keybindings-mode 1) >``` >and refine the default keybindings to be more consistent/mnemonic? People who miss the old keybindings will be elisp-proficient; Adding 1 s-exp to the init file won’t be a barrier. >For the refined keybindings, Spacemacs can provide a good starting point. > This is interesting. (of course spacemacs not in evil mode). I will just tell an idea I had (before knowing how things work in emacs, I actually thought it was implemented in that way) If we create a single file with the full list of general bindings as variables for all the main modes like ;; Basics C-a begin-line-binding C-e end-line-binding C-b go-backward-line-binding C-d delete-forward-binding ... ;; Prog mode C-c C-c whatever-you-decide-binding ;; Minibuffer mode bla bla bla ... And so on. All the derived modes can be changed to use the variables instead of hard-code the bindings in multiple files. this: (define-key c-mode-base-map "\C-d" 'c-delete-forward) will be: (define-key c-mode-base-map delete-forward-binding 'c-delete-forward) This is similar to use remap, but with some advantages: 1) The bindings will be organized in a single file and the collisions will be exposed easily. And fixed for all of them. 2) In case a mode adds a new functionality and it needs a binding, it t in the global map, it will be clear if some others already have a similar one and will bind to the same using the same criteria. If the binding has never been used, it will be added to the list for future modes that wants the same functionality. 3) Old users will be minimally affected because the starting criteria are the actual bindings. 4) Implementation of test modes (like ergoemacs or evil-mode) and future modifications will require less effort and the final experience will be less hacky than now.. 5) If a user personalize a binding (changing the value of one of these variables) the changes will apply to all the packages and modes she uses in his section. 6) If the user wants to use remap or hard-code the binding (as now) the actual behavior will be unchanged. 7) Packages like elpy, irony, or company will also use the "binding-list", so the user will only learn the most specific bindings (if any) so external packages will be standardized with minimal effort. 8) Future bindings changes that the community agree will not require changes in the files of all the modes. With the potential side effects. I know that proposing this here is a crazy idea, but the intention is not to start a crazy war again, If it is crazy (for technical reasons) just ignore it. Actually I just mention it because it seems to me like something extremely simple-advantageous and maintainable. With minimal affections to the user space. But remember that we have a limited number of bindings so managing them better is important if we want to find place for new functionalities. In any case I will leave this threads as it is not going anywhere (as usual with this topics) and what is obvious for me seems to be heretic for the rest. But you are free to consider the idea if it has anything useful for emacs.. > >> When I use a long M-x sequence, a shortcut suggestion appears. It disappears before I can catch it. Can it stay for 30 seconds? Can there be an instant interactive override to set it whatever you like? > >I would like a semi-AI that suggests interactive functions based on key presses or actions the user performs... `You can use C-e (goto-end-line) to perform 12 keystokes you performed.' >Saying about discoverability, I would like a context-sensitive right-click mouse menu, something like Microsoft Office. Most newcomers are familiar with finding functionality with the mouse; and it isn’t intuitive to find new keybindings/functions that Emacs provide to boost productivity. (Actually, that’s one of my problems; how should I find new functions...?) > >> Evolutionary programming of popular custom keybindings collected at upstream and put thru obstacle course competition is one way of composing a spring release. >> >> -- >> © 2019 Van L >> gpg using EEF2 37E9 3840 0D5D 9183 251E 9830 384E 9683 B835 >> "The interface is a nightmare." - Brendan Schaub >> > >