* Friendlier dired experience [CODE INCLUDED] @ 2020-11-03 10:43 Boruch Baum 2020-11-03 10:54 ` Jean Louis ` (3 more replies) 0 siblings, 4 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-03 10:43 UTC (permalink / raw) To: Emacs-Devel List I've just published an elisp package that extends and configures dired-mode with features that many people have come to take for granted in other programming languages. For the source code and the detailed description, see: http://github.com/Boruch-Baum/emacs-diredc If the project is interested in it, I can assign the copyright. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 10:43 Friendlier dired experience [CODE INCLUDED] Boruch Baum @ 2020-11-03 10:54 ` Jean Louis 2020-11-03 11:15 ` Boruch Baum 2020-11-03 11:24 ` Boruch Baum 2020-11-03 15:10 ` Stefan Kangas ` (2 subsequent siblings) 3 siblings, 2 replies; 94+ messages in thread From: Jean Louis @ 2020-11-03 10:54 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 13:45]: > I've just published an elisp package that extends and configures > dired-mode with features that many people have come to take for granted > in other programming languages. For the source code and the detailed > description, see: http://github.com/Boruch-Baum/emacs-diredc > > If the project is interested in it, I can assign the copyright. I would test it. For some reason I cannot M-x package-install-from-buffer Error: package-read-from-string: Can’t read whole string -- There are 43 messages yet in my incoming mailbox. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 10:54 ` Jean Louis @ 2020-11-03 11:15 ` Boruch Baum 2020-11-03 11:32 ` Joost Kremers 2020-11-03 16:07 ` Jean Louis 2020-11-03 11:24 ` Boruch Baum 1 sibling, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-03 11:15 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List On 2020-11-03 13:54, Jean Louis wrote: > * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 13:45]: > > I've just published an elisp package that extends and configures > > dired-mode with features that many people have come to take for granted > > in other programming languages. For the source code and the detailed > > description, see: http://github.com/Boruch-Baum/emacs-diredc > > > > If the project is interested in it, I can assign the copyright. > > I would test it. > > For some reason I cannot M-x package-install-from-buffer Thanks. The instructions say to evaluate the buffer. Does that work? > Error: > package-read-from-string: Can’t read whole string I can't reproduce this in emacs 26.1, but I do get the error in emacs-snapshot. I don't have emacs 27, which may be what most users in the field will be using. What version were you using? -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 11:15 ` Boruch Baum @ 2020-11-03 11:32 ` Joost Kremers 2020-11-03 12:22 ` Boruch Baum 2020-11-03 16:07 ` Jean Louis 1 sibling, 1 reply; 94+ messages in thread From: Joost Kremers @ 2020-11-03 11:32 UTC (permalink / raw) To: Boruch Baum; +Cc: Jean Louis, emacs-devel On Tue, Nov 03 2020, Boruch Baum wrote: > On 2020-11-03 13:54, Jean Louis wrote: >> Error: >> package-read-from-string: Can’t read whole string > > I can't reproduce this in emacs 26.1, but I do get the error in > emacs-snapshot. I don't have emacs 27, which may be what most users in > the field will be using. What version were you using? It barfs at the "Package-Requires" header, because it doesn't stop reading at EOL. It works fine if you add an empty line (possibly commented, but otherwise empty) right after "Package-Requires". (Note: `M-x toggle-debug-on-error` comes in handy in such cases. :-) ) -- Joost Kremers Life has its moments ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 11:32 ` Joost Kremers @ 2020-11-03 12:22 ` Boruch Baum 0 siblings, 0 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-03 12:22 UTC (permalink / raw) To: Joost Kremers; +Cc: Jean Louis, emacs-devel On 2020-11-03 12:32, Joost Kremers wrote: > It barfs at the "Package-Requires" header, > ... Got it, but thanks! -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 11:15 ` Boruch Baum 2020-11-03 11:32 ` Joost Kremers @ 2020-11-03 16:07 ` Jean Louis 2020-11-03 17:12 ` Boruch Baum 1 sibling, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-03 16:07 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 14:15]: > On 2020-11-03 13:54, Jean Louis wrote: > > * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 13:45]: > > > I've just published an elisp package that extends and configures > > > dired-mode with features that many people have come to take for granted > > > in other programming languages. For the source code and the detailed > > > description, see: http://github.com/Boruch-Baum/emacs-diredc > > > > > > If the project is interested in it, I can assign the copyright. > > > > I would test it. > > > > For some reason I cannot M-x package-install-from-buffer > > Thanks. The instructions say to evaluate the buffer. Does that work? It works, but it does not give me safety feeling. It broke my console, I could not see nothing any more, could not escape from Emacs. On X it is creating new frame. - test it on console - test it in EXWM > > Error: > > package-read-from-string: Can’t read whole string > > I can't reproduce this in emacs 26.1, but I do get the error in > emacs-snapshot. I don't have emacs 27, which may be what most users in > the field will be using. What version were you using? Like latest git from yesterday maybe. Sorry for that. -- There are 43 messages yet in my incoming mailbox. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 16:07 ` Jean Louis @ 2020-11-03 17:12 ` Boruch Baum 2020-11-03 19:31 ` Jean Louis 0 siblings, 1 reply; 94+ messages in thread From: Boruch Baum @ 2020-11-03 17:12 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List On 2020-11-03 19:07, Jean Louis wrote: > It works, but it does not give me safety feeling. I don't understand the comment. Are you saying that the package could / should do something differently? Also, if you have an account on github, you give feedback there or open issues there. Or you can just email me, but dealing with a organized forge environment like github / gitlab helps keep things organized. > It broke my console. Whoa. I use console emacs, and never encountered such a problem, so that's serious. Can you please give details? I've been using this package for months, and it's the product of accumulated piecemeal work over years - all on console emacs. Please send me details to reproduce. > I could not see nothing any more, could not escape from Emacs. Please try to send details to reproduce. > On X it is creating new frame. That's the expected behavior - to have a dedicated emacs frame for two dired panels and their associated temporary buffers (ie. shell buffers and a quick-view buffer). > - test it on console My favorite. > - test it in EXWM Interesting. I've never used EXWM, so I'm interested in how that went. > > I can't reproduce this in emacs 26.1, but I do get the error in > > emacs-snapshot. I don't have emacs 27, which may be what most users in > > the field will be using. What version were you using? > > Like latest git from yesterday maybe. Sorry for that. Don't be. I want user feedback. You reported an error that I had missed and I corrected it. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 17:12 ` Boruch Baum @ 2020-11-03 19:31 ` Jean Louis 2020-11-03 21:13 ` Boruch Baum 0 siblings, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-03 19:31 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 20:13]: > On 2020-11-03 19:07, Jean Louis wrote: > > It works, but it does not give me safety feeling. > > I don't understand the comment. It never happened that I cannot install package from buffer or file. At first sight it looks good inside. Maybe it is bug in Emacs or maybe some wrong formatting in the package what I doubt. Then I am, maybe wrongly, assuming that package was not tested if it can be installed in that way. And then I am of course careful with such package, I do not know what it brings on me. I hope you get idea. Neither M-x package-install-file works neither M-x package-install-from-buffer > Are you saying that the package could / should do something > differently? Also, if you have an account on github, you give > feedback there or open issues there. Package may have good features for something and is not bad to discuss here. Sorry that I find personally Github appalling. I do report sometimes bugs there and I interact by email or with website by using LibreJS. I hope there is nothing wrong with email. Would Github not have non-free Javascript, maybe I would vouch for it. There are so many free software hosting providers like OS Trisquel, the fully free OS endorsed by FSF, they offer hosting: https://devel.trisquel.info/groups/trisquel > Or you can just email me, but dealing with a organized forge > environment like github / gitlab helps keep things organized. Gitlab is by principle different. Trisquel offers something like Gitlab. > > It broke my console. > > Whoa. I use console emacs, and never encountered such a problem, so > that's serious. Can you please give details? I cannot give much of details. As it was not possible to do anything unde XTerm (not real console). Video is here: https://gnu.support/images/tmp/2020-11-03-21:57:51.ogv Of course it may be due to my settings. And I have used emacsclient. > I've been using this package for months, and it's the product of > accumulated piecemeal work over years - all on console emacs. Please > send me details to reproduce. Now is maybe time that somebody tries it out. People use programs in different manners, different outcomes are the result. > Please try to send details to reproduce. > > > On X it is creating new frame. > > That's the expected behavior - to have a dedicated emacs frame for two > dired panels and their associated temporary buffers (ie. shell buffers > and a quick-view buffer). As I did not need two frames so it is not pleasant. The classic dired frame appears in front of diredc frame. Maybe on your side is different. That is how is on my side. I am orderding diredc and I get classic dired. What if I am in EXWM then maybe I would not even see what happened. > > - test it in EXWM > > Interesting. I've never used EXWM, so I'm interested in how that > went. I just say to you to test it. If this would work better I would test myself. Sometimes I do diredc and happens nothing. It just switches frames. No fancy stuff. Maybe I would need to restart Emacs to see it again, I cannot know. It does not give me good feeling when M-x diredc does not work for second or fifth or ninth time. o - opens new frame but not file that I selected, very unexpected behavior for me Trash management I prefer being handled by expected built-in Emacs behavior. I did not try yours. shells - you may add common shells on OpenBSD/FreeBSD/NetBSD/Minix/Dragonfly BSD systems. {C-h m} did not give me any explanation of diredc-mode-map, for me very unexpected, I was thinking it would be automatic. getfacl - I do not have as command on my system Hyperbola GNU/Linux-libre and I do not know what it is, so I cannot use "get more file info" C-c b a - to add bookmark, isn't it just same number of key strokes as C-x r m ? ' - is good feature to launch shell quickly, I may adopt that. But I get this: export d1="~/Programming/emacs-lisp/others/" d2="" f1="~/Programming/emacs-lisp/others/diredc.el" f2="" t1="(/home/data1/protected/Programming/emacs-lisp/others/diredc.el)" t2="nil" sh-4.4$ sh-4.4$ sh-4.4$ if that is expected, I do not know. It did not choose my shell from /etc/passwd - it went straight into sh C-x o - when switching from window to window is currently confusing me as buffer disappears and I then see instead of opened file again the diredc listing, then if I had shell on left side, I kill it, my right side becomes some other buffer! Too many unexpected things happening. diredc-mode - disabled in all buffers, but colors remain and is not really disabled, it comes back. Then I see line movements in both windows, left and right. I have global-hl-line-mode turned on. I can see in other window the highlighted line but not on same line, imagine how I feel, like on drugs. normal dired does not work after diredc, error: let*: Wrong type argument: consp, "/home/data1/protected/Programming/emacs-lisp/others/" q - does not work any more, Use \[diredc-exit] for diredc-exit, or M-x quit-window for the emacs primitive. Let me restart... ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 19:31 ` Jean Louis @ 2020-11-03 21:13 ` Boruch Baum 2020-11-04 8:10 ` Jean Louis 0 siblings, 1 reply; 94+ messages in thread From: Boruch Baum @ 2020-11-03 21:13 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List On 2020-11-03 22:31, Jean Louis wrote: > * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 20:13]: > > On 2020-11-03 19:07, Jean Louis wrote: > > > It works, but it does not give me safety feeling. > > > > I don't understand the comment. > > It never happened that I cannot install package from buffer or > file. At first sight it looks good inside. Maybe it is bug in Emacs or > maybe some wrong formatting in the package what I doubt. Oh, that. Like Joost Kremers mentioned earlier today, and like I posted earlier, that issue is solved by adding a single blank line to the header. Here's what I wrote earlier: --8<--cut here-(start)------------------------------------------- >8 ;; Package-Requires: ((emacs "26.1")) ;; (emacs "24.1") for: split-window-right, window-normalize-frame Should be: ;; Package-Requires: ((emacs "26.1")) ;; ;; (emacs "24.1") for: split-window-right, window-normalize-frame --8<--cut here-(end)--------------------------------------------- >8 Once you make that change, you can install the package in the way you are accustomed. That change was uploaded to github hours ago, when I posted the original fix. > Sorry that I find personally Github appalling. > ... > I hope there is nothing wrong with email. Any way you prefer. > Would Github not have non-free Javascript, maybe I would vouch for it. You can use github without javascript, directly from emacs, to report issues. The packages for that are: magit and forge. Maybe also ghub? > > > It broke my console. > > > > Whoa. I use console emacs, and never encountered such a problem, so > > that's serious. Can you please give details? > > I cannot give much of details. As it was not possible to do anything > unde XTerm (not real console). > > Video is here: > https://gnu.support/images/tmp/2020-11-03-21:57:51.ogv I've downloaded an played the video several times at slow speed, but can't figure out what keys you're pressing and what is going on. 1] There exists a debian package called 'screenkey' which you can use in conjunction with screencasts. Any time you press a key, the program display that key as part of your screencast. Other similar packages probably exist for other operating systems. 2] Can you describe the steps you took before your 'console broke'? 3] Your video shows you recovered. How did you do that? 4] I'm not familiar with EXWM. Is that the starting point of the video? > And I have used emacsclient. Shouldn't be an issue. I always use emacsclient, and tested the package from both a standalone emacs and a server/client instance. > > > On X it is creating new frame. > > > > That's the expected behavior - to have a dedicated emacs frame for two > > dired panels and their associated temporary buffers (ie. shell buffers > > and a quick-view buffer). > > As I did not need two frames so it is not pleasant. The classic dired > frame appears in front of diredc frame. I didn't see that in your video. Your video shows a buffer labeled *scratch* in a frame labeled F6. > Trash management I prefer being handled by expected built-in Emacs > behavior. I did not try yours. Mine does many more things than the built-in. See the documentation. > getfacl - I do not have as command on my system Hyperbola > GNU/Linux-libre and I do not know what it is, so I cannot use "get > more file info" You can change the list for metadata commands available on your system (it's a defcustom: diredc-show-more-file-info-list). Let me know details and I can figure out how to include them. What do you get when you perform "M-: system-type"? > C-c b a - to add bookmark, isn't it just same number of key strokes as > C-x r m ? Yes. The differences include the persistence of the bookmark over emacs sessions and the ability to use the defcustom interface to manage the bookmark list. > ' - is good feature to launch shell quickly, I may adopt that. But I > get this: > > export d1="~/Programming/emacs-lisp/others/" d2="" f1="~/Programming/emacs-lisp/others/diredc.el" f2="" t1="(/home/data1/protected/Programming/emacs-lisp/others/diredc.el)" t2="nil" Yes. It is expected. It is giving you several useful dired-related data in shell variables. See the documentation. > if that is expected, I do not know. It did not choose my shell from > /etc/passwd - it went straight into sh It uses the default as set in defcustom variable `diredc-shell-default'. > C-x o - when switching from window to window is currently confusing me You didn't read any of the documentation, did you? The navigation between buffers is using <TAB>. That said, C-x o should work fine. I can't reproduce a problem with it. Please send more details. > as buffer disappears and I then see instead of opened file again the > diredc listing, then if I had shell on left side, I kill it, my right > side becomes some other buffer! Too many unexpected things happening. And I don't understand. Probably good idea for another screencast, if you want. Consider using the screenkey program or similar so viewers can see what it is you're doing. > diredc-mode - disabled in all buffers, but colors remain and is not > really disabled, it comes back. Then you probably didn't turn it off or exit it. I would need some more details in order to reproduce your scenario. > Then I see line movements in both windows, left and right. That means you have two windows showing the same dired or diredc buffer. > I have global-hl-line-mode turned on. I can see in other window the > highlighted line but not on same line Not on same line as what? POINT? > normal dired does not work after diredc, error: let*: Wrong type > argument: consp, > "/home/data1/protected/Programming/emacs-lisp/others/" Again, without details I don't know where to start. In this case, can you provide a backtrace? > q - does not work any more, Use \[diredc-exit] for diredc-exit, or M-x quit-window for the emacs primitive. Yes. That is expected behavior. On the one hand, we want to prevent people from making a mess if what they are trying to do is exit diredc; on the other hand, we want to give them the option of performing quit-window and making a mess if they insist. diredc-exit performs an elegant and complete clean-up, while quit-window just closes a window and leave behind the buffer to come back to haunt you. What is a bug is that the actual keybinding wasn't being displayed. I just now pushed a commit to fix that. You can make the change manually by altering line 2077 from: (message "Use \\[diredc-exit] for diredc-exit, or M-x quit-window for the emacs primitive.")) to (message "Use %s for diredc-exit, or M-x quit-window for the emacs primitive." (key-description (where-is-internal 'diredc-exit diredc-mode-map t)))) Keep in mind that one of your options is "M-x diredc-recover", which restores your buffer and window configuration if you unintentionally or intention mess it up. So. A lot of feedback, which is good. If you can provide more details for the items of trouble you're reporting, I can try to address them. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 21:13 ` Boruch Baum @ 2020-11-04 8:10 ` Jean Louis 2020-11-04 8:54 ` Boruch Baum 0 siblings, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-04 8:10 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-04 00:13]: > > Video is here: > > https://gnu.support/images/tmp/2020-11-03-21:57:51.ogv > > I've downloaded an played the video several times at slow speed, but > can't figure out what keys you're pressing and what is going on. I could not do anything, C-g, C-x k, nothing. So I just closed XTerm. I did not recover in XTerm, I went to X frame of Emacs. > 4] I'm not familiar with EXWM. Is that the starting point of the > video? No, I did not use Emacs X Window Manager that time. > I didn't see that in your video. Your video shows a buffer labeled > *scratch* in a frame labeled F6. Yes, it looks like something happened that dired output was inserted into *scratch* > > getfacl - I do not have as command on my system Hyperbola > > GNU/Linux-libre and I do not know what it is, so I cannot use "get > > more file info" > > You can change the list for metadata commands available on your system > (it's a defcustom: diredc-show-more-file-info-list). Let me know details > and I can figure out how to include them. What do you get when you > perform "M-: system-type"? gnu/linux > Yes. The differences include the persistence of the bookmark over emacs > sessions and the ability to use the defcustom interface to manage the > bookmark list. But bookmarks anyway persist. I think I am asked to save it. > It uses the default as set in defcustom variable > `diredc-shell-default'. While this may appear fine to many, and may not work on other OS-es, I do expect that my preferred shell in /etc/passwd is read by whatever other terminals and Emacs as well if I do not put any special customization. This way I get: - that I have chosen preferred shell in /etc/passwd or by using chsh - that Emacs chooses eventually other shell in its terminals or M-x shell - that new packages chooses other shell Maybe preferred shell is "first shell" but I consider /etc/passwd some basic information about user as it is readable by programs. It should be used. > > C-x o - when switching from window to window is currently confusing me > > You didn't read any of the documentation, did you? The navigation > between buffers is using <TAB>. That said, C-x o should work fine. I > can't reproduce a problem with it. Please send more details. I was reading documentation and went through it. Some keys I have tried myself like C-x o. > > diredc-mode - disabled in all buffers, but colors remain and is not > > really disabled, it comes back. > > Then you probably didn't turn it off or exit it. I would need some more > details in order to reproduce your scenario. I am very fast in Dired and handling thousands of files, like today maybe 5500 files for websites. The one good function in diredc is opening of shell in the window. So I will try to duplicate it on my side. Beside that I will not need the package. I see you get surprised when I tell you how it comes up on my side. I know Midnight Commander and I have used it and still using it from time to time. Diredc did not give me feeling of mc. > > normal dired does not work after diredc, error: let*: Wrong type > > argument: consp, > > "/home/data1/protected/Programming/emacs-lisp/others/" > > Again, without details I don't know where to start. In this case, can > you provide a backtrace? I choose to skip for now, maybe in some weeks I will try again if that package get updates. -- There are 44 messages yet in my incoming mailbox. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 8:10 ` Jean Louis @ 2020-11-04 8:54 ` Boruch Baum 2020-11-04 9:57 ` Jean Louis 2020-11-04 15:28 ` Eli Zaretskii 0 siblings, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-04 8:54 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List On 2020-11-04 11:10, Jean Louis wrote: > * Boruch Baum <boruch_baum@gmx.com> [2020-11-04 00:13]: > > > Video is here: > > > https://gnu.support/images/tmp/2020-11-03-21:57:51.ogv > > > > I've downloaded an played the video several times at slow speed, but > > can't figure out what keys you're pressing and what is going on. > > I could not do anything, C-g, C-x k, nothing. So I just closed > XTerm. I did not recover in XTerm, I went to X frame of Emacs. But you were using emacsclient, correct? If so, then closing an Xterm won't kill the server (that's kind-of one of the main points of using the server/client setup). > > 4] I'm not familiar with EXWM. Is that the starting point of the > > video? > > No, I did not use Emacs X Window Manager that time. Then what was the window environment displayed at the beginning of the video? You just said above that you went back to the X frame of emacs, so you were in some kind of X window manager... > > I didn't see that in your video. Your video shows a buffer labeled > > *scratch* in a frame labeled F6. > > Yes, it looks like something happened that dired output was inserted > into *scratch* So many wild and crazy un-reproducible symptoms... If you want to try again, let's start by seeing what happens when you run M-x diredc-recover and diredc-quit as your FIRST steps. Then start diredc. > ... > I choose to skip for now, maybe in some weeks I will try again if that > package get updates. OK, then. I'll consider your point about picking up a default shell from /etc/passwd. I don't like depending upon that file being readable to just any user, but the possibility could be taken into account. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 8:54 ` Boruch Baum @ 2020-11-04 9:57 ` Jean Louis 2020-11-04 10:39 ` Jean Louis 2020-11-04 15:28 ` Eli Zaretskii 1 sibling, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-04 9:57 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-04 11:54]: > But you were using emacsclient, correct? If so, then closing an Xterm > won't kill the server (that's kind-of one of the main points of using > the server/client setup). Yes, it did not close server. But it blocked any usage on XTerm. > Then what was the window environment displayed at the beginning of the > video? You just said above that you went back to the X frame of emacs, > so you were in some kind of X window manager... That is IceWM. > OK, then. I'll consider your point about picking up a default shell from > /etc/passwd. I don't like depending upon that file being readable to > just any user, but the possibility could be taken into account. It is traditionally called /etc/passwd but does not contain any passwords. It is basic information of users you know it. It can contain even "room number" or website, email, phone, anything. I do not think Emacs looks into /etc/passwd but then again if you are opening the shell you should look into what was set in Emacs as default. OK let me try again. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 9:57 ` Jean Louis @ 2020-11-04 10:39 ` Jean Louis 2020-11-04 13:17 ` Boruch Baum 0 siblings, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-04 10:39 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List Hello Boruch, This time I started with Emacs without doing my usual stuff. I did not check it, only I think you are invoking bash that does not read my .bashrc while M-x shell, does read it. So I got different prompt instead of my prompt. You would need to review those compiler warnings as for example {M-x diredc-mode-map RET} is mentioned there and cannot be found. First thing I usually do is looing into are keybindings explained with the {C-h m} and of course I can look into the source. My review is from viewpoint of users, not from my personal view point. https://gnu.support/images/2020/11/2020-11-04/2020-11-04-13:01:29.ogv {M-x diredc RET} worked well as I used only TAB as you can see, nothing much. I would not like using it for operations as it is not refined. Apparently {M-x diredc-recover} (recover what?!) removed all diredc buffers and I finished video. Then I moved to left workspace and found one dangling diredc buffer, so I killed it. It did not remove everything. My notation with curly brackets { } is handy to be activated by using M-x RET within GNU Hyperbole package. During writing of this email I have invoked {M-x diredc RET} again and I could see this email frame going to front and diredc buffer appearing below the frame buffer. For me that is not handy, as if I wish or need something, I need it in front of me, not behind papers. Colors are not visible and do not help me. What is directory and what is not I get with the {C-h v RET dired-listing-switches RET} being set to: -gohl --group-directories-first so I can ee directories anyway in some colors, being listed first. On BSD systems this does not work. My settings is with: (windmove-default-keybindings 'super) so I am anyway switching way easier then just {C-x o} in dired buffer, I click Super key and arrow to which direction I wish to move. I got surprised that Dired does not use TAB key for at least something useful. Like you have made it to switch to other window, or to maybe switch both windows. I can say it is +1 for TAB switching and quick shell opening. This gives me ideas for key bindings. For those other features... nothing to say yet. Jean ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 10:39 ` Jean Louis @ 2020-11-04 13:17 ` Boruch Baum 2020-11-04 15:32 ` Joost Kremers 2020-11-04 17:15 ` Jean Louis 0 siblings, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-04 13:17 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List On 2020-11-04 13:39, Jean Louis wrote: > https://gnu.support/images/2020/11/2020-11-04/2020-11-04-13:01:29.ogv Hi. I'm really enjoying your video, and will need to watch it a few more times before I can get through it without laughing. The key sequences this time indicate that you are doing your best to avoid actually using diredc and are working hard to create complications for yourself. For example, you launch diredc, but then instead of using it you make a direct use of M-x dired. Then you perform C-x 3 to make it look to you like you might be in diredc (you aren't). And it continues. I've watched the video a few times but have never gotten to the end yet, because I'm laughing too hard. The usage instructions for diredc are pretty short, so try reading them. That's what they're for, and if they're unclear I'll be happy to edit them for clarity and simplicity. If you did read them once, it's obvious that either they weren't clearly written or you weren't paying attention. The video shows that you eventually figured out that after performing M-x package-install-from-buffer, you need to take the extra step of loading the library (you didn't want to follow my simpler instructions to just evaluate the buffer, but that's cool; emacs is all about choices). The intention is for the users to perform M-x diredc (it should be bound to S-<F11>) to launch it, *and* to use the same command to toggle into and out of the diredc frame. A design goal of the package is to avoid accumulating more than two dired buffers, and to keep an orderly dired configuration. There should never be a need to call dired itself directly; When you want to use dired, perform S-<F11> to enter diredc. The default keybinding '/' will take you anywhere (and will push the location on the panel's history stack so you can quick navigate back). "C-u /" pops up a history list for the selected pane and, well I'm just re-writing the documentation now, aren't I... When I make it through the video, I'll continue and respond to the rest of your e-mail. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 13:17 ` Boruch Baum @ 2020-11-04 15:32 ` Joost Kremers 2020-11-04 15:58 ` Stefan Monnier 2020-11-04 17:23 ` Jean Louis 2020-11-04 17:15 ` Jean Louis 1 sibling, 2 replies; 94+ messages in thread From: Joost Kremers @ 2020-11-04 15:32 UTC (permalink / raw) To: emacs-devel On Wed, Nov 04 2020, Boruch Baum wrote: > The usage instructions for diredc are pretty short, so try reading them. > That's what they're for, and if they're unclear I'll be happy to edit > them for clarity and simplicity. If you did read them once, it's obvious > that either they weren't clearly written or you weren't paying attention. Perhaps your presentation is confusing. When I read your original message and the README.md, I got the impression that diredc is an extension of dired, which implies that you can do everything you're used to in dired in the same way it's done in dired, and that diredc adds new functionality. However, the way you describe it now it sounds more like diredc is essentially a different file manager that just happens to use dired under the hood. In that case, it would help to present it that way, so that a user knows they have to forget their dired habits. If it's the former, it might be a good idea to consider whether you need an extra command, or whether calling `M-x dired` would automatically activate the extra functionality. If it's the latter, perhaps a name that doesn't include `dired` would make sense? Of course it's possible that you think of diredc one way, while someone else sees it another way. Doesn't make things easier, of course... Mind you, I hardly ever use dired (I occasionally do some bulk renaming with it, but otherwise I do most of my file managing in a shell), so take my comments with a big bag of salt. > The video shows that you eventually figured out that after performing > M-x package-install-from-buffer, you need to take the extra step of > loading the library (you didn't want to follow my simpler instructions > to just evaluate the buffer, but that's cool; emacs is all about choices). An autoload cookie on `diredc` might solve that. (At least, I assume that installing a package from a buffer will install the autoload cookies in it...) -- Joost Kremers Life has its moments ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 15:32 ` Joost Kremers @ 2020-11-04 15:58 ` Stefan Monnier 2020-11-04 17:23 ` Jean Louis 1 sibling, 0 replies; 94+ messages in thread From: Stefan Monnier @ 2020-11-04 15:58 UTC (permalink / raw) To: Joost Kremers; +Cc: emacs-devel > An autoload cookie on `diredc` might solve that. Indeed. > (At least, I assume that > installing a package from a buffer will install the autoload cookies in it...) It does, Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 15:32 ` Joost Kremers 2020-11-04 15:58 ` Stefan Monnier @ 2020-11-04 17:23 ` Jean Louis 1 sibling, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-04 17:23 UTC (permalink / raw) To: Joost Kremers; +Cc: emacs-devel * Joost Kremers <joostkremers@fastmail.fm> [2020-11-04 18:39]: > Mind you, I hardly ever use dired (I occasionally do some bulk renaming with it, > but otherwise I do most of my file managing in a shell), so take my comments > with a big bag of salt. While not on subject: Interesting for me to hear that. But I can understand it. Before I always used Midnight Commander for file management and still use it on systems without Emacs. Under graphics I sometimes use Rox file manager and others from desktop like Caja, etc. And also shell. But when it comes to quick entering into directories, reviewing images, I have to invoke package sxiv and various others to be very fast. Sometimes I have to choose images and send quickly to other people. I think for 15 years I did not use Dired and for 5 years I cannot without it. Very hand options `dired-dwim-target' renames or copies marked files into other window. Within {M-x shell} I am often using `ed' editor to handle configurations including on remote servers. This may sound strange but is sometimes faster option to change few lines then invoking Emacs through Tramp to edit the file. I like to hear various experiences, thanks. Jean ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 13:17 ` Boruch Baum 2020-11-04 15:32 ` Joost Kremers @ 2020-11-04 17:15 ` Jean Louis 1 sibling, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-04 17:15 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-04 16:18]: > On 2020-11-04 13:39, Jean Louis wrote: > > https://gnu.support/images/2020/11/2020-11-04/2020-11-04-13:01:29.ogv > > Hi. I'm really enjoying your video, and will need to watch it a few more > times before I can get through it without laughing. Please watch with laughing, you are welcom. > The key sequences this time indicate that you are doing your best to > avoid actually using diredc and are working hard to create > complications for yourself. For example, you launch diredc, but then > instead of using it you make a direct use of M-x dired. No, that may be mistake, it was not at all my intention. It was only to verify if I am on clean Emacs with my configurations and all packages loaded would it block again on the console. That was main purpose. I maybe get stuck with completion functions and you maybe see dired... but not my intention. I did not want to move files, rename or do anything more than TAB and ' for shell. > Then you perform C-x 3 to make it look to you like you might be in > diredc (you aren't). When I have got one window, I had to split it before trying out if TAB will work in that one, split window, right? > And it continues. I've watched the video a few times but have never > gotten to the end yet, because I'm laughing too hard. That is good... > The usage instructions for diredc are pretty short, so try reading > them. I read them all line by line, but not that I wish to invoke it. In general I can make review of your package and play little with it. Not that I wish to play with my files. I hope you get the point. Same with other dired improving packages. > That's what they're for, and if they're unclear I'll be happy to edit > them for clarity and simplicity. If you did read them once, it's obvious > that either they weren't clearly written or you weren't paying > attention. Come on, no. By my review you could see that I went through all commentary in the package. I did not want to use anything. Instead you put attention on how I don't put attention, you could make diredc-mod-map actually working. > The video shows that you eventually figured out that after performing > M-x package-install-from-buffer, you need to take the extra step of > loading the library (you didn't want to follow my simpler instructions > to just evaluate the buffer, but that's cool; emacs is all about > choices). Of course I know what you wrote, of course I know how to evaluate buffers, etc. But you improved the package since I told you last time that it does not install? Right? So you changed the space and then I have been testing new improvement to show it is installing. Isn't that nice? > The intention is for the users to perform M-x diredc (it should be bound > to S-<F11>) to launch it, *and* to use the same command to toggle into > and out of the diredc frame. That is clear, I know that. When package-initialize finishes, if you have some autoload functions, M-x diredc will start the functions and load whatever. > A design goal of the package is to avoid accumulating more than two > dired buffers, and to keep an orderly dired configuration. I understand this principle. It really pushes into Midnight Commander direction. Not that I need that. I do not count or put attention how many buffers I have. Often hundreds and hundreds of buffers. Usuall I am handling in a week sometimes 5000+ file processing functions through Emacs, like video processing by using `dired-do-async-shell-command', preparing thousands of images for multiple websites within Website Revision System, optimizing images for the website page speedups, describing images and videos straight within Emacs to later automatically include such into website pages. Video processing is tedious so I distribute processing to other computers in network that in turn process them without my attention or my computer getting too hot. Like for Dired I am very much familiar with it. But how many buffers are there, I don't put attention on it. I remember I was doing that somewhere 1999 when I was surprised that buffers are opening and I confused myself, I was thinking is it good or bad and started always killing them or making sure of it. Today I only do {C-x s} and that is all. > There should never be a need to call dired itself directly; When you > want to use dired, perform S-<F11> to enter diredc. Main point was not keybindings. But that it does not block in console. For key bindings make the {C-h m} work first. Jean ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 8:54 ` Boruch Baum 2020-11-04 9:57 ` Jean Louis @ 2020-11-04 15:28 ` Eli Zaretskii 1 sibling, 0 replies; 94+ messages in thread From: Eli Zaretskii @ 2020-11-04 15:28 UTC (permalink / raw) To: Boruch Baum; +Cc: bugs, emacs-devel > Date: Wed, 4 Nov 2020 03:54:25 -0500 > From: Boruch Baum <boruch_baum@gmx.com> > Cc: Emacs-Devel List <emacs-devel@gnu.org> > > I'll consider your point about picking up a default shell from > /etc/passwd. Please don't, at least not literally: that's not portable enough for use to use it. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 10:54 ` Jean Louis 2020-11-03 11:15 ` Boruch Baum @ 2020-11-03 11:24 ` Boruch Baum 1 sibling, 0 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-03 11:24 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List On 2020-11-03 13:54, Jean Louis wrote: > For some reason I cannot M-x package-install-from-buffer > > Error: > package-read-from-string: Can’t read whole string Fixed. The lines ;; Package-Requires: ((emacs "26.1")) ;; (emacs "24.1") for: split-window-right, window-normalize-frame Should be: ;; Package-Requires: ((emacs "26.1")) ;; ;; (emacs "24.1") for: split-window-right, window-normalize-frame -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 10:43 Friendlier dired experience [CODE INCLUDED] Boruch Baum 2020-11-03 10:54 ` Jean Louis @ 2020-11-03 15:10 ` Stefan Kangas 2020-11-03 16:10 ` Jean Louis 2020-11-04 18:07 ` Stefan Monnier 2020-11-09 22:45 ` Mathias Dahl 3 siblings, 1 reply; 94+ messages in thread From: Stefan Kangas @ 2020-11-03 15:10 UTC (permalink / raw) To: Boruch Baum, Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: > I've just published an elisp package that extends and configures > dired-mode with features that many people have come to take for granted > in other programming languages. For the source code and the detailed > description, see: http://github.com/Boruch-Baum/emacs-diredc > > If the project is interested in it, I can assign the copyright. One item that stands out (to me) from the feature list is: * Trash management per xfreedesktop standard restore trashed files to their original locations empty the trash, along with its administrative overhead view trash summary information Perhaps something like this would be useful to add directly to dired.el and/or files.el? I'm not sure what is currently missing (and I don't use a trash folder myself), so I cannot say. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 15:10 ` Stefan Kangas @ 2020-11-03 16:10 ` Jean Louis 2020-11-03 17:16 ` Boruch Baum 0 siblings, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-03 16:10 UTC (permalink / raw) To: Stefan Kangas; +Cc: Boruch Baum, Emacs-Devel List * Stefan Kangas <stefankangas@gmail.com> [2020-11-03 18:34]: > Boruch Baum <boruch_baum@gmx.com> writes: > > > I've just published an elisp package that extends and configures > > dired-mode with features that many people have come to take for granted > > in other programming languages. For the source code and the detailed > > description, see: http://github.com/Boruch-Baum/emacs-diredc > > > > If the project is interested in it, I can assign the copyright. > > One item that stands out (to me) from the feature list is: > > * Trash management > > per xfreedesktop standard > restore trashed files to their original locations > empty the trash, along with its administrative overhead > view trash summary information > > Perhaps something like this would be useful to add directly to dired.el > and/or files.el? I'm not sure what is currently missing (and I don't > use a trash folder myself), so I cannot say. I use trash folder as to prevent some mistakes when deleting stuff. This package should support the built-in features and not deviate, though I do not know if it deviates in relation to trashing. Inspect veriable delete-by-moving-to-trash move-file-to-trash is an interactive compiled Lisp function in ‘files.el’. (move-file-to-trash FILENAME) Probably introduced at or before Emacs version 23.2. Move the file (or directory) named FILENAME to the trash. When ‘delete-by-moving-to-trash’ is non-nil, this function is called by ‘delete-file’ and ‘delete-directory’ instead of deleting files outright. If the function ‘system-move-file-to-trash’ is defined, call it with FILENAME as an argument. Otherwise, if ‘trash-directory’ is non-nil, move FILENAME to that directory. Otherwise, trash FILENAME using the freedesktop.org conventions, like the GNOME, KDE and XFCE desktop environments. Emacs moves files only to "home trash", ignoring per-volume trashcans. -- There are 43 messages yet in my incoming mailbox. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 16:10 ` Jean Louis @ 2020-11-03 17:16 ` Boruch Baum 2020-11-03 17:59 ` Michael Albinus 2020-11-04 19:28 ` Stefan Kangas 0 siblings, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-03 17:16 UTC (permalink / raw) To: Jean Louis; +Cc: Stefan Kangas, Emacs-Devel List On 2020-11-03 19:10, Jean Louis wrote: > I use trash folder as to prevent some mistakes when deleting > stuff. This package should support the built-in features and not > deviate, though I do not know if it deviates in relation to trashing. It's designed not to deviate. You can look at the source code to see that it handles all cases. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 17:16 ` Boruch Baum @ 2020-11-03 17:59 ` Michael Albinus 2020-11-03 19:10 ` Boruch Baum 2020-11-04 19:28 ` Stefan Kangas 1 sibling, 1 reply; 94+ messages in thread From: Michael Albinus @ 2020-11-03 17:59 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Kangas, Jean Louis, Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: Hi Boruch, >> I use trash folder as to prevent some mistakes when deleting >> stuff. This package should support the built-in features and not >> deviate, though I do not know if it deviates in relation to trashing. > > It's designed not to deviate. You can look at the source code to see > that it handles all cases. Since recently, remote files are trashed to the local trash can. Are you able to restore them, if the trash can is derived from XDG spec? Test with recent master branch. Best regards, Michael. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 17:59 ` Michael Albinus @ 2020-11-03 19:10 ` Boruch Baum 2020-11-03 19:49 ` Jean Louis 2020-11-04 19:57 ` Michael Albinus 0 siblings, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-03 19:10 UTC (permalink / raw) To: Michael Albinus; +Cc: Stefan Kangas, Jean Louis, Emacs-Devel List On 2020-11-03 18:59, Michael Albinus wrote: > Since recently, remote files are trashed to the local trash can. Are you > able to restore them, if the trash can is derived from XDG spec? Oooh. Nice point. I never tested the software with tramp / smb / ssh. What the software does is respect the XDG metadata stored in the trash/info directory and performs a file move to the location identified by that metadata. The software is agnostic to the location, so if emacs requires any extra processing to reach the "remote", I don't know if the operation would succeed. It's reasonable to expect the file move to be handled at a 'level below' the dired function call and so succeed, but I don't know. > Test with recent master branch. I'm not set up for that just now. Can you try and report back? Also, since you mentioned the 'master branch'... I'm not a regular lurker on this mailing list, so this may already have been discussed... Is emacs planning on renaming its 'master branch' to something less evocative of some 'master race'? You may have caught wind of the trend to nudge society world-wide to a bit more sensitivity to historic atrocities world-wide. Even github has recently gotten on-board and no longer sets default branches to 'master branch'; they use 'main branch' now. If it hasn't been discussed yet, let me know and I'll start a dedicated thread with appropriate subject line. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 19:10 ` Boruch Baum @ 2020-11-03 19:49 ` Jean Louis 2020-11-04 6:08 ` Pankaj Jangid 2020-11-04 19:57 ` Michael Albinus 1 sibling, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-03 19:49 UTC (permalink / raw) To: Boruch Baum; +Cc: Michael Albinus, Stefan Kangas, Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 22:11]: > Also, since you mentioned the 'master branch'... I'm not a regular > lurker on this mailing list, so this may already have been discussed... > Is emacs planning on renaming its 'master branch' to something less > evocative of some 'master race'? You may have caught wind of the trend > to nudge society world-wide to a bit more sensitivity to historic > atrocities world-wide. Even github has recently gotten on-board and no > longer sets default branches to 'master branch'; they use 'main branch' > now. If it hasn't been discussed yet, let me know and I'll start a > dedicated thread with appropriate subject line. Where I am now in East Africa, it is difficult to find person who read more than 3 books. My friend who lives here temporarily, she finished literature in Uganda and she read 3 books in total. And she is fine with me telling you this. There is nothing wrong with the word master as it is not used in the context that those less educated people would assume. The Wordnet dictionary does not even mention the context you mentioned here. The word main is synonym to master. It accommodates those less educated people and their sensitivies. In that context it is not noun, rather adjective "master branch" * Overview of noun master The noun master has 10 senses (first 6 from tagged texts) 1. (8) maestro, master -- (an artist of consummate skill; "a master of the violin"; "one of the old masters") 2. (5) overlord, master, lord -- (a person who has general authority over others) 3. (1) victor, master, superior -- (a combatant who is able to defeat rivals) 4. (1) master -- (directs the work of others) 5. (1) headmaster, schoolmaster, master -- (presiding officer of a school) 6. (1) master, master copy, original -- (an original creation (i.e., an audio recording) from which copies can be made) 7. master, captain, sea captain, skipper -- (an officer who is licensed to command a merchant ship) 8. master -- (someone who holds a master's degree from academic institution) 9. master, professional -- (an authority qualified to teach apprentices) 10. passkey, passe-partout, master key, master -- (key that secures entrance everywhere) So this is the proper context for "master branch". * Overview of adj master The adj master has 1 sense (no senses from tagged texts) 1. chief, main, primary, principal, master -- (most important element; "the chief aim of living"; "the main doors were of solid glass"; "the principal rivers of America"; "the principal example"; "policemen were primary targets"; "the master bedroom"; "a master switch") Less educated people will not know what is noun, adjective, verb, what is present time, history and so on, they will ANYWAY mix everything together. * Overview of adj main The adj main has 3 senses (first 1 from tagged texts) 1. (33) chief, main, primary, principal, master -- (most important element; "the chief aim of living"; "the main doors were of solid glass"; "the principal rivers of America"; "the principal example"; "policemen were primary targets"; "the master bedroom"; "a master switch") 2. independent, main -- ((of a clause) capable of standing syntactically alone as a complete sentence; "the main (or independent) clause in a complex sentence has at least a subject and a verb") 3. main -- (of force; of the greatest possible intensity; "by main strength") ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 19:49 ` Jean Louis @ 2020-11-04 6:08 ` Pankaj Jangid 0 siblings, 0 replies; 94+ messages in thread From: Pankaj Jangid @ 2020-11-04 6:08 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List, Michael Albinus, Boruch Baum, Stefan Kangas Jean Louis <bugs@gnu.support> writes: > * Boruch Baum <boruch_baum@gmx.com> [2020-11-03 22:11]: >> Also, since you mentioned the 'master branch'... I'm not a regular >> lurker on this mailing list, so this may already have been discussed... >> Is emacs planning on renaming its 'master branch' to something less >> evocative of some 'master race'? You may have caught wind of the trend >> to nudge society world-wide to a bit more sensitivity to historic >> atrocities world-wide. Even github has recently gotten on-board and no >> longer sets default branches to 'master branch'; they use 'main branch' >> now. If it hasn't been discussed yet, let me know and I'll start a >> dedicated thread with appropriate subject line. > > Where I am now in East Africa, it is difficult to find person who read > more than 3 books. My friend who lives here temporarily, she finished > literature in Uganda and she read 3 books in total. And she is fine > with me telling you this. There is nothing wrong with the word master > as it is not used in the context that those less educated people would > assume. > > The Wordnet dictionary does not even mention the context you mentioned > here. > > The word main is synonym to master. It accommodates those less > educated people and their sensitivies. > > In that context it is not noun, rather adjective "master branch" > > * Overview of noun master > > The noun master has 10 senses (first 6 from tagged texts) > 1. (8) maestro, master -- (an artist of consummate skill; "a master of the violin"; "one of the old masters") > 2. (5) overlord, master, lord -- (a person who has general authority over others) > 3. (1) victor, master, superior -- (a combatant who is able to defeat rivals) > 4. (1) master -- (directs the work of others) > 5. (1) headmaster, schoolmaster, master -- (presiding officer of a school) > 6. (1) master, master copy, original -- (an original creation (i.e., an audio recording) from which copies can be made) > 7. master, captain, sea captain, skipper -- (an officer who is licensed to command a merchant ship) > 8. master -- (someone who holds a master's degree from academic institution) > 9. master, professional -- (an authority qualified to teach apprentices) > 10. passkey, passe-partout, master key, master -- (key that secures entrance everywhere) > > > So this is the proper context for "master branch". > > * Overview of adj master > > The adj master has 1 sense (no senses from tagged texts) > 1. chief, main, primary, principal, master -- (most important element; > "the chief aim of living"; "the main doors were of solid glass"; "the > principal rivers of America"; "the principal example"; "policemen were > primary targets"; "the master bedroom"; "a master switch") > > Less educated people will not know what is noun, adjective, verb, what > is present time, history and so on, they will ANYWAY mix everything > together. > > * Overview of adj main > > The adj main has 3 senses (first 1 from tagged texts) > 1. (33) chief, main, primary, principal, master -- (most important > element; "the chief aim of living"; "the main doors were of solid > glass"; "the principal rivers of America"; "the principal example"; > "policemen were primary targets"; "the master bedroom"; "a master > switch") > 2. independent, main -- ((of a clause) capable of standing > syntactically alone as a complete sentence; "the main (or independent) > clause in a complex sentence has at least a subject and a verb") > 3. main -- (of force; of the greatest possible intensity; "by main strength") Loved this.... (+1000) ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 19:10 ` Boruch Baum 2020-11-03 19:49 ` Jean Louis @ 2020-11-04 19:57 ` Michael Albinus 2020-11-04 20:18 ` Yuri Khan 2020-11-05 8:54 ` Boruch Baum 1 sibling, 2 replies; 94+ messages in thread From: Michael Albinus @ 2020-11-04 19:57 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Kangas, Jean Louis, Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: Hi Boruch, >> Since recently, remote files are trashed to the local trash can. Are you >> able to restore them, if the trash can is derived from XDG spec? > > Oooh. Nice point. I never tested the software with tramp / smb / ssh. > What the software does is respect the XDG metadata stored in the > trash/info directory and performs a file move to the location identified > by that metadata. The software is agnostic to the location, so if emacs > requires any extra processing to reach the "remote", I don't know if the > operation would succeed. It's reasonable to expect the file move to be > handled at a 'level below' the dired function call and so succeed, but I > don't know. > >> Test with recent master branch. > > I'm not set up for that just now. Can you try and report back? When I'm working in a remote buffer, "diredc-trash-info" does not work. This is because you call shell-command, which runs the command on the remote host. When I have trashed a file, say "/ssh:ford:/tmp/xxx", it appears as "/home/albinus/.local/share/Trash/files/xxx", in the local trash can. "/home/albinus/.local/share/Trash/info/xxx.trashinfo" contains the line Path=/ssh%3aford%3a/tmp/xxx as expected. However, "M-x diredc-trash-restore" returns with the error dired-rename-file: Renaming: No such file or directory, /home/albinus/.local/share/Trash/files/xxx, /ssh%3aford%3a/tmp/xxx I believe you must unhexlify the path in the .trashinfo. This is not only because of Tramp. A local file "/tmp/file with space", trashed via "M-x move-file-to-trash", has the entry Path=/tmp/file%20with%20space Calling "M-x diredc-trash-restore" restores it to "/tmp/file%20with%20space". Best regards, Michael. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 19:57 ` Michael Albinus @ 2020-11-04 20:18 ` Yuri Khan 2020-11-04 20:29 ` Michael Albinus 2020-11-05 8:54 ` Boruch Baum 1 sibling, 1 reply; 94+ messages in thread From: Yuri Khan @ 2020-11-04 20:18 UTC (permalink / raw) To: Michael Albinus; +Cc: Emacs-Devel List, Boruch Baum, Jean Louis, Stefan Kangas On Thu, 5 Nov 2020 at 03:02, Michael Albinus <michael.albinus@gmx.de> wrote: > When I'm working in a remote buffer, "diredc-trash-info" does not > work. This is because you call shell-command, which runs the command on > the remote host. > > When I have trashed a file, say "/ssh:ford:/tmp/xxx", it appears as > "/home/albinus/.local/share/Trash/files/xxx", in the local trash can. > "/home/albinus/.local/share/Trash/info/xxx.trashinfo" contains the line > > Path=/ssh%3aford%3a/tmp/xxx > > as expected. What do other file managers do when trashing a file from a network file system into the home trash? The spec is unclear on the intended path format in this case, although it mentions that trashing over the network is possible. It is unfortunate if Emacs puts remote file names in Tramp syntax but all other file managers use, e.g., URL syntax. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 20:18 ` Yuri Khan @ 2020-11-04 20:29 ` Michael Albinus 0 siblings, 0 replies; 94+ messages in thread From: Michael Albinus @ 2020-11-04 20:29 UTC (permalink / raw) To: Yuri Khan; +Cc: Emacs-Devel List, Boruch Baum, Jean Louis, Stefan Kangas Yuri Khan <yuri.v.khan@gmail.com> writes: Hi Yuri, >> When I have trashed a file, say "/ssh:ford:/tmp/xxx", it appears as >> "/home/albinus/.local/share/Trash/files/xxx", in the local trash can. >> "/home/albinus/.local/share/Trash/info/xxx.trashinfo" contains the line >> >> Path=/ssh%3aford%3a/tmp/xxx >> >> as expected. > > What do other file managers do when trashing a file from a network > file system into the home trash? The spec is unclear on the intended > path format in this case, although it mentions that trashing over the > network is possible. Locally, I have nautilus. It doesn't offer to trash remote files. > It is unfortunate if Emacs puts remote file names in Tramp syntax but > all other file managers use, e.g., URL syntax. This could be changed in move-file-to-trash. Since trashing remote files to the local trash is a pretty new feature of the master branch, we don't need to think about backward compatibility. Best regards, Michael. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 19:57 ` Michael Albinus 2020-11-04 20:18 ` Yuri Khan @ 2020-11-05 8:54 ` Boruch Baum 2020-11-05 10:11 ` Jean Louis 2020-11-05 13:31 ` Eli Zaretskii 1 sibling, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-05 8:54 UTC (permalink / raw) To: Michael Albinus; +Cc: Stefan Kangas, Jean Louis, Emacs-Devel List On 2020-11-04 20:57, Michael Albinus wrote: > When I'm working in a remote buffer, "diredc-trash-info" does not > work. This is because you call shell-command, which runs the command on > the remote host. > > When I have trashed a file, say "/ssh:ford:/tmp/xxx", it appears as > "/home/albinus/.local/share/Trash/files/xxx", in the local trash can. > "/home/albinus/.local/share/Trash/info/xxx.trashinfo" contains the line > > Path=/ssh%3aford%3a/tmp/xxx > > as expected. However, "M-x diredc-trash-restore" returns with the error > > dired-rename-file: Renaming: No such file or directory, /home/albinus/.local/share/Trash/files/xxx, /ssh%3aford%3a/tmp/xxx > > I believe you must unhexlify the path in the .trashinfo. This is not > only because of Tramp. A local file "/tmp/file with space", trashed via > "M-x move-file-to-trash", has the entry > > Path=/tmp/file%20with%20space > > Calling "M-x diredc-trash-restore" restores it to "/tmp/file%20with%20space". I was surprised that this turned out so difficult for me to do. The very simple case for 8-bit ascii was easily handled by unhexlifying, but that simple case got me thinking about unicode file names. Sure enough, the trash meta-data for such file names are also hex encoded, but the standard elisp commands I could find wouldn't handle them. Have I overlooked something? The following code snippet performs two alternate techniques (url-unhex-string, stolen-from-emacs-w3m-url-decode-string) first for a simple case of a file name with an embedded space, and then on a unicode file name. Only the function shamelessly stolen from the emacs-w3m package worked for both cases. Tell me I've overlooked something, please. (cl-flet ((stolen-from-emacs-w3m-url-decode-string (str &optional coding regexp) (or regexp (setq regexp "%\\(?:\\([0-9a-f][0-9a-f]\\)\\|0d%0a\\)")) (let ((start 0) (case-fold-search t)) (with-temp-buffer (set-buffer-multibyte nil) (while (string-match regexp str start) (insert (substring str start (match-beginning 0)) (if (match-beginning 1) (string-to-number (match-string 1 str) 16) ?\n)) (setq start (match-end 0))) (insert (substring str start)) (decode-coding-string (buffer-string) (or (if (listp coding) (with-coding-priority coding (car (detect-coding-region (point-min) (point-max)))) coding) 'iso-8859-1)))))) (dolist (str '("hello%20world" "%d7%a9%d7%9c%d7%95%d7%9d%20%d7%a2%d7%95%d7%9c%d7%9d")) (insert (format "\n\nurl-unhex: %s\nw3m-url-decode: %s" (url-unhex-string str) (stolen-from-emacs-w3m-url-decode-string str))))) -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 8:54 ` Boruch Baum @ 2020-11-05 10:11 ` Jean Louis 2020-11-05 13:31 ` Eli Zaretskii 1 sibling, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-05 10:11 UTC (permalink / raw) To: Boruch Baum; +Cc: Michael Albinus, Stefan Kangas, Emacs-Devel List On handling file names, I recommend this read: Search for: Programs assume bad filenames won’t happen on: https://dwheeler.com/essays/fixing-unix-linux-filenames.html Some programs may make filenames in automatic manner, there is pretty much freedom in filenames. For every program handling file names there shall be a test with all possible situations. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 8:54 ` Boruch Baum 2020-11-05 10:11 ` Jean Louis @ 2020-11-05 13:31 ` Eli Zaretskii 1 sibling, 0 replies; 94+ messages in thread From: Eli Zaretskii @ 2020-11-05 13:31 UTC (permalink / raw) To: Boruch Baum; +Cc: michael.albinus, stefankangas, bugs, emacs-devel > Date: Thu, 5 Nov 2020 03:54:40 -0500 > From: Boruch Baum <boruch_baum@gmx.com> > Cc: Stefan Kangas <stefankangas@gmail.com>, Jean Louis <bugs@gnu.support>, > Emacs-Devel List <emacs-devel@gnu.org> > > > I believe you must unhexlify the path in the .trashinfo. This is not > > only because of Tramp. A local file "/tmp/file with space", trashed via > > "M-x move-file-to-trash", has the entry > > > > Path=/tmp/file%20with%20space > > > > Calling "M-x diredc-trash-restore" restores it to "/tmp/file%20with%20space". > > I was surprised that this turned out so difficult for me to do. The very > simple case for 8-bit ascii was easily handled by unhexlifying, but that > simple case got me thinking about unicode file names. Sure enough, the > trash meta-data for such file names are also hex encoded, but the > standard elisp commands I could find wouldn't handle them. Have I > overlooked something? The following code snippet performs two alternate > techniques (url-unhex-string, stolen-from-emacs-w3m-url-decode-string) > first for a simple case of a file name with an embedded space, and then > on a unicode file name. Only the function shamelessly stolen from the > emacs-w3m package worked for both cases. Tell me I've overlooked > something, please. I'm not sure I understand exactly what you are trying to do, so what I suggest below may not make sense. But if I did understand, then the dance with temporary buffer shouldn't be required; the below should work (and does work with your 2 examples, assuming your file names are encoded in UTF-8): (decode-coding-string (url-unhex-string STRING) (or file-name-coding-system (default-value 'file-name-coding-system))) ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 17:16 ` Boruch Baum 2020-11-03 17:59 ` Michael Albinus @ 2020-11-04 19:28 ` Stefan Kangas 2020-11-04 19:39 ` Boruch Baum 1 sibling, 1 reply; 94+ messages in thread From: Stefan Kangas @ 2020-11-04 19:28 UTC (permalink / raw) To: Boruch Baum, Jean Louis; +Cc: Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: > On 2020-11-03 19:10, Jean Louis wrote: >> I use trash folder as to prevent some mistakes when deleting >> stuff. This package should support the built-in features and not >> deviate, though I do not know if it deviates in relation to trashing. > > It's designed not to deviate. You can look at the source code to see > that it handles all cases. But it seems to extend the functionality, right? I don't know, but I don't think Emacs can currently: - restore trashed files to their original locations - empty the trash - view trash summary information The only command I can find here is `move-file-to-trash'. So why not add that stuff directly to Emacs? It seems to me that it would be useful. Say we use the prefix `trash' to get: `trash-empty', `trash-view-summary', `trash-restore' or something along those lines. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 19:28 ` Stefan Kangas @ 2020-11-04 19:39 ` Boruch Baum 2020-11-05 15:00 ` Stefan Kangas 0 siblings, 1 reply; 94+ messages in thread From: Boruch Baum @ 2020-11-04 19:39 UTC (permalink / raw) To: Stefan Kangas; +Cc: Jean Louis, Emacs-Devel List On 2020-11-04 11:28, Stefan Kangas wrote: > But it seems to extend the functionality, right? Yep, that's the point of the entire package. > So why not add that stuff directly to Emacs? Isn't that what I offered here[1]? > It seems to me that it would be useful. Say we use the prefix `trash' > to get: `trash-empty', `trash-view-summary', `trash-restore' or > something along those lines. It's GPL3 FOSS. You can do pretty-much with it what you want. [1] https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00046.html -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 19:39 ` Boruch Baum @ 2020-11-05 15:00 ` Stefan Kangas 2020-11-06 9:34 ` Boruch Baum 0 siblings, 1 reply; 94+ messages in thread From: Stefan Kangas @ 2020-11-05 15:00 UTC (permalink / raw) To: Boruch Baum; +Cc: Jean Louis, Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: >> So why not add that stuff directly to Emacs? > > Isn't that what I offered here[1]? If that's what you meant, then that is very good. I'm sorry if I didn't fully understand your intention. >> It seems to me that it would be useful. Say we use the prefix `trash' >> to get: `trash-empty', `trash-view-summary', `trash-restore' or >> something along those lines. > > It's GPL3 FOSS. You can do pretty-much with it what you want. Indeed. As soon as it goes into GNU ELPA, anyone could in principle merge the functionality into Emacs. But I had hoped that you would be interested in writing the patches to do this. You seem well placed to do it, since you are likely to have studied this recently and know the domain. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:00 ` Stefan Kangas @ 2020-11-06 9:34 ` Boruch Baum 0 siblings, 0 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-06 9:34 UTC (permalink / raw) To: Stefan Kangas; +Cc: Jean Louis, Emacs-Devel List On 2020-11-05 07:00, Stefan Kangas wrote: > Indeed. As soon as it goes into GNU ELPA, anyone could in principle > merge the functionality into Emacs. > > But I had hoped that you would be interested in writing the patches to > do this. You seem well placed to do it, since you are likely to have > studied this recently and know the domain. At this point it's all theoretical. The ELPA+merge idea was Stefan Monnier's, but he admitted that he didn't have a notion what parts should be merged and that he doesn't even use dired, so there doesn't yet seem to be any beginning of a plan or roadmap or even agreed-upon wish-list or actual user-base (though the package has started a lot of discussion on this list, none of it had been expressions of enthusiasm for actually using it). Outside the list, I've only otherwise mentioned it on the emacs-w3m list, and the only positive feed-back I've received is about eight people 'starring' the repository on github. I've no idea how many people tried it and rejected it, or liked it but didn't 'star' it. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 10:43 Friendlier dired experience [CODE INCLUDED] Boruch Baum 2020-11-03 10:54 ` Jean Louis 2020-11-03 15:10 ` Stefan Kangas @ 2020-11-04 18:07 ` Stefan Monnier 2020-11-04 18:32 ` Boruch Baum 2020-11-09 22:45 ` Mathias Dahl 3 siblings, 1 reply; 94+ messages in thread From: Stefan Monnier @ 2020-11-04 18:07 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List > I've just published an elisp package that extends and configures > dired-mode with features that many people have come to take for granted > in other programming languages. For the source code and the detailed > description, see: http://github.com/Boruch-Baum/emacs-diredc AFAICT, this is a mix of: - extensions to dired-mode itself (along the lines of what is done also in dired-x, and indeed partly building on dired-x). - a layer on top of dired that provides a UI similar to that of midnight-commander (i.e. two dired buffers displayed on side-by-side windows and treated as "a unit"). I'm curious how the second aspect compares to other midnight-commander clones in Emacs like the old `mc.el` and `sunrise-commander.el`. How 'bout we add it to GNU ELPA and then we work on integrating some of the code into Dired (i.e. the part that makes sense within Dired itself)? Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 18:07 ` Stefan Monnier @ 2020-11-04 18:32 ` Boruch Baum 2020-11-04 18:55 ` Stefan Monnier 0 siblings, 1 reply; 94+ messages in thread From: Boruch Baum @ 2020-11-04 18:32 UTC (permalink / raw) To: Stefan Monnier; +Cc: Emacs-Devel List On 2020-11-04 13:07, Stefan Monnier wrote: > How 'bout we add it to GNU ELPA and then we work on integrating some of > the code into Dired I'm fine with integrating parts of it into dired, but I wouldn't want it done in a way that breaks the stand-alone package. In other words, the feature super-set (updated) copy from the github upstream should always continue to work. > (i.e. the part that makes sense within Dired itself)? What part do you have in mind? -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 18:32 ` Boruch Baum @ 2020-11-04 18:55 ` Stefan Monnier 2020-11-05 8:05 ` Arthur Miller 0 siblings, 1 reply; 94+ messages in thread From: Stefan Monnier @ 2020-11-04 18:55 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List >> How 'bout we add it to GNU ELPA and then we work on integrating some of >> the code into Dired > I'm fine with integrating parts of it into dired, but I wouldn't want it > done in a way that breaks the stand-alone package. In other words, the > feature super-set (updated) copy from the github upstream should always > continue to work. Of course. This said, in many/most cases, integration requires changes which end up having some impact on the actual user-visible functionality. Whether they're considered as "breaking" or not is often a question of point of view. >> (i.e. the part that makes sense within Dired itself)? > What part do you have in mind? I don't have any in mind: I use neither Dired nor anything like midnight-commander (I do my file-management with zsh, and I don't even do that within Emacs), so I'm not the best person to make such calls. But clearly, some parts of diredc.el don't make sense within Dired because they're specific to the dual-pane setup, whereas Dired is a single-buffer mode, meant to be independent from window layout. Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-04 18:55 ` Stefan Monnier @ 2020-11-05 8:05 ` Arthur Miller 2020-11-05 9:22 ` Boruch Baum ` (3 more replies) 0 siblings, 4 replies; 94+ messages in thread From: Arthur Miller @ 2020-11-05 8:05 UTC (permalink / raw) To: Stefan Monnier; +Cc: Boruch Baum, Emacs-Devel List Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> How 'bout we add it to GNU ELPA and then we work on integrating some of >>> the code into Dired >> I'm fine with integrating parts of it into dired, but I wouldn't want it >> done in a way that breaks the stand-alone package. In other words, the >> feature super-set (updated) copy from the github upstream should always >> continue to work. > > Of course. This said, in many/most cases, integration requires changes > which end up having some impact on the actual user-visible > functionality. Whether they're considered as "breaking" or not is often > a question of point of view. > >>> (i.e. the part that makes sense within Dired itself)? >> What part do you have in mind? > > I don't have any in mind: I use neither Dired nor anything like > midnight-commander (I do my file-management with zsh, and I don't even > do that within Emacs), so I'm not the best person to make such calls. > > But clearly, some parts of diredc.el don't make sense within Dired > because they're specific to the dual-pane setup, whereas Dired is > a single-buffer mode, meant to be independent from window layout. > > > Stefan I use Emacs for almost all interaction with the computer, and I do manage my files with Helm + Dired, so I am always interested to see something new. I have skimmed through diredc (readme + code) but I haven't tried it. As far as I see, the only part I see worth putting directly in dired is maybe as you pointed out trash management. I don't use Sunrise nor any other `comander' Ranger clone; it is just not needed. I don't use trash folder either for that matter, but I can see there is not much of trash handling offered via Emacs, so maybe some users would prefer to have such functionality. Unfortunately for some features, as I read the diredc code; I would probably be annoyed if they were in dired. Particularly if dired asked yes/no if I really wish to bookmark a place and if I wish to start diredc. If user bothered to press a 4-letter combination, then I think we can be sure the user wish to create that bookmark; it is really unnecessary to ask if I am really sure :-). Just my opinion. Extra colours for chmod: we have it already in Dired+, it looks like a rainbow, really not very user friendly to give them each different colour (sorry Drew). History handling: can it not be handled by recentf/winner modes already? I am not particulary against custom history handling, but recentf already does it and winner has undo/redo stack maybe they can be reused? Ther is a thing I would like to have in Dired, but I haven't got time myself to look at it: utilisation of new Tab thing. Since tabs seem to act more like workspaces I would like to see them serialized and bookmarked so we could use them with Dired. However diredc seems to do it's own thing instead of reusing the functionality of tabs. Other functionality I would like to see is some from dired-hacks: toggle and filters. For me Helm does the most; dired is needed just sometimes, so it is nice if we can keep it lightweight. That said it does not mean that Emacs (or Elpa) can't include a file manager, I would just prefer to keep it separate from Dired. Just my opinion as a daily user of Emacs for file managment. I hope that Boruch does not take it as personal critique, I don't mean it as such. These are just my subjective opinions, so take them as such. It is nice you experiment and play with Dired and file management. Best regards /a ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 8:05 ` Arthur Miller @ 2020-11-05 9:22 ` Boruch Baum 2020-11-05 12:54 ` Arthur Miller 2020-11-05 14:21 ` Stefan Monnier 2020-11-05 9:56 ` Jean Louis ` (2 subsequent siblings) 3 siblings, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-05 9:22 UTC (permalink / raw) To: Arthur Miller; +Cc: Stefan Monnier, Emacs-Devel List On 2020-11-05 09:05, Arthur Miller wrote: > I hope that Boruch does not take it as personal critique Not at all. It was a good read; here's some feedback. > I don't use Sunrise My memory from looking at it years ago was that it was non-functioning abandon-ware. > Unfortunately for some features, as I read the diredc code; I would > probably be annoyed if they were in dired. Particularly if dired asked > yes/no if I really wish to bookmark a place and if I wish to start > diredc. If user bothered to press a 4-letter combination, then I think > we can be sure the user wish to create that bookmark; it is really > unnecessary to ask if I am really sure :-). Just my opinion. You read that snippet of code incorrectly. No such prompt. > History handling: can it not be handled by recentf/winner modes already? I've been a long-time happy user of winner, and found the answer to be no. Winner operates on all windows of a frame, not just the current dired buffer. Thus, if you had in your window configuration history temporary quick-shell buffer-windows or quick-file-view buffer-windows, they would pop in and out if you were using winner-undo to navigate sequentially in your dired history. Also, does winner-mode have a quick-jump to a specific history element? > I am not particulary against custom history handling, but recentf > already does it and winner has undo/redo stack maybe they can be reused? When I had tried recentf years ago, I was disappointed that its only interface was the ncurses menu. Is that still the case? In any event, a recentf menu will include ALL recently visited items, so that list will be a mixture of emacs files and dired buffers and who knows what else; a user would need to visually filter out the path-names ending with a file from those ending with a directory ... > Other functionality I would like to see is some from dired-hacks: toggle > and filters. What do you mean by "toggles and filters"? -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 9:22 ` Boruch Baum @ 2020-11-05 12:54 ` Arthur Miller 2020-11-05 13:34 ` Jean Louis ` (2 more replies) 2020-11-05 14:21 ` Stefan Monnier 1 sibling, 3 replies; 94+ messages in thread From: Arthur Miller @ 2020-11-05 12:54 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Monnier, Emacs-Devel List [-- Attachment #1: diredc-bookmark.png --] [-- Type: image/png, Size: 35513 bytes --] [-- Attachment #2: Type: text/plain, Size: 5049 bytes --] Boruch Baum <boruch_baum@gmx.com> writes: > On 2020-11-05 09:05, Arthur Miller wrote: >> I hope that Boruch does not take it as personal critique > > Not at all. It was a good read; here's some feedback. > >> I don't use Sunrise > > My memory from looking at it years ago was that it was non-functioning > abandon-ware. No idea if it is abandon-ware; I don't use it; I used some year ago and it was quite competent. Looking at github, it seems like last commit was ~6 month ago: https://github.com/sunrise-commander/sunrise-commander >> Unfortunately for some features, as I read the diredc code; I would >> probably be annoyed if they were in dired. Particularly if dired asked >> yes/no if I really wish to bookmark a place and if I wish to start >> diredc. If user bothered to press a 4-letter combination, then I think >> we can be sure the user wish to create that bookmark; it is really >> unnecessary to ask if I am really sure :-). Just my opinion. > > You read that snippet of code incorrectly. No such prompt. Ok, sure I was just skimming and saw those yes/no questions. I have downloaded and tested it now and her are few questions: How do you do bookmarks? I just bookmarked a folder with your shortcut C-c b a; and the bookmark does not show in bookmarks list. furthermore, when I use C-c b j; it seems to show some byte code, you can see it in the attached screenshot. Another quick impression: opening new frame in the bacgkround is not really the best feel. It didn't got neither raised nor focused. Also my original frame got resized and centered on the screen, and diredc took place of the original frame (but in background and not focused). The dual pane wasn't so resilient; at least not to Gnus (nothing is :-)). After switching to Gnus and back I was left with a single window. I am not sure if I understand the docs correctly: is it supposed to restore window layout and buffers automatically or do I need to take an action? It didn't happened automatically so I tried diredc-restore. I was than ask a question to choose between starting a new or choosing two panes or something else. I choose two-pane, but I wasn't left with same buffers after it executed. After I switched to the mail to continue writing it again switched to just one window. When I switched back it was still just one window. I then tried running again diredc (C-x 5 d); it just moved my cursor back to old frame. Running again diredc moved cursor back to second frame but it never switched back to dual pane nor to original buffers I had in diredc. I am sure I am using it wrong, but I don't see in the accompanying docs how to switch between buffers and go back to dual-pane and original buffers. In connection to this, looking at those predefined variables; I am not sure I find it really useful; you can see below what diredc exported when I run it for the first time: export d1="~/repos/emacs-related/emacs-diredc/" d2="" f1="~/repos/emacs-related/emacs-diredc/README.md" f2="" t1="(/home/arthur/repos/emacs-related/emacs-diredc/README.md)" t2="nil" sh-5.0$ sh-5.0$ sh-5.0$ Documentation says they are useful dired values - but in which way are they useful? Do I really need to export a shortcut to a README file if I am already using Emacs? Am I supposed to open current file from the shell in new Eamcs instance, or what was the intended workflow? Sorry if I am obnoxious; these are just questions I was left with after tryimg it. Something positive: I like your C-c C-k and '; I'll steal it for my own hack of term-toggle, thanks! :-). I have eshell on F2 and term on F1, but ' was really nice; I think I'll use it instead of F2. >> History handling: can it not be handled by recentf/winner modes already? > > I've been a long-time happy user of winner, and found the answer to be > no. Winner operates on all windows of a frame, not just the current > dired buffer. Thus, if you had in your window configuration history > temporary quick-shell buffer-windows or quick-file-view buffer-windows, > they would pop in and out if you were using winner-undo to navigate > sequentially in your dired history. Also, does winner-mode have a > quick-jump to a specific history element? > >> I am not particulary against custom history handling, but recentf >> already does it and winner has undo/redo stack maybe they can be reused? > > When I had tried recentf years ago, I was disappointed that its only > interface was the ncurses menu. Is that still the case? In any event, > a recentf menu will include ALL recently visited items, so that list > will be a mixture of emacs files and dired buffers and who knows what > else; a user would need to visually filter out the path-names ending > with a file from those ending with a directory ... We have Helm + fuzzy search to filter those out ... >> Other functionality I would like to see is some from dired-hacks: toggle >> and filters. > > What do you mean by "toggles and filters"? https://github.com/Fuco1/dired-hacks#dired-subtree https://github.com/Fuco1/dired-hacks#dired-filter ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 12:54 ` Arthur Miller @ 2020-11-05 13:34 ` Jean Louis 2020-11-05 14:38 ` Boruch Baum 2020-11-06 9:42 ` Boruch Baum 2 siblings, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-05 13:34 UTC (permalink / raw) To: Arthur Miller; +Cc: Emacs-Devel List, Boruch Baum, Stefan Monnier * Arthur Miller <arthur.miller@live.com> [2020-11-05 15:55]: > > Boruch Baum <boruch_baum@gmx.com> writes: > > > On 2020-11-05 09:05, Arthur Miller wrote: > >> I hope that Boruch does not take it as personal critique > > > > Not at all. It was a good read; here's some feedback. > > > >> I don't use Sunrise > > > > My memory from looking at it years ago was that it was non-functioning > > abandon-ware. > No idea if it is abandon-ware; I don't use it; I used some year ago and it > was quite competent. Sunrise commander uses mnay built-in Emacs functions. Except of cl deprecated library there are no compiler warnings. All features of Sunrise Command immitate well Midnight Commander. Function keys are well set for mc key bindings. M-y and M-u go back and forward in history. It has good file name and marked file names expansions in eshell or term how is expected for users of Midnight Commander. There are good extensions as well. It is useful for users switching from `mc' to Emacs somehow, or those who are used to type of proprietary Norton Commander from non-free operating systems. It is already history. Well written software is not abandon ware for sole reason that does not have many recent commits, in fact it could speak for the quality of software. I like that Emacs stuff is displayed on Emacs Wiki rather than scattered all around Internet on non-free Github. Here it is: https://www.emacswiki.org/emacs/Sunrise_Commander > Looking at github, it seems like last commit was ~6 month ago: > > https://github.com/sunrise-commander/sunrise-commander Better one in 6 months than 50 in one week. Files are most important for users and file manager extensions shall be very reliable. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 12:54 ` Arthur Miller 2020-11-05 13:34 ` Jean Louis @ 2020-11-05 14:38 ` Boruch Baum 2020-11-05 15:05 ` Stefan Monnier 2020-11-05 15:29 ` Arthur Miller 2020-11-06 9:42 ` Boruch Baum 2 siblings, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-05 14:38 UTC (permalink / raw) To: Arthur Miller; +Cc: Stefan Monnier, Emacs-Devel List On 2020-11-05 13:54, Arthur Miller wrote: > How do you do bookmarks? I just bookmarked a folder with your shortcut > C-c b a; and the bookmark does not show in bookmarks list. diredc-bookmark-* doesn't share the generic emacs bookmark list. The consideration was not mix directory locations with locations within files. I know that emacs bookmarks works on directories and opens a dired buffer for them, but it made no sense to me mix the two forms > furthermore, when I use C-c b j; it seems to show some byte code, you > can see it in the attached screenshot. I can't reproduce that. Your screenshot seems to indicate you were using helm-something; is that correct? If so: 1) what helm set-up and command (I don't use helm); 2) what happens when you don't use helm; 3) what were you bookmarking. > Another quick impression: opening new frame in the bacgkround is not > really the best feel. It didn't got neither raised nor focused. Oops. Fixed, but before I push the commit, I have a question: As a generic setting, should I have the dired frame start out maximized or with some other specific orientation? At issue is that I'm not a GUI emacs user, so all my development and testing has been done for emacs -nw. I've just now tested the code with GUI emacs and reproduced the issue, but I see that neither my default GUI emacs frame nor my initial diredc frame start maximized and I have no idea what a normal GUI user's expectation is. > Also my original frame got resized and centered on the screen, and > diredc took place of the original frame (but in background and not focused). That I'm not reproducing, but the pending commit may fix it anyway. You know, the change is trivial, so you might want to just manually make the change. Line 2201 goes from: (make-frame-command) to (select-frame (make-frame-command)) I'm just being stingy on commits and also sneak in whatever other frame config is necessary / desirable, (eg. maximize). > The dual pane wasn't so resilient; at least not to Gnus (nothing is > :-)). *I'm* certainly not resilient to gnus. Never ever have I gotten it to work. > After switching to Gnus and back I was left with a single window. Question #1: How did you 'switch' back and forth? Did you use S-F11? What other method(s)? > I am not sure if I understand the docs correctly: is it supposed to > restore window layout and buffers automatically Yes. If you toggle in and out with M-x diredc, bound by default to S-F11. > or do I need to take an action? It didn't happened automatically so I > tried diredc-restore. You mean diredc-recover? I'll presume yes. > I was than ask a question to choose between starting a new or choosing > two panes or something else. I choose two-pane, but I wasn't left with > same buffers after it executed. That's strange and I'd like to be able to reproduce it. If you mean that the result was that one or more of the dired buffers was unexpected, that should never happen. If your emacs had a total of two dired buffers open, they would be used. If your emacs had a total of more than two, then you would have been prompted to choose. What may have happened was that you had killed a dired buffer. In that case, diredc *would* try to intelligently select one, either your $HOME or what it thinks is your current emacs directory. > After I switched to the mail to continue writing it again switched to > just one window. When I switched back it was still just one window. I > then tried running again diredc (C-x 5 d); it just moved my cursor back > to old frame. Running again diredc moved cursor back to second frame but > it never switched back to dual pane nor to original buffers I had in > diredc. Once diredc is started, it respects a user's desire if it thinks the user insists on a custom window configuration for the diredc frame. The way to restore the default is to use diredc-recover (I suppose you could also perform diredc-quit followed by diredc again, but that's so 20th century). > I am sure I am using it wrong, but I don't see in the accompanying > docs how to switch between buffers and go back to dual-pane and > original buffers. If when you wrote above diredc-restore, you meant diredc-recover, that IS the correct way to return a window / buffer configuration that had gotten corrupted. It should always give you a dual pane, and if two dired buffers exist, they will be used. I'd like to be able to reproduce your case, but it may just be that you didn't realize that you had killed a dired buffer, and then didn't perform the recover. > In connection to this, looking at those predefined variables; I am not > sure I find it really useful; > ... > Documentation says they are useful dired values - but in which way are they > useful? Do I really need to export a shortcut to a README file if I am already > using Emacs? Am I supposed to open current file from the shell in new > Eamcs instance No, of course not. > or what was the intended workflow? You want to perform some generic set of shell operations relating to one or both directories displayed. The possibilities and opportunities really are endless, but for starters: You may find yourself comparing two directories and want to tar three files from one and five files from another into a single tar at a third location (not as unusual as it may sound at first). You mark the files in each dired buffer, open a shell, and use the $t1 and $t2 shell variables on your tar command line. As a second theoretical, maybe you want to perform a paste (unix command-line paste, not MSwin concept) of files from two directories - select them and use $f1 $f2. etc. etc. and so forth. > Sorry if I am obnoxious; these are just questions I was left with after > tryimg it. You don't. But people often say I sound obnoxious, so maybe I'm the wrong person to judge. > >> Other functionality I would like to see is some from dired-hacks: toggle > >> and filters. > > > > What do you mean by "toggles and filters"? > https://github.com/Fuco1/dired-hacks#dired-subtree > https://github.com/Fuco1/dired-hacks#dired-filter I'll take a look. But later. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 14:38 ` Boruch Baum @ 2020-11-05 15:05 ` Stefan Monnier 2020-11-05 15:34 ` Arthur Miller 2020-11-06 9:15 ` Boruch Baum 2020-11-05 15:29 ` Arthur Miller 1 sibling, 2 replies; 94+ messages in thread From: Stefan Monnier @ 2020-11-05 15:05 UTC (permalink / raw) To: Boruch Baum; +Cc: Arthur Miller, Emacs-Devel List >> How do you do bookmarks? I just bookmarked a folder with your shortcut >> C-c b a; and the bookmark does not show in bookmarks list. > diredc-bookmark-* doesn't share the generic emacs bookmark list. The > consideration was not mix directory locations with locations within > files. I know that emacs bookmarks works on directories and opens a > dired buffer for them, but it made no sense to me mix the two forms Do you think it could make sense to keep diredc bookmarks in the normal bookmarks by arranging for the normal "directory bookmarks" to be "hijacked" by diredc (i.e. not to open a new dired buffer but to open the dir within diredc) when called from diredc? You'd still have the downside that the general bookmarks include all the other non-directory bookmarks, so maybe it's not a good idea anyway. [ I'm not using bookmarks very much, so my intuition here is poor. ] Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:05 ` Stefan Monnier @ 2020-11-05 15:34 ` Arthur Miller 2020-11-05 15:45 ` Stefan Monnier 2020-11-06 9:15 ` Boruch Baum 1 sibling, 1 reply; 94+ messages in thread From: Arthur Miller @ 2020-11-05 15:34 UTC (permalink / raw) To: Stefan Monnier; +Cc: Boruch Baum, Emacs-Devel List Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> How do you do bookmarks? I just bookmarked a folder with your shortcut >>> C-c b a; and the bookmark does not show in bookmarks list. >> diredc-bookmark-* doesn't share the generic emacs bookmark list. The >> consideration was not mix directory locations with locations within >> files. I know that emacs bookmarks works on directories and opens a >> dired buffer for them, but it made no sense to me mix the two forms > > Do you think it could make sense to keep diredc bookmarks in the normal > bookmarks by arranging for the normal "directory bookmarks" to be > "hijacked" by diredc (i.e. not to open a new dired buffer but to open > the dir within diredc) when called from diredc? > > You'd still have the downside that the general bookmarks include all the > other non-directory bookmarks, so maybe it's not a good idea anyway. > [ I'm not using bookmarks very much, so my intuition here is poor. ] > > > Stefan Why would that be a downside? ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:34 ` Arthur Miller @ 2020-11-05 15:45 ` Stefan Monnier 2020-11-05 16:18 ` Adam Porter ` (2 more replies) 0 siblings, 3 replies; 94+ messages in thread From: Stefan Monnier @ 2020-11-05 15:45 UTC (permalink / raw) To: Arthur Miller; +Cc: Boruch Baum, Emacs-Devel List >> You'd still have the downside that the general bookmarks include all the >> other non-directory bookmarks, so maybe it's not a good idea anyway. >> [ I'm not using bookmarks very much, so my intuition here is poor. ] > Why would that be a downside? That you can have name conflicts between the diredc and other bookmarks, and that when selecting a diredc bookmark you'd have to see all those other bookmarks which might make it more timeconsuming to find the bookmark you're after. For the first problem, I don't have a good solution. For the second, I think this actually hints at a need for the generic bookmark-selection functionality to offer a way to first select a *type* of bookmark and only then pick a name among the remaining candidates. [ And of course, in the absence of such generic support in bookmark.el, diredc could do it on its own by offer a command which pre-filters the list of bookmarks to only include those which refer to directories. ] Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:45 ` Stefan Monnier @ 2020-11-05 16:18 ` Adam Porter 2020-11-05 17:02 ` Stefan Monnier 2020-11-05 17:08 ` Drew Adams 2020-11-05 16:19 ` Arthur Miller 2020-11-05 17:08 ` Drew Adams 2 siblings, 2 replies; 94+ messages in thread From: Adam Porter @ 2020-11-05 16:18 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> You'd still have the downside that the general bookmarks include all the >>> other non-directory bookmarks, so maybe it's not a good idea anyway. >>> [ I'm not using bookmarks very much, so my intuition here is poor. ] >> Why would that be a downside? > > That you can have name conflicts between the diredc and other bookmarks, > and that when selecting a diredc bookmark you'd have to see all those > other bookmarks which might make it more timeconsuming to find the > bookmark you're after. > > For the first problem, I don't have a good solution. > For the second, I think this actually hints at a need for the generic > bookmark-selection functionality to offer a way to first select a *type* > of bookmark and only then pick a name among the remaining candidates. > > [ And of course, in the absence of such generic support in bookmark.el, > diredc could do it on its own by offer a command which pre-filters > the list of bookmarks to only include those which refer to > directories. ] Some recent work I've done in Burly[0] touches on this. Because Burly uses its own bookmark handler function, it was easy to write a command that offers only bookmarks created with Burly by filtering them on the bookmark records' handler value.[1] However, when I tried to write a bookmark-listing command to display only Burly's bookmarks, it wasn't as easy to re-use existing functionality. I tried to re-use the list-bookmarks command by binding bookmarks-alist to a filtered alist, and that worked. The problem is that re-displaying the bookmarks list (e.g. after deleting a bookmark) shows the non-filtered bookmarks list. I then experimented with using buffer-local function advice in the list-bookmarks buffer to cause it to use the filtered bookmarks list when re-displaying, but it didn't seem to work. And even if it had, it would have been very hacky, so it didn't seem like a good solution. An idea I had was for the list-bookmarks command to use an optional filter function to filter the bookmarks-alist before displaying them, so the filter could persist after using commands to manipulate bookmarks.[2] (Note that the global value of bookmarks-alist would remain unchanged so that saving the bookmarks to disk still saves all bookmarks, not just the filtered ones.) Frankly, I wonder if list-bookmarks ought to be rewritten to use, e.g. tabulated-list-mode instead of its bespoke code. (Although I'm guessing that would break much of Drew's Bookmarks+ library...) 0: https://github.com/alphapapa/burly.el 1: https://github.com/alphapapa/burly.el/blob/e2ab1b2526ce84ad7dd17bf37c0079785619bc8e/burly.el#L156 2: https://github.com/alphapapa/burly.el/issues/14#issuecomment-719803053 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 16:18 ` Adam Porter @ 2020-11-05 17:02 ` Stefan Monnier 2020-11-05 17:09 ` Drew Adams 2020-11-05 17:08 ` Drew Adams 1 sibling, 1 reply; 94+ messages in thread From: Stefan Monnier @ 2020-11-05 17:02 UTC (permalink / raw) To: Adam Porter; +Cc: emacs-devel > Frankly, I wonder if list-bookmarks ought to be rewritten to use, > e.g. tabulated-list-mode instead of its bespoke code. (Although I'm commit 61e51fee9ca353c1cea4b68ef7225f374fee9839 Author: Stefan Kangas <stefan@marxist.se> Date: Sat Oct 17 17:56:44 2020 +0200 Base bookmark-bmenu-mode on tabulated-list-mode (Bug#39293) -- Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-05 17:02 ` Stefan Monnier @ 2020-11-05 17:09 ` Drew Adams 0 siblings, 0 replies; 94+ messages in thread From: Drew Adams @ 2020-11-05 17:09 UTC (permalink / raw) To: Stefan Monnier, Adam Porter; +Cc: emacs-devel >> Frankly, I wonder if list-bookmarks ought to be rewritten to use, >> e.g. tabulated-list-mode instead of its bespoke code. (Although I'm >> guessing that would break much of Drew's Bookmarks+ library...) > > commit 61e51fee9ca353c1cea4b68ef7225f374fee9839 > Author: Stefan Kangas <stefan@marxist.se> > Date: Sat Oct 17 17:56:44 2020 +0200 > > Base bookmark-bmenu-mode on tabulated-list-mode (Bug#39293) Yes, too bad. ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-05 16:18 ` Adam Porter 2020-11-05 17:02 ` Stefan Monnier @ 2020-11-05 17:08 ` Drew Adams 1 sibling, 0 replies; 94+ messages in thread From: Drew Adams @ 2020-11-05 17:08 UTC (permalink / raw) To: Adam Porter, emacs-devel > However, when I tried to write a bookmark-listing command to display > only Burly's bookmarks, it wasn't as easy to re-use existing > functionality. I tried to re-use the list-bookmarks command by binding > bookmarks-alist to a filtered alist, and that worked. > > The problem is that re-displaying the bookmarks list (e.g. after > deleting a bookmark) shows the non-filtered bookmarks list. I then > experimented with using buffer-local function advice in the > list-bookmarks buffer to cause it to use the filtered bookmarks list > when re-displaying, but it didn't seem to work. And even if it had, it > would have been very hacky, so it didn't seem like a good solution. > > An idea I had was for the list-bookmarks command to use an optional > filter function to filter the bookmarks-alist before displaying them, so > the filter could persist after using commands to manipulate > bookmarks.[2] (Note that the global value of bookmarks-alist would > remain unchanged so that saving the bookmarks to disk still saves all > bookmarks, not just the filtered ones.) This all already done, in Bookmark+. You can filter in any number of ways. And by default the filtering (and other state of the bookmark-list display) persist, until you change it. And you can even bookmark the bookmark-list display state. Jumping to such a bookmark restores the display. > Frankly, I wonder if list-bookmarks ought to be rewritten to use, > e.g. tabulated-list-mode instead of its bespoke code. Absolutely not. Tabulated-List mode is IMO a rudimentary, fragile, brute hammer. It takes over a complete buffer (you can't even add a heading or a paragraph, outside the table). It offers little, and prevents much. Dired, bookmark-list display, and most other seemingly tabular lists should stay away from it. Such UIs can be quite sophisticated, offering a _lot_ more than just tabular display with only simplistic sorting. Don't go by what you see at first sight ("Oh, hey, there's a tabular list here..."). > (Although I'm guessing that would break much > of Drew's Bookmarks+ library...) Yes. Vanilla Emacs has apparently gone this route recently, against my requests/advice. As a result I'll no doubt have to include some of the previous vanilla bookmark.el code in Bookmark+. Alas. (On n'arrete pas le progres...) ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:45 ` Stefan Monnier 2020-11-05 16:18 ` Adam Porter @ 2020-11-05 16:19 ` Arthur Miller 2020-11-05 17:56 ` Jean Louis 2020-11-05 17:08 ` Drew Adams 2 siblings, 1 reply; 94+ messages in thread From: Arthur Miller @ 2020-11-05 16:19 UTC (permalink / raw) To: Stefan Monnier; +Cc: Boruch Baum, Emacs-Devel List Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> You'd still have the downside that the general bookmarks include all the >>> other non-directory bookmarks, so maybe it's not a good idea anyway. >>> [ I'm not using bookmarks very much, so my intuition here is poor. ] >> Why would that be a downside? > > That you can have name conflicts between the diredc and other bookmarks, I don't know; usually we are asked to give a name for the bookmark so user can choose a name that does not conflict. Otherwise some generic enumeration, or prefix/suffix etc could be used; but I don't think it would be needed if users is anyway giving it a name. > and that when selecting a diredc bookmark you'd have to see all those > other bookmarks which might make it more timeconsuming to find the > bookmark you're after. That is why we have completers like Helm. I never look at bookmarks. I use Helm which completes them with a key or two. To be honest I don't use bookmarks much either; I have just few places that would otherwise require me to navigate through path completion. > For the first problem, I don't have a good solution. We are asked for the bookmark name, so user choice? > For the second, I think this actually hints at a need for the generic > bookmark-selection functionality to offer a way to first select a *type* > of bookmark and only then pick a name among the remaining candidates. I think we already have that. Helm for example is one such. > [ And of course, in the absence of such generic support in bookmark.el, > diredc could do it on its own by offer a command which pre-filters > the list of bookmarks to only include those which refer to > directories. ] Drew's Bookmark+ can bookmark pretty much anything. I never really found use for it because I don't have such advanced needs, but it could probably be used with diredc. I am affraid I am not the best person to answer that, it is just my guess. Pesonally I think that searching is much better than bookmarking since search is cognitively less demanding (I'm getting old :-)). In principle I use bookmarks just as a shortcuts for some long paths, and I search those bookmarks with Helm. Bookmarks are one way of indexing things for searching. For that reason I wouldn't see it as a downside to mix all "kind" of bookmarks. A fuzzy search in a completion does not care much where data comes from; for ex in helm-mini I can fuzzy complete recentf list, bookmarks and list of live buffers all lumped into one source. It is subjective of course. I understand your consideration and the way you think as well as Boruch's consideration. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 16:19 ` Arthur Miller @ 2020-11-05 17:56 ` Jean Louis 0 siblings, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-05 17:56 UTC (permalink / raw) To: Arthur Miller; +Cc: Emacs-Devel List, Stefan Monnier, Boruch Baum * Arthur Miller <arthur.miller@live.com> [2020-11-05 19:20]: > That is why we have completers like Helm. I never look at bookmarks. I > use Helm which completes them with a key or two. > To be honest I don't use bookmarks much either; I have just few places > that would otherwise require me to navigate through path completion. For me bookmarks are very handy to jump to exact place or heading in a file like Org file that I can export particular Org section and transfer it into email, rather then find-file and opening file and searching for a section in text. Also it is very handy to remember remote paths for Tramp or deep paths on local file system. While I do use completion outside of Emacs, the built-in TAB completion within Emacs works also well and maybe with same number of keys. It is better bookmarks are together as it is more useful: - bookmark can bring user to specific file, specific line, in Dired, opened as directory, sometimes user wish to just fine the file, but not open it. - bookmark can bring user to open specific file, usually to specific place in the file > > For the second, I think this actually hints at a need for the generic > > bookmark-selection functionality to offer a way to first select a *type* > > of bookmark and only then pick a name among the remaining candidates. > I think we already have that. Helm for example is one such. Isn't selection of type of a bookmark somehow already automatic? Bookmarks and completion functions are separate. I always need to bookmark it and how I choose bookmark later depends of packages I am using. Helm is not in GNU ELPA and is huge as a package. That means that on number of computers when somebody manages many computers on remote places all over the world that remote package has to be installed, that takes time. Sometimes VPS is opened just for an hour or day to provide specific server or for testing. GNU ELPA packages are way easier to reach then modifying the archive list, downloading huge sometimes busy list of outside packages and choosing helm and bunch of other packages. ivy and counsel are in GNU ELPA and ivy-* and counsel-* functions can give great insight. ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:45 ` Stefan Monnier 2020-11-05 16:18 ` Adam Porter 2020-11-05 16:19 ` Arthur Miller @ 2020-11-05 17:08 ` Drew Adams 2 siblings, 0 replies; 94+ messages in thread From: Drew Adams @ 2020-11-05 17:08 UTC (permalink / raw) To: Stefan Monnier, Arthur Miller; +Cc: Boruch Baum, Emacs-Devel List > >> You'd still have the downside that the general bookmarks include all the > >> other non-directory bookmarks, so maybe it's not a good idea anyway. > >> [ I'm not using bookmarks very much, so my intuition here is poor. ] > > Why would that be a downside? > > That you can have name conflicts between the diredc and other bookmarks, > and that when selecting a diredc bookmark you'd have to see all those > other bookmarks which might make it more timeconsuming to find the > bookmark you're after. > > For the first problem, I don't have a good solution. > For the second, I think this actually hints at a need for the generic > bookmark-selection functionality to offer a way to first select a *type* > of bookmark and only then pick a name among the remaining candidates. This already exists, with Bookmark+. 1. There are jump commands based on types. For Dired bookmarks there are these (also C-x j 4 versions, for other-window): C-x j d Jump to a Dired bookmark. C-x j . d Jump to a Dired bookmark for the `default-directory'. And for an arbitrary type (what you suggested) there is C-x j : (`bmkp-jump-to-type'). From the doc: Jump to a bookmark of a given type. You are prompted for the type. Otherwise, this is the same as `bookmark-jump' - see that, in particular, for info about using a prefix argument. When prompted for the type, you can use completion against the known bookmark types (see `bmkp-types-alist'). Completion is lax, so you can also enter the name of a bookmark `handler' or `file-handler' function, without completion. Bookmarks with that entry value are then the jump candidates. [All bookmark jump commands are on prefix key `C-x j'. And `.' means "this" in bookmark keys. E.g., `C-x j . f' jumps to a file bookmark for the current (this) dir, `C-x j t .' is a prefix key for "this" bookmarks with various tag sets (e.g. jump to a file in this directory that has some, or all, of a set of tags you specify, or those matching a regexp).] 2. In the bookmark-list display (`C-x r l'), you can show only bookmarks of a given type, e.g. only Dired bookmarks. And you can mark by type or sort by type. (And you can do lots of things to/with the marked bookmarks, from search to nuts. ;-)) ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:05 ` Stefan Monnier 2020-11-05 15:34 ` Arthur Miller @ 2020-11-06 9:15 ` Boruch Baum 2020-11-06 14:14 ` Stefan Monnier 2020-11-06 16:28 ` Drew Adams 1 sibling, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-06 9:15 UTC (permalink / raw) To: Stefan Monnier; +Cc: Arthur Miller, Emacs-Devel List On 2020-11-05 10:05, Stefan Monnier wrote: > >> How do you do bookmarks? I just bookmarked a folder with your shortcut > >> C-c b a; and the bookmark does not show in bookmarks list. > > diredc-bookmark-* doesn't share the generic emacs bookmark list. The > > consideration was not mix directory locations with locations within > > files. I know that emacs bookmarks works on directories and opens a > > dired buffer for them, but it made no sense to me mix the two forms > > Do you think it could make sense to keep diredc bookmarks in the normal > bookmarks by arranging for the normal "directory bookmarks" to be > "hijacked" by diredc Hmm. I'm looking at the code for bookmarks and the variable bookmark-alist, and what I see is that directory bookmarks have a NIL handler, ie. function bookmark-default-handler, which runs function find-file-noselect, which is directly or indirectly called by "everyone", including diredc. So, I suppose a way to 'hijack' the bookmark process would be to advise around function bookmark-default-handler checking for the current buffer's major-mode, the state of variable diredc-mode and whether the bookmark is a directory. The ugly part of the 'hijack' is keeping the code of the advice in sync with the underlying function. > (i.e. not to open a new dired buffer but to open the dir within > diredc) The diredc interest isn't only in the buffer management; it also needs to maintain the history stack (it's not a simple push/pop, see there) for each new navigation. > when called from diredc? What about the case of diredc-mode being enabled, but the current-frame isn't the diredc frame (ie. the user is not currently using dired)? You wouldn't want to jump to that frame and open the directory in one of its windows? > You'd still have the downside that the general bookmarks include all the > other non-directory bookmarks, so maybe it's not a good idea anyway. Your intuition or my intuition doesn't matter. For me the mixing certainly is a huge down-side, but you've seen from some of the reaction to your post that people just do things their own way to their own preference. The filtering feature that Drew mentioned exists in bookmarks+ sounds good, in that it retains the standard emacs bookmark code and allows the completion candidates to be filtered. > [ I'm not using bookmarks very much, so my intuition here is poor. ] I use them a lot, but for the past many years only for temporary place marks. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-06 9:15 ` Boruch Baum @ 2020-11-06 14:14 ` Stefan Monnier 2020-11-06 16:28 ` Drew Adams 1 sibling, 0 replies; 94+ messages in thread From: Stefan Monnier @ 2020-11-06 14:14 UTC (permalink / raw) To: Boruch Baum; +Cc: Arthur Miller, Emacs-Devel List > Hmm. I'm looking at the code for bookmarks and the variable > bookmark-alist, and what I see is that directory bookmarks have a NIL > handler, ie. function bookmark-default-handler, which runs function > find-file-noselect, which is directly or indirectly called by > "everyone", including diredc. So, I suppose a way to 'hijack' the > bookmark process would be to advise around function > bookmark-default-handler checking for the current buffer's major-mode, > the state of variable diredc-mode and whether the bookmark is a > directory. Sounds about right, yes. > The ugly part of the 'hijack' is keeping the code of the > advice in sync with the underlying function. Your code doesn't need to depend on the code of `bookmark-default-handler`: It only depends on the name of that function, on the fact that it is called for the entries in which you're interested (and on the fact that it is called in exactly the same way as any other bookmark handler). So as far as advice go, it should be pretty stable. > What about the case of diredc-mode being enabled, but the current-frame > isn't the diredc frame (ie. the user is not currently using dired)? You > wouldn't want to jump to that frame and open the directory in one of its > windows? Your advice gets to decide which behavior you get. Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-06 9:15 ` Boruch Baum 2020-11-06 14:14 ` Stefan Monnier @ 2020-11-06 16:28 ` Drew Adams 2020-11-06 19:43 ` Adam Porter 2020-11-08 9:36 ` Boruch Baum 1 sibling, 2 replies; 94+ messages in thread From: Drew Adams @ 2020-11-06 16:28 UTC (permalink / raw) To: Boruch Baum, Stefan Monnier; +Cc: Arthur Miller, Emacs-Devel List > So, I suppose a way to 'hijack' the > bookmark process would be to advise around function > bookmark-default-handler checking for the current buffer's major-mode, > the state of variable diredc-mode and whether the bookmark is a > directory. The ugly part of the 'hijack' is keeping the code of the > advice in sync with the underlying function. Are you looking for a way to have your own bookmark-handling code do what you want with a vanilla bookmark for a directory? Is that it? Why not instead define your own bookmark handler for directory bookmarks? That's what bookmark handlers are for. FWIW - In Bookmark+ Dired buffers have their own bookmark handler. Bookmarking a Dired buffer records not just the directory location but also its `ls' switches, which files are marked, which subdirs are inserted, and which (sub)dirs are hidden. Jumping to a Dired bookmark restores all of that. IOW, Dired bookmarks are really Dired bookmarks. They don't just "invoke Dired in a default way on this directory". Dired gives you a particular kind of directory listing. That's what should be bookmarkable. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-06 16:28 ` Drew Adams @ 2020-11-06 19:43 ` Adam Porter 2020-11-06 20:24 ` Drew Adams 2020-11-08 9:36 ` Boruch Baum 1 sibling, 1 reply; 94+ messages in thread From: Adam Porter @ 2020-11-06 19:43 UTC (permalink / raw) To: emacs-devel Drew Adams <drew.adams@oracle.com> writes: > In Bookmark+ Dired buffers have their own bookmark handler. > Bookmarking a Dired buffer records not just the directory location but > also its `ls' switches, which files are marked, which subdirs are > inserted, and which (sub)dirs are hidden. Jumping to a Dired bookmark > restores all of that. Could that handler be upstreamed into Dired, please? It seems like that functionality ought to be built-in. ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-06 19:43 ` Adam Porter @ 2020-11-06 20:24 ` Drew Adams 2020-11-06 20:57 ` Adam Porter 0 siblings, 1 reply; 94+ messages in thread From: Drew Adams @ 2020-11-06 20:24 UTC (permalink / raw) To: Adam Porter, emacs-devel > > In Bookmark+ Dired buffers have their own bookmark handler. > > Bookmarking a Dired buffer records not just the directory location but > > also its `ls' switches, which files are marked, which subdirs are > > inserted, and which (sub)dirs are hidden. Jumping to a Dired bookmark > > restores all of that. > > Could that handler be upstreamed into Dired, please? It seems like that > functionality ought to be built-in. I've offered Bookmark+ several times to Emacs. And I've mentioned specific features even more times. They could be included or used as food for thought. Bookmark+ could replace vanilla bookmark.el (after incorporating some of its code). ___ My point to you here was that instead of advising the default handler you can define your own handler. That's why we have handlers, and why the default handler is, well, the default (handler). ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-06 20:24 ` Drew Adams @ 2020-11-06 20:57 ` Adam Porter 2020-11-07 0:30 ` Daniel Martín 0 siblings, 1 reply; 94+ messages in thread From: Adam Porter @ 2020-11-06 20:57 UTC (permalink / raw) To: emacs-devel Drew Adams <drew.adams@oracle.com> writes: > My point to you here was that instead of advising > the default handler you can define your own handler. > That's why we have handlers, and why the default > handler is, well, the default (handler). That wasn't me. >> > In Bookmark+ Dired buffers have their own bookmark handler. >> > Bookmarking a Dired buffer records not just the directory location but >> > also its `ls' switches, which files are marked, which subdirs are >> > inserted, and which (sub)dirs are hidden. Jumping to a Dired bookmark >> > restores all of that. >> >> Could that handler be upstreamed into Dired, please? It seems like that >> functionality ought to be built-in. > > I've offered Bookmark+ several times to Emacs. > And I've mentioned specific features even more > times. They could be included or used as food > for thought. To be clear, I'm asking if you would upstream that specific feature, the enhanced bookmark-make-record function and the bookmark handler for Dired buffers. It seems likely that those two functions would be easily upstreamed without much modification or objection, and all Dired users would benefit immediately. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-06 20:57 ` Adam Porter @ 2020-11-07 0:30 ` Daniel Martín 0 siblings, 0 replies; 94+ messages in thread From: Daniel Martín @ 2020-11-07 0:30 UTC (permalink / raw) To: Adam Porter; +Cc: emacs-devel Adam Porter <adam@alphapapa.net> writes: > > To be clear, I'm asking if you would upstream that specific feature, the > enhanced bookmark-make-record function and the bookmark handler for > Dired buffers. It seems likely that those two functions would be easily > upstreamed without much modification or objection, and all Dired users > would benefit immediately. I would also find those two bookmark functions very helpful if they were part of Emacs. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-06 16:28 ` Drew Adams 2020-11-06 19:43 ` Adam Porter @ 2020-11-08 9:36 ` Boruch Baum 2020-11-08 12:09 ` Arthur Miller 2020-11-08 16:48 ` Drew Adams 1 sibling, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-08 9:36 UTC (permalink / raw) To: Drew Adams; +Cc: Stefan Monnier, Arthur Miller, Emacs-Devel List On 2020-11-06 08:28, Drew Adams wrote: > > So, I suppose a way to 'hijack' the bookmark process would be to > > advise around function bookmark-default-handler checking for the > > current buffer's major-mode, the state of variable diredc-mode and > > whether the bookmark is a directory. The ugly part of the 'hijack' > > is keeping the code of the advice in sync with the underlying > > function. > > Are you looking for a way to have your own bookmark-handling code do > what you want with a vanilla bookmark for a directory? Is that it? Don't pin this on me, Drew. I was just responding to Stefan Monnier's proposal. > Why not instead define your own bookmark handler for directory > bookmarks? That's what bookmark handlers are for. Because a specific bookmark's handler is hard-coded into the data-structure when added, so which ever function creates the bookmark, be it ye olde function bookmark-set or the new kid diredc, that's the function that defines the handler to be used. > FWIW - > > In Bookmark+ Dired buffers have their own bookmark handler. That's very sensible and should be what function bookmark-set does instead of what it does now which is run through a set of conditionals. > Bookmarking a Dired buffer records not just the directory location > but also its `ls' switches, which files are marked, which subdirs are > inserted, and which (sub)dirs are hidden. Jumping to a Dired bookmark > restores all of that. That's why I never end up actually ever using your extensions, Drew. I think they're great and I enjoy reading them, but it always ends up intimidating me with a sense of overkill. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-08 9:36 ` Boruch Baum @ 2020-11-08 12:09 ` Arthur Miller 2020-11-08 12:40 ` Boruch Baum 2020-11-08 16:48 ` Drew Adams 1 sibling, 1 reply; 94+ messages in thread From: Arthur Miller @ 2020-11-08 12:09 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Monnier, Drew Adams, Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: > That's why I never end up actually ever using your extensions, Drew. I > think they're great and I enjoy reading them, but it always ends up > intimidating me with a sense of overkill. But if an extension is overkill, how is then creaing entire system instead not? :-) Sorry, I just can't resist to ask. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-08 12:09 ` Arthur Miller @ 2020-11-08 12:40 ` Boruch Baum 2020-11-08 13:37 ` Jean Louis 2020-11-08 13:45 ` Friendlier dired experience [CODE INCLUDED] Arthur Miller 0 siblings, 2 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-08 12:40 UTC (permalink / raw) To: Arthur Miller; +Cc: Stefan Monnier, Drew Adams, Emacs-Devel List On 2020-11-08 13:09, Arthur Miller wrote: > Boruch Baum <boruch_baum@gmx.com> writes: > > > That's why I never end up actually ever using your extensions, Drew. I > > think they're great and I enjoy reading them, but it always ends up > > intimidating me with a sense of overkill. > But if an extension is overkill, how is then creaing entire system > instead not? :-) Sorry, I just can't resist to ask. Fair. The diredc "system" is only a few lines of code, with nothing at all complicated (compare the data structures and compare the code to the emacs native bookmards). It does presume a 'segregationist' mind-set that I clearly have and many on this list don't, ie. it didn't occur to me that people find it desirable to mix up bookmark types. Even though I've been an emacs user for over 20 years, I was probably also heavily influenced by pretty much all other file managers, that do have a bookmark feature, only for directory places. I expect many people coming to emacs more recently might also have their expectations likewise influenced by all those other file managers. Now, if one can argue that it's *objectively* better to mix bookmarks, then one can clearly reject the diredc system, but once it becomes a subjective issue of expectation and personal preference, the diredc system isn't so easy to reject. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-08 12:40 ` Boruch Baum @ 2020-11-08 13:37 ` Jean Louis 2020-11-08 16:48 ` Drew Adams 2020-11-08 13:45 ` Friendlier dired experience [CODE INCLUDED] Arthur Miller 1 sibling, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-08 13:37 UTC (permalink / raw) To: Boruch Baum; +Cc: Drew Adams, Stefan Monnier, Arthur Miller, Emacs-Devel List * Boruch Baum <boruch_baum@gmx.com> [2020-11-08 15:45]: > On 2020-11-08 13:09, Arthur Miller wrote: > > Boruch Baum <boruch_baum@gmx.com> writes: > > > > > That's why I never end up actually ever using your extensions, Drew. I > > > think they're great and I enjoy reading them, but it always ends up > > > intimidating me with a sense of overkill. > > But if an extension is overkill, how is then creaing entire system > > instead not? :-) Sorry, I just can't resist to ask. > > Fair. The diredc "system" is only a few lines of code, with nothing at > all complicated (compare the data structures and compare the code to the > emacs native bookmards). It does presume a 'segregationist' mind-set > that I clearly have and many on this list don't, ie. it didn't occur to > me that people find it desirable to mix up bookmark types. My personal bookmark indexing system (Hyperscope) has 15892 bookmarks to various files, PDF, specific pages to PDFs, Dired directories, files, specific parts of videos for few different aspects of research, bookmarking things that are opened externally, videos are opened externally, PDF files could or need not be opened externally, external file manager can be opened at specific location, etc. It does not bother me that it is all "together" because one could see it as such, but I never even have been thinking of it. Cognition comes from your statements, yes I keep them together. This may give you different user viewpoint. I have launchers, or program launchers in that system, tasks and notes as well all inside of a bookmark, which I call hyperlink and it still does not bother me. There is even bookmark to bookmark or another bookmark which can be with different wordings that point out to first bookmark. Normally such bookmarks to bookmarks are stored in different set of bookmarks. Reason why it does not bother me is incremental narrowing completion and filtering. Within seconds I am at right place. > Even though I've been an emacs user for over 20 years, I was > probably also heavily influenced by pretty much all other file > managers, that do have a bookmark feature, only for directory > places. Me too, used many times bookmarks in Midnight Commander. But it was also often a problem to invoke the key binding as it was in conflict with Window Managers. > I expect many people coming to emacs more recently might also have > their expectations likewise influenced by all those other file > managers. Not so many will be coming from Midnight Commander as it is not replaceable by Emacs. There is one package I think helm gnome bookmarks or system bookmarks which is then taking bookmarks from XFCE, Gnome, KDE and displaying in Emacs. This shall give you idea how to enhance your package. It is exactly for reason to help people who used other file managers to find their dear bookmarks. > Now, if one can argue that it's *objectively* better to mix > bookmarks, then one can clearly reject the diredc system, but once > it becomes a subjective issue of expectation and personal > preference, the diredc system isn't so easy to reject. From view point of Emacs users and standard bookmark usage it is somehow better to leave people in their familiar key bindings and add or enhance Emacs bookmarks with outside package. That is why I am looking into those handlers Drew mentioned, but still did not find clear way to go. It is gluing two bookmark systems together. Then I can make defcustom to decide which types of bookmarks from my system would be included in the list C-x r b or maybe all (but I have to have filtering). From view point of myself, or from view point of other package developers like you it need not be together. My bookmarking system is not together and does not display in in list-bookmarks. I can access my bookmarks with different key bindings. The difference is basically in function and in keybindings. If there is good filtering option and search functions, there is no difference in accessibility. Only because I do not have functions yet (handlers) to glue to `list-bookmarks' for now it remains so. But I may glue the list from Emacs bookmarks into my system and display, filter, access or annotate it in a different manner. In that sense gluing systems together is unfullfiled desire. Comments on Bookmark+: there are new things to learn, for example non-existent bookmarks for which I did not even now they are non-existent, "no such buffer now", bookmarkes to sequence or variable list, function, there are annotations which should be in every bookmark system. Browsers mostly have it, some of them still don't. There are functions to export and import bookmarks, integrate. Thinking of knowledge management that is useful as one want whole set or groups or tagged bookmarks exported and to give such to other people. Bookmarks need not be only to location of files, directories, bookmarks are pointers and hyperlinks to information. https://en.wikipedia.org/wiki/Hyperlink In computing, a hyperlink, or simply a link, is a reference to data that the user can follow by clicking or tapping.[1] A hyperlink points to a whole document or to a specific element within a document. Hypertext is text with hyperlinks. The text that is linked from is called anchor text. A software system that is used for viewing and creating hypertext is a hypertext system, and to create a hyperlink is to hyperlink (or simply to link). A user following hyperlinks is said to navigate or browse the hypertext. Emacs bookmarks, bookmarks+ or diredc bookmarks or any similar system fit into that definition of hypertext systems. Merging them together or having unified search and filtering interface is useful. ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-08 13:37 ` Jean Louis @ 2020-11-08 16:48 ` Drew Adams 2020-11-08 18:26 ` on hyperlinks (bookmarks) Jean Louis 0 siblings, 1 reply; 94+ messages in thread From: Drew Adams @ 2020-11-08 16:48 UTC (permalink / raw) To: Jean Louis, Boruch Baum; +Cc: Stefan Monnier, Arthur Miller, Emacs-Devel List > > It does presume a 'segregationist' mind-set > > that I clearly have and many on this list don't, > > ie. it didn't occur to me that people find it > > desirable to mix up bookmark types. 1. If there are no specific handlers, so the default handler is always used, then there are, generally speaking, no bookmark types. The most-default default behavior is to treat all bookmarks the same. 2. Even when there are multiple bookmark types (and there are, even in `emacs -Q' - Info bookmarks, for instance), nothing _requires_ someone to "mix" bookmarks of different types in the same bookmark file. It's simple to have a bookmark file for Info bookmarks, another for EWW bookmarks, another for image bookmarks, another for man bookmarks, etc. IOW, it's not either/or: one hard-coded camp of "segregationists" vs another one of "integrationists". Anyone can use bookmarks either way: mix or match. ___ And bookmarks can not only be "hard-code" separated by type into different bookmark files. If you use Bookmark+ then you can mix them in a given bookmark file but still separate them wrt access, display, etc. A function can use bookmarks of any specific type, by using the function that returns only bookmarks of that type: `bmkp-<type-or-other-condition-name>-alist-only'. > > Now, if one can argue that it's *objectively* better to mix > > bookmarks, then one can clearly reject the diredc system, but once > > it becomes a subjective issue of expectation and personal > > preference, the diredc system isn't so easy to reject. From my point of view, it's objectively better to be able to mix _or_ keep separate. And that, in different ways, only one of which involves physical separation into different files. Just one opinion. The real point is that, even with vanilla Emacs, nothing obliges anyone to mix bookmarks of different types in the same file. > That is why I am looking into those handlers Drew > mentioned, but still did not find clear way to go. > It is gluing two bookmark systems together. If you mean using bookmark handlers, in general, then no, that has nothing particular to do with me or Bookmark+. That's basic to the vanilla-Emacs design of bookmarks, and it has been so since Day One. There's a default behavior, AND you can add bookmark types with their own behavior. > Comments on Bookmark+: there are new things to learn, for example > non-existent bookmarks for which I did not even now they are > non-existent, "no such buffer now", bookmarkes to sequence or variable > list, function, there are annotations which should be in every > bookmark system. Browsers mostly have it, some of them still don't. > > There are functions to export and import bookmarks, > integrate. Thinking of knowledge management that is useful as one want > whole set or groups or tagged bookmarks exported and to give such to > other people. Bookmarks need not be only to location of files, > directories, bookmarks are pointers and hyperlinks to information. > > https://urldefense.com/v3/__https://en.wikipedia.org/wiki/Hyperlink__;!!GqivP > Va7Brio!Nb65Jllzho8BuyZWUu8ZyRmcMOVajbyIWqIMGvH8zDbSbrgROMDMgX2pwMSVvVSL$ > > In computing, a hyperlink, or simply a link, is a reference to data > that the user can follow by clicking or tapping.[1] A hyperlink points > to a whole document or to a specific element within a > document. Hypertext is text with hyperlinks. The text that is linked > from is called anchor text. A software system that is used for viewing > and creating hypertext is a hypertext system, and to create a > hyperlink is to hyperlink (or simply to link). A user following > hyperlinks is said to navigate or browse the hypertext. > > Emacs bookmarks, bookmarks+ or diredc bookmarks or any similar system > fit into that definition of hypertext systems. Merging them together > or having unified search and filtering interface is useful. Yes, to all of that. The main characteristics of Emacs bookmarks are these, IMO: 1. They're persistent. (They don't have to be, but they can be.) 2. They can record nearly anything. 3. The info they store can be used in any way. In a nutshell, they're little, persistent bits of Lisp data. ^ permalink raw reply [flat|nested] 94+ messages in thread
* on hyperlinks (bookmarks) 2020-11-08 16:48 ` Drew Adams @ 2020-11-08 18:26 ` Jean Louis 2020-11-08 19:47 ` Drew Adams 0 siblings, 1 reply; 94+ messages in thread From: Jean Louis @ 2020-11-08 18:26 UTC (permalink / raw) To: Drew Adams; +Cc: Emacs-Devel List, Boruch Baum, Arthur Miller, Stefan Monnier * Drew Adams <drew.adams@oracle.com> [2020-11-08 19:51]: > > > It does presume a 'segregationist' mind-set > > > that I clearly have and many on this list don't, > > > ie. it didn't occur to me that people find it > > > desirable to mix up bookmark types. > > 1. If there are no specific handlers, so the default > handler is always used, then there are, generally > speaking, no bookmark types. The most-default > default behavior is to treat all bookmarks the same. > > 2. Even when there are multiple bookmark types (and > there are, even in `emacs -Q' - Info bookmarks, > for instance), nothing _requires_ someone to "mix" > bookmarks of different types in the same bookmark > file. And if I use database I am using types of bookmarks. Even if everything is "together" in display it need not be. I could decide to show only specific type of bookmarks. So they are together but it is up to me or user to get different display, they are together as collection in one database table and they can be always separate in displaying or using them. > then no, that has nothing particular to do with me > or Bookmark+. That's basic to the vanilla-Emacs > design of bookmarks, and it has been so since Day > One. There's a default behavior, AND you can add > bookmark types with their own behavior. That I understood. And I am trying to understand from bookmark+ how is that done. > > In computing, a hyperlink, or simply a link, is a reference to data > > that the user can follow by clicking or tapping.[1] A hyperlink points > > to a whole document or to a specific element within a > > document. Hypertext is text with hyperlinks. The text that is linked > > from is called anchor text. A software system that is used for viewing > > and creating hypertext is a hypertext system, and to create a > > hyperlink is to hyperlink (or simply to link). A user following > > hyperlinks is said to navigate or browse the hypertext. > > > > Emacs bookmarks, bookmarks+ or diredc bookmarks or any similar system > > fit into that definition of hypertext systems. Merging them together > > or having unified search and filtering interface is useful. > > Yes, to all of that. The main characteristics of > Emacs bookmarks are these, IMO: > > 1. They're persistent. > (They don't have to be, but they can be.) Yes, they are. Only they are designed for single users, not for collaborative sharing. Bookmark+ has export option. Files can be shared really, but that is not fast collaborative sharing. There are many things inside for me to learn and adopt good ideas I missed myself. In my Hyperscope system that I am preparing, hyperlinks (bookmarks) are shareable and global. That increases collective IQ. Engelbart: https://www.dougengelbart.org/content/view/172/130/ Users with access to database can then collaboratively share common knowledge and references. Imagine when we work in local area network, several users translating files and need references. New reference is added as bookmark and all other users have reference without updating or sharing files as reference is simply accessed through common database. It implies that some files are shared and accessible between users that bookmarks can access them. While Emacs is one interface to such bookmarks, there can be various other interfaces. > 2. They can record nearly anything. It would be good that every structured software or information provides clear way of finely grained referencing. Reference: https://www.dougengelbart.org/content/view/116/#7j Example from that page shows on the right side references 7j and 7k: THE BASIC "HYPER" CHARACTERISTICS - where embedded objects called links can point to any arbitrary object within the document, or within another document in a specified domain of documents - and the link can be actuated by a user or an automatic process to "go see what is at the other end," or "bring the other-end object to this location," or "execute the process identified at the other end." (These executable processes may control peripheral devices such as CD ROM, video-disk players, etc.) 7j HYPERDOCUMENT "BACK-LINK" CAPABILITY - when reading a hyperdocument online, a worker can utilize information about links from other objects within this or other hyperdocuments that point to this hyperdocument - or to designated objects or passages of interest in this hyperdocument. 7k That feature for every paragraph to get specific #name in WWW is I think not supported not even in Org mode, but it should be, especially in Org mode. Koutliner from GNU Hyperbole could have improved HTML export and easily provide the feature with back references. Many PDF readers do not support specific --goto-page --goto-line --goto-search options. If they do, they do not have a built in back-referencing system that user can simply press a key and obtain the book mark specification, something like <PAGE:12 LINE:32> but they should have. Programmers and document creators could improve collective IQ by providing back referencing features. Example of obvious lack of such feature is email reference ID. References are mostly used by software, and there are almost no functions for humans. I would like to be able, when reading email, to obtain the back link which I can then store somewhere as bookmark so that I can come back to that specific email, specific line or marked text in the email. Emails are very constant documents when on file system, perfect for bookmarking. But we do not have those features almost in no email client. For those who use Maildirs we can use direct jump to specific files on file system and read them as emails. For those using mboxes I think there are no such referencing possibilities in email readers. In Emacs we can get bookmark with {C-x r m RET} for the file at the point. It is useful and it just needs easy sharing. Emacs works on multi-user systems but is not designed for multi-users. To share bookmarks one would need either to copy bookmark files or provide some web page or transmit one by one. By sharing or having possibility to share such as through datbase or imaginable shared bookmark feature then every household or group or company or organization member can get bookmarks or hyperlinks assigned to his space or could enter into the collection of bookmarks that other related persons created. `eww' lacks function to bookmark specific page on specific line. I can of course add eww bookmark with `w' but that does not reference specific line or specific search on the page. If there are no #names it becomes impossible for many browsers to obtain finely grained reference or back link. For `eww' it would be relatively easy to do that feature and include it in {C-x r m RET} to be bookmarked by Emacs system, not eww system. ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: on hyperlinks (bookmarks) 2020-11-08 18:26 ` on hyperlinks (bookmarks) Jean Louis @ 2020-11-08 19:47 ` Drew Adams 2020-11-08 20:26 ` Jean Louis 0 siblings, 1 reply; 94+ messages in thread From: Drew Adams @ 2020-11-08 19:47 UTC (permalink / raw) To: Jean Louis; +Cc: Emacs-Devel List, Boruch Baum, Arthur Miller, Stefan Monnier > > main characteristics of Emacs bookmarks are these, IMO: > > > > 1. They're persistent. > > (They don't have to be, but they can be.) > > Yes, they are. Only they are designed for single users, not for > collaborative sharing. I can't speak to the general topic of collaborative sharing, but a bookmark file can of course be shared, just as any other file can be. And you can access a bookmark file as a remote file. And I imagine that a bookmark file could be accessible from, say, a repository URL, etc. Again, I'm no expert on such things - I don't use them, myself. But there's nothing special about a bookmark file, compared to other plain-text files. I guess I'm saying that I don't think Emacs bookmarks are particularly "designed for (only) single users". Unless one thinks that files, in general, are so designed. > Bookmark+ has export option. Files can be shared really, but that is > not fast collaborative sharing. There are many things inside for me to > learn and adopt good ideas I missed myself. I imagine that multiple users could use the same bookmark file at the same time. In that scenario the same considerations would apply as would apply to shared use of any other file. > Imagine when we work in local area network, several users translating > files and need references. New reference is added as bookmark and all > other users have reference without updating or sharing files as > reference is simply accessed through common database. It implies that > some files are shared and accessible between users that bookmarks can > access them. While Emacs is one interface to such bookmarks, there can > be various other interfaces. Something to consider, perhaps, is that a bookmark file is separate from the files and other resources that the bookmarks target. The latter can certainly be shared even when the bookmarks need not be. > `eww' lacks function to bookmark specific page on specific line. I can > of course add eww bookmark with `w' but that does not reference > specific line or specific search on the page. The EWW bookmarks created with Bookmark+ record a URL, which can include an anchor - e.g., a location within an HTML page. Is there really a notion of "lines" and line numbers in a displayed web page? If so, if you can record it then it can be added to what's recorded in an EWW bookmark. > If there are no #names it becomes impossible for many browsers to > obtain finely grained reference or back link. For `eww' it would be > relatively easy to do that feature and include it in {C-x r m RET} to > be bookmarked by Emacs system, not eww system. If you're talking about adding support for #name, that's already present (with Bookmark+). If you mean add, in some way, support for addressing a particular line of a web page, I don't know how that would be easy to do (but I'm no expert on such things). ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: on hyperlinks (bookmarks) 2020-11-08 19:47 ` Drew Adams @ 2020-11-08 20:26 ` Jean Louis 0 siblings, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-08 20:26 UTC (permalink / raw) To: Drew Adams; +Cc: Emacs-Devel List, Boruch Baum, Arthur Miller, Stefan Monnier * Drew Adams <drew.adams@oracle.com> [2020-11-08 22:50]: > > > main characteristics of Emacs bookmarks are these, IMO: > > > > > > 1. They're persistent. > > > (They don't have to be, but they can be.) > > > > Yes, they are. Only they are designed for single users, not for > > collaborative sharing. > > I can't speak to the general topic of collaborative > sharing, but a bookmark file can of course be shared, > just as any other file can be. And you can access a > bookmark file as a remote file. And I imagine that a > bookmark file could be accessible from, say, a > repository URL, etc. > > Again, I'm no expert on such things - I don't use > them, myself. But there's nothing special about a > bookmark file, compared to other plain-text files. > > I guess I'm saying that I don't think Emacs bookmarks > are particularly "designed for (only) single users". > Unless one thinks that files, in general, are so > designed. I have not expressed myself correctly. I wanted to say that Emacs could provide central sharing feautres. Example could be when there would be a bookmark file to which all users on same system could write and read from it. That would be analogous to site-lisp directory. If I remember well back in time games scores were centrally shared with other users. I may be wrong. Similar fashion could be used for various packages to create the collective data or useful information for a group without thinking how to share those files, transfer, etc. In other words that leads to database backed systems that were well designed for collective collaboration. But if two users can write to same bookmark file that is one solution. > > `eww' lacks function to bookmark specific page on specific line. I can > > of course add eww bookmark with `w' but that does not reference > > specific line or specific search on the page. > > The EWW bookmarks created with Bookmark+ record a > URL, which can include an anchor - e.g., a location > within an HTML page. Is there really a notion of > "lines" and line numbers in a displayed web page? > If so, if you can record it then it can be added to > what's recorded in an EWW bookmark. That is good, I will research it. > > If there are no #names it becomes impossible for many browsers to > > obtain finely grained reference or back link. For `eww' it would be > > relatively easy to do that feature and include it in {C-x r m RET} to > > be bookmarked by Emacs system, not eww system. > > If you're talking about adding support for #name, > that's already present (with Bookmark+). If you > mean add, in some way, support for addressing a > particular line of a web page, I don't know how > that would be easy to do (but I'm no expert on > such things). I think that eww now does support moving to #names but recently, like maybe some months ago did not. I see it supports here. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-08 12:40 ` Boruch Baum 2020-11-08 13:37 ` Jean Louis @ 2020-11-08 13:45 ` Arthur Miller 1 sibling, 0 replies; 94+ messages in thread From: Arthur Miller @ 2020-11-08 13:45 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Monnier, Drew Adams, Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: > On 2020-11-08 13:09, Arthur Miller wrote: >> Boruch Baum <boruch_baum@gmx.com> writes: >> >> > That's why I never end up actually ever using your extensions, Drew. I >> > think they're great and I enjoy reading them, but it always ends up >> > intimidating me with a sense of overkill. >> But if an extension is overkill, how is then creaing entire system >> instead not? :-) Sorry, I just can't resist to ask. > > Fair. The diredc "system" is only a few lines of code, with nothing at > all complicated (compare the data structures and compare the code to the > emacs native bookmards). Ok, I can buy that simplicity might be a reason; but looking at history, simplicity usually vanish when things get developed over time, and usually yet another package will emerge that will prefer simplicity, and Mary goes round ... > Now, if one can argue that > it's *objectively* better Can you define what `objectively better' means? I am quite sure we can argue to lenghts about what better would be, but I am not sure we can ever define it objectively. By objectively I believe you mean not subjectively, and I am affraid that word `better' refers to very subjective matters, which probably contradicts to word `objective'. That means putting those together in same expression is probably a misstake, but I would rather leave that to philosophy schoolars which I am unfrotunately not one of. Jokes, aside, I think it is useful to bookmark some special files (like init file) for example. Furthermore it is also nice to not have to write another Helm handler for Helm users who would use yoru file manager (even though it is fairly easy to write a handler for Helm source); i.e re-use of existing tools. ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-08 9:36 ` Boruch Baum 2020-11-08 12:09 ` Arthur Miller @ 2020-11-08 16:48 ` Drew Adams 2020-11-08 17:37 ` Boruch Baum 1 sibling, 1 reply; 94+ messages in thread From: Drew Adams @ 2020-11-08 16:48 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Monnier, Arthur Miller, Emacs-Devel List > > > So, I suppose a way to 'hijack' the bookmark process would be to > > > advise around function bookmark-default-handler checking for the > > > current buffer's major-mode, the state of variable diredc-mode and > > > whether the bookmark is a directory. The ugly part of the 'hijack' > > > is keeping the code of the advice in sync with the underlying > > > function. > > > > Are you looking for a way to have your own bookmark-handling code do > > what you want with a vanilla bookmark for a directory? Is that it? > > Don't pin this on me, Drew. I was just responding > to Stefan Monnier's proposal. Excuse me? I'm not pinning anything on anyone. I was trying to help, by suggesting that a custom bookmark handler might be an alternative to your needing to "'hijack' the bookmark process" by advising `bookmark-default-handler'". If that suggestion doesn't help, just ignore it. > > Why not instead define your own bookmark handler for directory > > bookmarks? That's what bookmark handlers are for. > > Because a specific bookmark's handler is hard-coded into the > data-structure when added, so which ever function creates the bookmark, > be it ye olde function bookmark-set or the new kid diredc, that's the > function that defines the handler to be used. OK. So you don't want specific data in the bookmark itself, right? You instead want a plain vanilla bookmark, but you want it to be handled specially, right? And I guess you want _all_ plain bookmarks to be handled in the same special way (since they're plain, they presumably can't be distinguished by their data), right? If so, then another alternative might be to advise `bookmark-handle-bookmark'. Not that that would make much/any difference from advising the default handler function. > > FWIW - In Bookmark+ Dired buffers have their > > own bookmark handler. > > That's very sensible and should be what function bookmark-set does > instead of what it does now which is run through a set of conditionals. The only conditionals I see in vanilla `bookmark-set' have to do with handling the arg `overwrite-or-push'. I don't see what that has to do with Dired bookmarking. But it's not very important that I understand you, especially if my comments aren't welcome. I mention that only in case you want to clarify for others. > > Bookmarking a Dired buffer records not just the directory location > > but also its `ls' switches, which files are marked, which subdirs are > > inserted, and which (sub)dirs are hidden. Jumping to a Dired bookmark > > restores all of that. > > That's why I never end up actually ever using your extensions, Drew. I > think they're great and I enjoy reading them, but it always ends up > intimidating me with a sense of overkill. Sorry. Luckily, no one's forced to download or use them. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-08 16:48 ` Drew Adams @ 2020-11-08 17:37 ` Boruch Baum 2020-11-08 19:24 ` Drew Adams 0 siblings, 1 reply; 94+ messages in thread From: Boruch Baum @ 2020-11-08 17:37 UTC (permalink / raw) To: Drew Adams; +Cc: Stefan Monnier, Arthur Miller, Emacs-Devel List My apologies, Drew. Your comments are welcome, and I do consider them. I guess I wrote undiplomatically or came across wrong. On 2020-11-08 08:48, Drew Adams wrote: > Excuse me? I'm not pinning anything on anyone. > > I was trying to help, by suggesting > ... > If that suggestion doesn't help, just ignore it. > ... > But it's not very important that I understand you, > especially if my comments aren't welcome. I mention > that only in case you want to clarify for others. > ... > Sorry. Luckily, no one's forced to download or use them. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-08 17:37 ` Boruch Baum @ 2020-11-08 19:24 ` Drew Adams 0 siblings, 0 replies; 94+ messages in thread From: Drew Adams @ 2020-11-08 19:24 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Monnier, Arthur Miller, Emacs-Devel List No problem. Thanks for the follow-up. It's easy to be misunderstood here, and with email in general. > My apologies, Drew. Your comments are welcome, and I do consider them. I > guess I wrote undiplomatically or came across wrong. > > > Excuse me? I'm not pinning anything on anyone. > > I was trying to help, by suggesting > > ... > > If that suggestion doesn't help, just ignore it. > > ... > > But it's not very important that I understand you, > > especially if my comments aren't welcome. I mention > > that only in case you want to clarify for others. > > ... > > Sorry. Luckily, no one's forced to download or use them. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 14:38 ` Boruch Baum 2020-11-05 15:05 ` Stefan Monnier @ 2020-11-05 15:29 ` Arthur Miller 2020-11-05 16:25 ` Adam Porter 2020-11-06 9:49 ` Boruch Baum 1 sibling, 2 replies; 94+ messages in thread From: Arthur Miller @ 2020-11-05 15:29 UTC (permalink / raw) To: Boruch Baum; +Cc: Stefan Monnier, Emacs-Devel List Boruch Baum <boruch_baum@gmx.com> writes: > On 2020-11-05 13:54, Arthur Miller wrote: >> How do you do bookmarks? I just bookmarked a folder with your shortcut >> C-c b a; and the bookmark does not show in bookmarks list. > > diredc-bookmark-* doesn't share the generic emacs bookmark list. It means you are reinventing the infrastructure that is already in place and debugged. Also all other Emacs eco system would need to be rewritten to work with your package, such as Helm (or other completers). > The > consideration was not mix directory locations with locations within > files. Is saveplace not good enough? :-) Sorry. >> furthermore, when I use C-c b j; it seems to show some byte code, you >> can see it in the attached screenshot. > > I can't reproduce that. Your screenshot seems to indicate you were using > helm-something; is that correct? If so: 1) what helm set-up and command > (I don't use helm); 2) what happens when you don't use helm; 3) what > were you bookmarking. I use Helm as a completer, I have just used your shortcut: C-c b j, I don't know what you are doing undercover, so I don't know how Helm got called in this case. >> Another quick impression: opening new frame in the bacgkround is not >> really the best feel. It didn't got neither raised nor focused. > > Oops. Fixed, but before I push the commit, I have a question: As a > generic setting, should I have the dired frame start out maximized or > with some other specific orientation? I don't like it in new frame at all, but that is your package and your judgement. Personally I don't like the predefined workflow because it is not always the case it is the best thing to do. Sometimes I prefer two panes, sometimes I don't. It is maybe better to create some "configuration restore" mechanism, maybe based on the new tab mode as mentioned in my previous mail. Just let us serialize the state of windows to the disk and re-open it on demand. Thus I could create my own layout inclusive with buffers and save it as "workspace" to be used with diredc. Thus two-pane workspace could be "bookmarked" with some specific locations on hard drive. Three-pane workspace could be bookmarked for some other use-case etc. > At issue is that I'm not a GUI > emacs user, so all my development and testing has been done for emacs > -nw. I've just now tested the code with GUI emacs and reproduced the > issue, but I see that neither my default GUI emacs frame nor my initial > diredc frame start maximized and I have no idea what a normal GUI user's > expectation is. No idea either; I think it is very subjective. You should probably start testing with GUI Emacs if you plan to make diredc a general file manager based on Dired. >> Also my original frame got resized and centered on the screen, and >> diredc took place of the original frame (but in background and not focused). > > That I'm not reproducing, but the pending commit may fix it anyway. You > know, the change is trivial, so you might want to just manually make the > change. Line 2201 goes from: > (make-frame-command) > to > (select-frame (make-frame-command)) > I'm just being stingy on commits and also sneak in whatever other frame > config is necessary / desirable, (eg. maximize). > >> The dual pane wasn't so resilient; at least not to Gnus (nothing is >> :-)). > > *I'm* certainly not resilient to gnus. Never ever have I gotten it to > work. > >> After switching to Gnus and back I was left with a single window. > > Question #1: How did you 'switch' back and forth? Did you use S-F11? > What other method(s)? C-x C-b (bound to helm-buffers-list) then I picked diredc buffer from the list. S-F11 just switches between two different frames: one opened by diredc and the original one I had before starting diredc. > You mean diredc-recover? I'll presume yes. > Once diredc is started, it respects a user's desire if it thinks the > user insists on a custom window configuration for the diredc frame. The > way to restore the default is to use diredc-recover (I suppose you could > also perform diredc-quit followed by diredc again, but that's so 20th > century). Yes; sorry, I forgott the name in the moment when I was writing the response. S-F11 does not seem to do it's thing, but diredc-recover seems to do it. If you say it is the only way, than it works as intended :-). >> Documentation says they are useful dired values - but in which way are they >> useful? Do I really need to export a shortcut to a README file if I am already >> using Emacs? Am I supposed to open current file from the shell in new >> Eamcs instance > > No, of course not. > >> or what was the intended workflow? > > You want to perform some generic set of shell operations relating to one > or both directories displayed. The possibilities and opportunities > really are endless, but for starters: You may find yourself comparing > two directories and want to tar three files from one and five files from > another into a single tar at a third location (not as unusual as it may > sound at first). You mark the files in each dired buffer, open a shell, > and use the $t1 and $t2 shell variables on your tar command line. As a > second theoretical, maybe you want to perform a paste (unix command-line > paste, not MSwin concept) of files from two directories - select them > and use $f1 $f2. etc. etc. and so forth. Why would you drop into shell for that? Do it from dired directly :-). Ok, might be useful for some scenario. I don't have something in mind atm, but there can be some probably. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:29 ` Arthur Miller @ 2020-11-05 16:25 ` Adam Porter 2020-11-05 16:47 ` Arthur Miller 2020-11-05 18:00 ` Jean Louis 2020-11-06 9:49 ` Boruch Baum 1 sibling, 2 replies; 94+ messages in thread From: Adam Porter @ 2020-11-05 16:25 UTC (permalink / raw) To: emacs-devel Arthur Miller <arthur.miller@live.com> writes: > Just let us serialize the state of windows to the disk and re-open it > on demand. Thus I could create my own layout inclusive with buffers > and save it as "workspace" to be used with diredc. Thus two-pane > workspace could be "bookmarked" with some specific locations on hard > drive. Three-pane workspace could be bookmarked for some other > use-case etc. FYI, my new package, Burly, works this way: it bookmarks window/frame configurations and restores them, including their buffers, by using the bookmarks library to restore each buffer before restoring the frame/window configuration. All that's necessary is for a buffer's major mode to define a bookmark-make-record-function and a bookmark handler function (as many major modes already do). It already works with, e.g. file-backed text buffers, Dired buffers, magit-status buffers, Help and Info buffers, etc. https://github.com/alphapapa/burly.el ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 16:25 ` Adam Porter @ 2020-11-05 16:47 ` Arthur Miller 2020-11-05 18:00 ` Jean Louis 1 sibling, 0 replies; 94+ messages in thread From: Arthur Miller @ 2020-11-05 16:47 UTC (permalink / raw) To: Adam Porter; +Cc: emacs-devel Adam Porter <adam@alphapapa.net> writes: > Arthur Miller <arthur.miller@live.com> writes: > >> Just let us serialize the state of windows to the disk and re-open it >> on demand. Thus I could create my own layout inclusive with buffers >> and save it as "workspace" to be used with diredc. Thus two-pane >> workspace could be "bookmarked" with some specific locations on hard >> drive. Three-pane workspace could be bookmarked for some other >> use-case etc. > > FYI, my new package, Burly, works this way: it bookmarks window/frame > configurations and restores them, including their buffers, by using the > bookmarks library to restore each buffer before restoring the > frame/window configuration. All that's necessary is for a buffer's > major mode to define a bookmark-make-record-function and a bookmark > handler function (as many major modes already do). > > It already works with, e.g. file-backed text buffers, Dired buffers, > magit-status buffers, Help and Info buffers, etc. Super; I'll give it a try some time; thanks! > https://github.com/alphapapa/burly.el ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 16:25 ` Adam Porter 2020-11-05 16:47 ` Arthur Miller @ 2020-11-05 18:00 ` Jean Louis 2020-11-05 18:56 ` Adam Porter 2020-11-06 4:55 ` Arthur Miller 1 sibling, 2 replies; 94+ messages in thread From: Jean Louis @ 2020-11-05 18:00 UTC (permalink / raw) To: Adam Porter; +Cc: emacs-devel * Adam Porter <adam@alphapapa.net> [2020-11-05 19:26]: > Arthur Miller <arthur.miller@live.com> writes: > > > Just let us serialize the state of windows to the disk and re-open it > > on demand. Thus I could create my own layout inclusive with buffers > > and save it as "workspace" to be used with diredc. Thus two-pane > > workspace could be "bookmarked" with some specific locations on hard > > drive. Three-pane workspace could be bookmarked for some other > > use-case etc. > > FYI, my new package, Burly, works this way: it bookmarks window/frame > configurations and restores them, including their buffers, by using the > bookmarks library to restore each buffer before restoring the > frame/window configuration. All that's necessary is for a buffer's > major mode to define a bookmark-make-record-function and a bookmark > handler function (as many major modes already do). Very nice. Good in itself, I just cannot switch from Hyperbole to Burly as Hyperbole has essentially that what you described. Only it does not save configurations over sessions. I can add various named window or frame configurations, or not named, I can then go into them by name quickly or restore everything to where I was. I do appreciate influx of new Emacs Packages. Yet it would be useful if programmer would look into what is already available or widely used. Check out GNU Hyperbole! ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 18:00 ` Jean Louis @ 2020-11-05 18:56 ` Adam Porter 2020-11-05 19:33 ` Jean Louis 2020-11-06 4:55 ` Arthur Miller 1 sibling, 1 reply; 94+ messages in thread From: Adam Porter @ 2020-11-05 18:56 UTC (permalink / raw) To: emacs-devel Jean Louis <bugs@gnu.support> writes: > * Adam Porter <adam@alphapapa.net> [2020-11-05 19:26]: >> Arthur Miller <arthur.miller@live.com> writes: >> >> > Just let us serialize the state of windows to the disk and re-open it >> > on demand. Thus I could create my own layout inclusive with buffers >> > and save it as "workspace" to be used with diredc. Thus two-pane >> > workspace could be "bookmarked" with some specific locations on hard >> > drive. Three-pane workspace could be bookmarked for some other >> > use-case etc. >> >> FYI, my new package, Burly, works this way: it bookmarks window/frame >> configurations and restores them, including their buffers, by using the >> bookmarks library to restore each buffer before restoring the >> frame/window configuration. All that's necessary is for a buffer's >> major mode to define a bookmark-make-record-function and a bookmark >> handler function (as many major modes already do). > > Very nice. Good in itself, I just cannot switch from Hyperbole to > Burly as Hyperbole has essentially that what you described. Only it > does not save configurations over sessions. I can add various named > window or frame configurations, or not named, I can then go into them > by name quickly or restore everything to where I was. > > I do appreciate influx of new Emacs Packages. Yet it would be useful > if programmer would look into what is already available or widely > used. > > Check out GNU Hyperbole! You may be interested to know that RSW has contributed to Burly and has expressed interest in adding support for Burly to Hyperbole. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 18:56 ` Adam Porter @ 2020-11-05 19:33 ` Jean Louis 0 siblings, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-05 19:33 UTC (permalink / raw) To: Adam Porter; +Cc: emacs-devel * Adam Porter <adam@alphapapa.net> [2020-11-05 21:57]: > > Check out GNU Hyperbole! > > You may be interested to know that RSW has contributed to Burly and has > expressed interest in adding support for Burly to Hyperbole. Aha, like that, nice to know! ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 18:00 ` Jean Louis 2020-11-05 18:56 ` Adam Porter @ 2020-11-06 4:55 ` Arthur Miller 1 sibling, 0 replies; 94+ messages in thread From: Arthur Miller @ 2020-11-06 4:55 UTC (permalink / raw) To: Jean Louis; +Cc: Adam Porter, emacs-devel Jean Louis <bugs@gnu.support> writes: > I do appreciate influx of new Emacs Packages. Yet it would be useful > if programmer would look into what is already available or widely > used. Indeed. It would be very nice if not everyone was rediscovering warm water over and over again :-). ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 15:29 ` Arthur Miller 2020-11-05 16:25 ` Adam Porter @ 2020-11-06 9:49 ` Boruch Baum 1 sibling, 0 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-06 9:49 UTC (permalink / raw) To: Arthur Miller; +Cc: Stefan Monnier, Emacs-Devel List On 2020-11-05 16:29, Arthur Miller wrote: > Boruch Baum <boruch_baum@gmx.com> writes: > > > On 2020-11-05 13:54, Arthur Miller wrote: > >> After switching to Gnus and back I was left with a single window. > > > > Question #1: How did you 'switch' back and forth? Did you use S-F11? > > What other method(s)? > C-x C-b (bound to helm-buffers-list) then I picked diredc buffer from > the list. Ouch. That's the reason. Diredc is meant to be used frame-based. That's why it defines a dedicated frame, and that's why there's a dedicated command to navigate to/from it. > S-F11 just switches between two different frames: one opened by diredc > and the original one I had before starting diredc. That's the point. > > You mean diredc-recover? I'll presume yes. > S-F11 does not seem to do it's thing, but diredc-recover seems to do > it. If you say it is the only way, than it works as intended :-). It's (S-F11) 'thing' is mainly to toggle-frames, so if the diredc frame itself has gotten messed up then the diredc-recover 'thing' becomes useful. -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 12:54 ` Arthur Miller 2020-11-05 13:34 ` Jean Louis 2020-11-05 14:38 ` Boruch Baum @ 2020-11-06 9:42 ` Boruch Baum 2 siblings, 0 replies; 94+ messages in thread From: Boruch Baum @ 2020-11-06 9:42 UTC (permalink / raw) To: Arthur Miller; +Cc: Stefan Monnier, Emacs-Devel List On 2020-11-05 13:54, Arthur Miller wrote: > Boruch Baum <boruch_baum@gmx.com> writes: > > My memory from looking at it years ago was that it was non-functioning > > abandon-ware. > No idea if it is abandon-ware; I don't use it; I used some year ago and it > was quite competent. > > Looking at github, it seems like last commit was ~6 month ago: > > https://github.com/sunrise-commander/sunrise-commander Thanks! > How do you do bookmarks? I just bookmarked a folder with your shortcut > C-c b a; and the bookmark does not show in bookmarks list. That's right. It's a separate diredc-only bookmark list. > furthermore, when I use C-c b j; it seems to show some byte code, you > can see it in the attached screenshot. That *is* weird. I can't reproduce it. Any hints? > opening new frame in the bacgkround is not really the best feel. It > didn't got neither raised nor focused. Fixed. > Also my original frame got resized and centered on the screen, and > diredc took place of the original frame (but in background and not focused). Wait a second. This email sounds familiar. Did I already respond to this? > The dual pane wasn't so resilient; at least not to Gnus (nothing is > :-)). After switching to Gnus and back I was left with a single window. > I am not sure if I understand the docs correctly: is it supposed to > restore window layout and buffers automatically or do I need to take an > action? It didn't happened automatically so I tried diredc-restore. I > was than ask a question to choose between starting a new or choosing two > panes or something else. I choose two-pane, but I wasn't left with same > buffers after it executed. > > After I switched to the mail to continue writing it again switched to > just one window. When I switched back it was still just one window. I > then tried running again diredc (C-x 5 d); it just moved my cursor back > to old frame. Running again diredc moved cursor back to second frame but > it never switched back to dual pane nor to original buffers I had in > diredc. I am sure I am using it wrong, but I don't see in the > accompanying docs how to switch between buffers and go back to dual-pane > and original buffers. > > In connection to this, looking at those predefined variables; I am not > sure I find it really useful; you can see below what diredc exported > when I run it for the first time: > > export d1="~/repos/emacs-related/emacs-diredc/" d2="" f1="~/repos/emacs-related/emacs-diredc/README.md" f2="" t1="(/home/arthur/repos/emacs-related/emacs-diredc/README.md)" t2="nil" > > sh-5.0$ sh-5.0$ sh-5.0$ > > Documentation says they are useful dired values - but in which way are they > useful? Do I really need to export a shortcut to a README file if I am > already using Emacs? Am I supposed to open current file from the shell > in new Eamcs instance, or what was the intended workflow? > > Sorry if I am obnoxious; these are just questions I was left with after > tryimg it. > > Something positive: > > I like your C-c C-k and '; I'll steal it for my own hack of term-toggle, > thanks! :-). I have eshell on F2 and term on F1, but ' was really nice; > I think I'll use it instead of F2. > > >> History handling: can it not be handled by recentf/winner modes already? > > > > I've been a long-time happy user of winner, and found the answer to be > > no. Winner operates on all windows of a frame, not just the current > > dired buffer. Thus, if you had in your window configuration history > > temporary quick-shell buffer-windows or quick-file-view buffer-windows, > > they would pop in and out if you were using winner-undo to navigate > > sequentially in your dired history. Also, does winner-mode have a > > quick-jump to a specific history element? > > > >> I am not particulary against custom history handling, but recentf > >> already does it and winner has undo/redo stack maybe they can be reused? > > > > When I had tried recentf years ago, I was disappointed that its only > > interface was the ncurses menu. Is that still the case? In any event, > > a recentf menu will include ALL recently visited items, so that list > > will be a mixture of emacs files and dired buffers and who knows what > > else; a user would need to visually filter out the path-names ending > > with a file from those ending with a directory ... > We have Helm + fuzzy search to filter those out ... > > >> Other functionality I would like to see is some from dired-hacks: toggle > >> and filters. > > > > What do you mean by "toggles and filters"? > https://github.com/Fuco1/dired-hacks#dired-subtree > https://github.com/Fuco1/dired-hacks#dired-filter -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 9:22 ` Boruch Baum 2020-11-05 12:54 ` Arthur Miller @ 2020-11-05 14:21 ` Stefan Monnier 1 sibling, 0 replies; 94+ messages in thread From: Stefan Monnier @ 2020-11-05 14:21 UTC (permalink / raw) To: Boruch Baum; +Cc: Arthur Miller, Emacs-Devel List >> I don't use Sunrise > My memory from looking at it years ago was that it was non-functioning > abandon-ware. My question was really about how you designed your system compared to it. Your answer indicates you didn't, which implies you've likely reinvented some of its square wheels (because that's inevitably what we do when we don't try to learn from past mistakes). Basically, if you're writing a package that's not meant only for your own usage, it's worthwhile to take a close look at other similar packages, including the dead ones (e.g. to learn what to avoid if you don't want to fall into the same "dead" category, and you also sometimes bump into some really good idea). > When I had tried recentf years ago, I was disappointed that its only > interface was the ncurses menu. That shouldn't preclude using recentf's infrastructure/data and providing a different UI on top of it. > a user would need to visually filter out the path-names ending with > a file from those ending with a directory ... Your code could do that filtering, couldn't it? Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 8:05 ` Arthur Miller 2020-11-05 9:22 ` Boruch Baum @ 2020-11-05 9:56 ` Jean Louis 2020-11-05 17:07 ` Drew Adams 2020-11-08 19:46 ` Juri Linkov 3 siblings, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-05 9:56 UTC (permalink / raw) To: Arthur Miller; +Cc: Emacs-Devel List, Stefan Monnier, Boruch Baum * Arthur Miller <arthur.miller@live.com> [2020-11-05 11:22]: > I have skimmed through diredc (readme + code) but I haven't tried it. > As far as I see, the only part I see worth putting directly in dired > is maybe as you pointed out trash management. I don't use Sunrise nor > any other `comander' Ranger clone; it is just not needed. I don't use > trash folder either for that matter, but I can see there is not much of > trash handling offered via Emacs, so maybe some users would prefer to > have such functionality. I am using trash functions, and it is very handy especially when managing some critical files. Some system /etc/configurations may remain as backup on server, and those are transferred to local Trash now. It would not be handy to delete large video or image on remote ssh/scp systems and that such files are transferred to local Trash, it would consume bandwidth, so I just need to be careful with it. Emacs trash system can use Freedesktop style trash or directory for trash. I am using latter set to be ~/tmp/Trash and inside of directory I have to place .dir-locals.el with following variables: ;;; Directory Local Variables ;;; For more information see (info "(emacs) Directory Variables") ((dired-mode . ((delete-by-moving-to-trash . nil)))) That is easy done by doing {M-x add-dir-local-variable}, then choosing dired-mode and variable `delete-by-moving-to-trash'. Why? Because if variable is true then files in trash would not be deleted from Dired, they would be renamed but not deleted. So deleting truly works only in my trash directory. Emacs does support trashing. So far so good. > For me Helm does the most; dired is needed just sometimes, so it is nice > if we can keep it lightweight. That said it does not mean that Emacs (or > Elpa) can't include a file manager, I would just prefer to keep it > separate from Dired. I prefer using plain Dired for file management as I am using Emacs on many computers and VPS-es. I do not know if that is harder or easier, I have no idea. What I know is that it works well and I am efficient and fast. It would generally disturb me to load some packages to give me my familiarity. That is what I avoid. With many computers I would waste time until I get all packages installed. When I need some particular option during the session then I do: {M-x local-set-key RET} then ' then I can set it for shell command just like diredc proposed it, which is good idea to quickly open shell. I just need to figure out how to invoke new shell buffer in the directory where I am located. Package exist for that, but I want to be fast in setting it up on plain Emacs from `local-set-key' Diredc should improve shell choice, as Eli said, rather not from /etc/passwd but at least from Emacs shell handlings. From docstring for function `shell': If a file ‘~/.emacs_SHELLNAME’ exists, or ‘~/.emacs.d/init_SHELLNAME.sh’, it is given as initial input (but this may be lost, due to a timing error, if the shell discards input when it starts up). And there is more in the description how Emacs is choosing default shell. Dash is not even a choice but is main shell on Debian GNU/Linux. Again I represent idea that shell list should be taken from /etc/shells as it is system based list. And if such does not exist then some default list from diredc, or any package choosing a shell. ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-05 8:05 ` Arthur Miller 2020-11-05 9:22 ` Boruch Baum 2020-11-05 9:56 ` Jean Louis @ 2020-11-05 17:07 ` Drew Adams 2020-11-08 19:46 ` Juri Linkov 3 siblings, 0 replies; 94+ messages in thread From: Drew Adams @ 2020-11-05 17:07 UTC (permalink / raw) To: Arthur Miller, Stefan Monnier; +Cc: Boruch Baum, Emacs-Devel List > History handling: can it not be handled by recentf/winner modes already? > I am not particulary against custom history handling, but recentf > already does it and winner has undo/redo stack maybe they can be reused? I don't know just what you or Boruch had in mind wrt "history handling". But FWIW, Dired+ lets you open Dired on just the recent files and dirs or just the recent dirs. With a numeric prefix arg you can enter the names of recent files to include or exclude. The file listing is always in the order of `recentf-list', which is reverse chronological order of opening or writing files you access. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-05 8:05 ` Arthur Miller ` (2 preceding siblings ...) 2020-11-05 17:07 ` Drew Adams @ 2020-11-08 19:46 ` Juri Linkov 2020-11-08 19:50 ` Sv: " arthur miller 3 siblings, 1 reply; 94+ messages in thread From: Juri Linkov @ 2020-11-08 19:46 UTC (permalink / raw) To: Arthur Miller; +Cc: Emacs-Devel List, Stefan Monnier, Boruch Baum > Ther is a thing I would like to have in Dired, but I haven't got time > myself to look at it: utilisation of new Tab thing. Since tabs seem > to act more like workspaces I would like to see them serialized and > bookmarked so we could use them with Dired. However diredc seems to do > it's own thing instead of reusing the functionality of tabs. Tabs are just framesets, so you can type 'C-x r f' in one tab, then type 'C-x r j' in another tab, and it will restore the tab from register. If bookmark.el can save framesets from registers, then it will save bookmarks from tabs as well. ^ permalink raw reply [flat|nested] 94+ messages in thread
* Sv: Friendlier dired experience [CODE INCLUDED] 2020-11-08 19:46 ` Juri Linkov @ 2020-11-08 19:50 ` arthur miller 0 siblings, 0 replies; 94+ messages in thread From: arthur miller @ 2020-11-08 19:50 UTC (permalink / raw) To: Juri Linkov; +Cc: Emacs-Devel List, Stefan Monnier, Boruch Baum [-- Attachment #1: Type: text/plain, Size: 967 bytes --] Cool; I didn't know. Thanks! ________________________________ Från: Juri Linkov <juri@linkov.net> Skickat: den 8 november 2020 20:46 Till: Arthur Miller <arthur.miller@live.com> Kopia: Stefan Monnier <monnier@iro.umontreal.ca>; Boruch Baum <boruch_baum@gmx.com>; Emacs-Devel List <emacs-devel@gnu.org> Ämne: Re: Friendlier dired experience [CODE INCLUDED] > Ther is a thing I would like to have in Dired, but I haven't got time > myself to look at it: utilisation of new Tab thing. Since tabs seem > to act more like workspaces I would like to see them serialized and > bookmarked so we could use them with Dired. However diredc seems to do > it's own thing instead of reusing the functionality of tabs. Tabs are just framesets, so you can type 'C-x r f' in one tab, then type 'C-x r j' in another tab, and it will restore the tab from register. If bookmark.el can save framesets from registers, then it will save bookmarks from tabs as well. [-- Attachment #2: Type: text/html, Size: 2086 bytes --] ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-03 10:43 Friendlier dired experience [CODE INCLUDED] Boruch Baum ` (2 preceding siblings ...) 2020-11-04 18:07 ` Stefan Monnier @ 2020-11-09 22:45 ` Mathias Dahl 2020-11-09 23:20 ` Stefan Monnier 2020-11-11 19:23 ` Juri Linkov 3 siblings, 2 replies; 94+ messages in thread From: Mathias Dahl @ 2020-11-09 22:45 UTC (permalink / raw) To: Boruch Baum; +Cc: Emacs-Devel List [-- Attachment #1: Type: text/plain, Size: 5589 bytes --] Hi, Thanks for sharing this! Since I'm a die-hard Dired fan I wanted to see what's all the fuzz is about and tried this. I did not try it very much but I read most of the commentary and some of the comments in the source code. A general comment is that, should we try to incorporate this into Emacs, I think it would be better to try to incorporate individual features such that they become part of Dired and Emacs in general. The way I see things, this package is... packaging together useful extensions to Dired. I think, by adding the various features, users could quite easily put together the same thing, more or less, without bringing in the whole package itself. I can see how one can end up with a package like this since I did it myself with "Tumme" (now "Image Dired") many years ago (Any Day Now I will have a look at it again and see how it can be enhanced now that we have better/different image handling built-in). And, by the way, I have not looked much at other packages that extend Dired, like dired+. I do use features from dired-x and perhaps dired-aux too. With that said, I have some comments on a couple of the features that I tried. I did not think very long before writing this, so take it for what it is. Tab-key switching Navigating back and forth using the Tab key is convenient. For me, personally, since I already have a dedicated key (f2) for switching to the next window, it's only slightly better because the key is slightly easier to press. I will consider binding Tab in my own Dired setup :) Shell integration I like this idea and I remember having liked this feature when running Norton Commander hundreds of years ago. I like the idea to be able to access different file names from the two Dired buffers using those environment variables. It's a limitation however that the values are only set (right?) when you go from the diredc buffers to the shell again, using the special command. It would be super cool if the shell just "knew", without diredc needing to set those things explicitly. Could Emacs' different shells and terminals have this ability automatically by using some pre-processing of each command invocation, looking for open Dired windows in the same frame? I could see this being very useful as a normal part of Emacs/Dired/Shell/Terminal and even in Comint (different "REPLs" might benefit from being able to pull in file names from Dired buffers open in the same frame). Multiple panel views Did not try this much but is surely useful depending on what you want to see at any given moment. I often use the "s" binding to sort differently, for example, so I see that different viewing modes are nice to have. File quick-preview mode This was nice, especially the "quick view" following along when I change between files in the main diredc buffer. For sure something good to bring in if we wanted. Directory history I liked the parts of this that I tried. I especially liked the "fast" keys to go back and forth in the directory history. I can see that as very useful. Now, depending on what other buffer switching mechanism you are using, this might be very helpful or not more helpful than current setups. Bookmarks Did not try them but like others, I felt it might be better to integrate with the normal bookmark functionality in some way. A command that simply filters out the existing bookmarks that point to directories should not be hard to add to Dired, or simply make part of selecting a directory regardless of where you are in Emacs. Resilient dedicated dual-pane frame I liked this and I used the default keybinding (S-f11). I also felt we could make the same thing or something very similar using Winner, the new tab functionality, or some of the other ways we can work with window configurations. I get that a lot of work has been put into making this, as the author says, resilient, and I don't want to down-play that. Navigate 'up' n parent directories I have bound backspace to dired-up-directory so I have a quite convenient way to quickly step up N directories. Not the exact same thing of course and I can see how this is useful together with the directory history. Things I did not try (much) - Trash management. I feel that the standard behavior is enough for me, by changing a few settings. Some of the features sound like they could be good additions to Emacs in general. - Edit dired buffers. Well, this is not anything new at all, just a useful thing available in diredc ad well as in normal Dired. - Set both panels to same directory. Did not try this much or think about when it is useful but I guess quickly "syncing" the two panes, then being able to drill down, or go back in either of them would be the main use. Yeah, so... In summary, I think it's a nice package with several useful features. I would personally like each feature brought in on its own merits, so to speak, and try to incorporate them into normal Dired and Emacs features, and try to make it as easy as possible to put together a similar package using standard configuration features. Thanks! /Mathias On Tue, Nov 3, 2020 at 11:49 AM Boruch Baum <boruch_baum@gmx.com> wrote: > I've just published an elisp package that extends and configures > dired-mode with features that many people have come to take for granted > in other programming languages. For the source code and the detailed > description, see: http://github.com/Boruch-Baum/emacs-diredc > > If the project is interested in it, I can assign the copyright. > > -- > hkp://keys.gnupg.net > CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0 > > [-- Attachment #2: Type: text/html, Size: 6918 bytes --] ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-09 22:45 ` Mathias Dahl @ 2020-11-09 23:20 ` Stefan Monnier 2020-11-10 0:05 ` Drew Adams 2020-11-10 2:31 ` T.V Raman 2020-11-11 19:23 ` Juri Linkov 1 sibling, 2 replies; 94+ messages in thread From: Stefan Monnier @ 2020-11-09 23:20 UTC (permalink / raw) To: Mathias Dahl; +Cc: Boruch Baum, Emacs-Devel List > environment variables. It's a limitation however that the values are only > set (right?) when you go from the diredc buffers to the shell again, using > the special command. It would be super cool if the shell just "knew", > without diredc needing to set those things explicitly. Could Emacs' > different shells and terminals have this ability automatically by using > some pre-processing of each command invocation, looking for open Dired > windows in the same frame? I don't think this can be done "right" (actually in general even what diredc provides can't be done reliably without re-launching a new shell) by make the shell somehow aware of "where we are" (it would require a much tighter integration between the shell and Emacs than what's currently available). I can see two ways to do it: 1- ask the users to setup some kind of "support code" in their shell which implements a particular communication protocol with Emacs (and provide implementations for the most popular shells). 2- keep all the processing on Emacs's side, i.e. add special notations that can be used in the *shell* buffer and that are expanded by Emacs before sending them to the shell. Option 2 is probably the easiest, but it may get tricky to find a good syntax for it that's lightweight enough and doesn't get too much in the way of normal use. I don't think option 2 can work with `M-x term`, OTOH. > Did not try them but like others, I felt it might be better to integrate > with the normal bookmark functionality in some way. A command that simply > filters out the existing bookmarks that point to directories should not be > hard to add to Dired, or simply make part of selecting a directory > regardless of where you are in Emacs. BTW, I remember thinking that it would be nice/natural to allow specifying a (file) bookmark name when doing `C-x C-f`, and similarly `C-x C-d` could allow specifying a (directory) bookmark. > Resilient dedicated dual-pane frame > > I liked this and I used the default keybinding (S-f11). I also felt we > could make the same thing or something very similar using Winner, the new > tab functionality, or some of the other ways we can work with window > configurations. I get that a lot of work has been put into making this, as > the author says, resilient, and I don't want to down-play that. I don't know what diredc currently uses, but Emacs has grown the notion of "Atomic Windows" (see the Info doc, or `display-buffer-in-atom-window`) which might also be a good fit for diredc (or not: I haven't used it enough nor know diredc enough to be sure). Stefan ^ permalink raw reply [flat|nested] 94+ messages in thread
* RE: Friendlier dired experience [CODE INCLUDED] 2020-11-09 23:20 ` Stefan Monnier @ 2020-11-10 0:05 ` Drew Adams 2020-11-10 2:31 ` T.V Raman 1 sibling, 0 replies; 94+ messages in thread From: Drew Adams @ 2020-11-10 0:05 UTC (permalink / raw) To: Stefan Monnier, Mathias Dahl; +Cc: Boruch Baum, Emacs-Devel List > BTW, I remember thinking that it would be nice/natural to allow > specifying a (file) bookmark name when doing `C-x C-f`, and similarly > `C-x C-d` could allow specifying a (directory) bookmark. Good idea. Not exactly the same thing, but similar: When you use `C-x C-f' with Icicles you can hit `C-x m' to get completions for file bookmarks (bookmark names). This is a separate, on-demand completion that uses a recursive minibuffer, instead of mixing in (adding) bookmark-name matches with file-name matches. So the behavior is not exactly what you described, but it's close. [`C-x C-f' is a "multicommand", which means you can act on multiple candidates during the same `C-x C-f'. So you can visit one or more files and/or one or more file bookmarks.] ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-09 23:20 ` Stefan Monnier 2020-11-10 0:05 ` Drew Adams @ 2020-11-10 2:31 ` T.V Raman 2020-11-10 6:47 ` Jean Louis 1 sibling, 1 reply; 94+ messages in thread From: T.V Raman @ 2020-11-10 2:31 UTC (permalink / raw) To: Stefan Monnier; +Cc: Mathias Dahl, Boruch Baum, Emacs-Devel List [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset=gb18030, Size: 370 bytes --] Haven't had the cycles to delve into this complete thread, but I finally found a working solution for the shell reliably knowing "where" it is with respect to the working directory by going through the proc filesystem. see https://github.com/tvraman/emacspeak/blob/master/lisp/emacspeak-comint.el#L551 -- Thanks, --Raman 7©4 Id: kg:/m/0285kf1 0Ü8 ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-10 2:31 ` T.V Raman @ 2020-11-10 6:47 ` Jean Louis 0 siblings, 0 replies; 94+ messages in thread From: Jean Louis @ 2020-11-10 6:47 UTC (permalink / raw) To: T.V Raman; +Cc: Boruch Baum, Emacs-Devel List, Stefan Monnier, Mathias Dahl * T.V Raman <raman@google.com> [2020-11-10 05:32]: > Haven't had the cycles to delve into this complete thread, but I finally > found a working solution for the shell reliably knowing "where" it is > with respect to the working directory by going through the proc > filesystem. > > see > https://github.com/tvraman/emacspeak/blob/master/lisp/emacspeak-comint.el#L551 M-x nshell from Pascal Bourguignon: http://informatimago.com/develop/emacs/emacs/pjb-shell.el ^ permalink raw reply [flat|nested] 94+ messages in thread
* Re: Friendlier dired experience [CODE INCLUDED] 2020-11-09 22:45 ` Mathias Dahl 2020-11-09 23:20 ` Stefan Monnier @ 2020-11-11 19:23 ` Juri Linkov 1 sibling, 0 replies; 94+ messages in thread From: Juri Linkov @ 2020-11-11 19:23 UTC (permalink / raw) To: Mathias Dahl; +Cc: Boruch Baum, Emacs-Devel List > I can see how one can end up with a package like this since I did it myself > with "Tumme" (now "Image Dired") many years ago (Any Day Now I will have a > look at it again and see how it can be enhanced now that we have > better/different image handling built-in). What I like in tumme/image-dired is the quick-preview mode for images. AFACS, diredc supports the same but for all files with the 'C-x q' key. I think a better key for this feature would be 'C-c C-f' that already does the same in next-error capable buffers (compilation, grep, occur, ...) > Tab-key switching > > Navigating back and forth using the Tab key is convenient. For me, > personally, since I already have a dedicated key (f2) for switching to the > next window, it's only slightly better because the key is slightly easier > to press. I will consider binding Tab in my own Dired setup :) I have bound TAB in Dired to do the same thing as web browsers do, i.e. to navigate to the next link/dir. Before that, I tried to use TAB to switch windows between Dired buffer, but the problem is that after developing the habit of switching windows using TAB, trying to use TAB to switch windows fails in other modes. > Could Emacs' different shells and terminals have this ability > automatically by using some pre-processing of each command invocation, > looking for open Dired windows in the same frame? Maybe this page contains a relevant answer: https://www.emacswiki.org/emacs/ShellDirtrackByPrompt > Multiple panel views > > Did not try this much but is surely useful depending on what you want to > see at any given moment. I often use the "s" binding to sort differently, > for example, so I see that different viewing modes are nice to have. A long time ago I tried to emulate *Commander keys: (mapc (lambda (elt) (define-key dired-mode-map (car elt) `(lambda () (interactive) (dired-sort-other (concat dired-listing-switches ,(cadr elt)))))) '(([(control f3)] "" "by name") ([(control f4)] " -X" "by extension") ([(control f5)] " -t" "by time") ([(control f6)] " -S" "by size") ([(control shift f3)] " -r" "by reverse name") ([(control shift f4)] " -rX" "by reverse extension") ([(control shift f5)] " -rt" "by reverse time") ([(control shift f6)] " -rS" "by reverse size"))) but never used this, because after switching to Dired mode many years ago, I lost all habits accumulated from other commanders, and never missed them in Dired mode. For example, the Commander-like keys above are not mnemonic, whereas most Dired keys are. > - Set both panels to same directory. Did not try this much or think about > when it is useful but I guess quickly "syncing" the two panes, then being > able to drill down, or go back in either of them would be the main use. This feature might be useful because currently the quickest way to achieve the same requires destroying the window configuration with C-x 1 then creating a duplicate Dired window with C-x 2. ^ permalink raw reply [flat|nested] 94+ messages in thread
end of thread, other threads:[~2020-11-11 19:23 UTC | newest] Thread overview: 94+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-11-03 10:43 Friendlier dired experience [CODE INCLUDED] Boruch Baum 2020-11-03 10:54 ` Jean Louis 2020-11-03 11:15 ` Boruch Baum 2020-11-03 11:32 ` Joost Kremers 2020-11-03 12:22 ` Boruch Baum 2020-11-03 16:07 ` Jean Louis 2020-11-03 17:12 ` Boruch Baum 2020-11-03 19:31 ` Jean Louis 2020-11-03 21:13 ` Boruch Baum 2020-11-04 8:10 ` Jean Louis 2020-11-04 8:54 ` Boruch Baum 2020-11-04 9:57 ` Jean Louis 2020-11-04 10:39 ` Jean Louis 2020-11-04 13:17 ` Boruch Baum 2020-11-04 15:32 ` Joost Kremers 2020-11-04 15:58 ` Stefan Monnier 2020-11-04 17:23 ` Jean Louis 2020-11-04 17:15 ` Jean Louis 2020-11-04 15:28 ` Eli Zaretskii 2020-11-03 11:24 ` Boruch Baum 2020-11-03 15:10 ` Stefan Kangas 2020-11-03 16:10 ` Jean Louis 2020-11-03 17:16 ` Boruch Baum 2020-11-03 17:59 ` Michael Albinus 2020-11-03 19:10 ` Boruch Baum 2020-11-03 19:49 ` Jean Louis 2020-11-04 6:08 ` Pankaj Jangid 2020-11-04 19:57 ` Michael Albinus 2020-11-04 20:18 ` Yuri Khan 2020-11-04 20:29 ` Michael Albinus 2020-11-05 8:54 ` Boruch Baum 2020-11-05 10:11 ` Jean Louis 2020-11-05 13:31 ` Eli Zaretskii 2020-11-04 19:28 ` Stefan Kangas 2020-11-04 19:39 ` Boruch Baum 2020-11-05 15:00 ` Stefan Kangas 2020-11-06 9:34 ` Boruch Baum 2020-11-04 18:07 ` Stefan Monnier 2020-11-04 18:32 ` Boruch Baum 2020-11-04 18:55 ` Stefan Monnier 2020-11-05 8:05 ` Arthur Miller 2020-11-05 9:22 ` Boruch Baum 2020-11-05 12:54 ` Arthur Miller 2020-11-05 13:34 ` Jean Louis 2020-11-05 14:38 ` Boruch Baum 2020-11-05 15:05 ` Stefan Monnier 2020-11-05 15:34 ` Arthur Miller 2020-11-05 15:45 ` Stefan Monnier 2020-11-05 16:18 ` Adam Porter 2020-11-05 17:02 ` Stefan Monnier 2020-11-05 17:09 ` Drew Adams 2020-11-05 17:08 ` Drew Adams 2020-11-05 16:19 ` Arthur Miller 2020-11-05 17:56 ` Jean Louis 2020-11-05 17:08 ` Drew Adams 2020-11-06 9:15 ` Boruch Baum 2020-11-06 14:14 ` Stefan Monnier 2020-11-06 16:28 ` Drew Adams 2020-11-06 19:43 ` Adam Porter 2020-11-06 20:24 ` Drew Adams 2020-11-06 20:57 ` Adam Porter 2020-11-07 0:30 ` Daniel Martín 2020-11-08 9:36 ` Boruch Baum 2020-11-08 12:09 ` Arthur Miller 2020-11-08 12:40 ` Boruch Baum 2020-11-08 13:37 ` Jean Louis 2020-11-08 16:48 ` Drew Adams 2020-11-08 18:26 ` on hyperlinks (bookmarks) Jean Louis 2020-11-08 19:47 ` Drew Adams 2020-11-08 20:26 ` Jean Louis 2020-11-08 13:45 ` Friendlier dired experience [CODE INCLUDED] Arthur Miller 2020-11-08 16:48 ` Drew Adams 2020-11-08 17:37 ` Boruch Baum 2020-11-08 19:24 ` Drew Adams 2020-11-05 15:29 ` Arthur Miller 2020-11-05 16:25 ` Adam Porter 2020-11-05 16:47 ` Arthur Miller 2020-11-05 18:00 ` Jean Louis 2020-11-05 18:56 ` Adam Porter 2020-11-05 19:33 ` Jean Louis 2020-11-06 4:55 ` Arthur Miller 2020-11-06 9:49 ` Boruch Baum 2020-11-06 9:42 ` Boruch Baum 2020-11-05 14:21 ` Stefan Monnier 2020-11-05 9:56 ` Jean Louis 2020-11-05 17:07 ` Drew Adams 2020-11-08 19:46 ` Juri Linkov 2020-11-08 19:50 ` Sv: " arthur miller 2020-11-09 22:45 ` Mathias Dahl 2020-11-09 23:20 ` Stefan Monnier 2020-11-10 0:05 ` Drew Adams 2020-11-10 2:31 ` T.V Raman 2020-11-10 6:47 ` Jean Louis 2020-11-11 19:23 ` Juri Linkov
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).