[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Examples of author's own uses of Hyperbole
From: |
Jean Louis |
Subject: |
Re: Examples of author's own uses of Hyperbole |
Date: |
Fri, 30 Oct 2020 04:14:25 +0300 |
User-agent: |
Mutt/+ (1036f0e) (2020-10-18) |
Dear Robert,
thank you for the explanations.
* Robert Weiner <rsw@gnu.org> [2020-10-29 07:20]:
> 2. Although you can find elements of some of these things in many
> different packages, nothing brings them together and makes them
> effortless to accomplish via a single package like Hyperbole.
That is right, there is plethora of packages reinventing the
wheel. Some packages have just few functions, or do to frames and
windows what is anyway inside of Hyperbole.
> 4. Display URLs, pathnames with environment variables in them, or
> Tramp remote paths with {M-RET}.
That is what I need in a fly mode. And I would like to propose that
one package that I am working on it, get included in Hyperbole
together. Maybe you could think about it. Then you would need to make
some few functions that I can use button "files" on the fly without
files. Package uses information in the PostgreSQL database. It
collects various hyperlinks, for example specific page in specific PDF
document. Specific video, or video with specific time to play it
from. It is similar by spirit to Hyperbole and Doug Engelbart's
work. It fits into Hyperbole package and is not polished yet that I
can provide it for testing, it will be soon.
This would give to Hyperbole huge expansion. Hyperlinks are accessed
by using Emacs Lisp with ID like (hyperscope 29) and it would open
specific category. It is displayed by using tabulated-list-mode and
user can browse from one category to other and then open links.
Some categories are simple text or could be any type of text bound to
different modes. Text comes from the database, not from the file
system.
Databases can be hosted on Internet. Users can be assigned to
contribute and handle their tasks, jump from one to other task. One
database link could point to other database link at other server. It
can all get browsable by using web or gopher service.
I just think that I have to figure out how to get Hyperbole buttons to
be used on the fly. That means if I open a buffer that I can associate
specific on the fly generated buttons to that buffer. Help me.
> 6. Follow cross-references in Markdown, Info, Texinfo and Org mode
> with {M-RET}.
I am using Hyperbole for Markdown.
Help me understand what does Hyperbole do with Info? As Info already
has links.
> 7. Jump to Emacs bookmarks or edit Org agenda items with {M-RET}.
How do you jump to Emacs bookmark?
If I display agenda with org-agenda what is difference that hyperbole does?
> 8. Jump to my personal global buttons where I store quick
> abbreviations which display frequently used directories or
> invoke arbitrary code actions I have defined.
I have that and use it to administer tasks or for the workflow. Like
upgrading servers for example. For some tasks that cannot be done in
one script but need my attention.
> 9. Compose mail by pressing {M-RET} on an email address.
That I use often, one time did not work.
> 11. Make quit-window restore my window configuration to exactly the
> way it was before I invoked Emacs help whenever I press {q}.
{q} is already bringing me back. This usage I would like to understand.
> 12. Embed brace-delimited key series (multiple key sequences strung
> together) in my documents that are executed whenever I press
> {M-RET} on them.
That is good. It is useful in teaching my staff members certain
actions. For example database maintenance actions or how to handle
communication with clients.
> 13. Choose a buffer line to put at the top of a window via {M-RET}
> at the end of a line or at the window bottom with {C-u M-RET}.
> {C-l} has adopted something similar in recent years but you have
> to cycle through positions with that rather than a single
> press.
{C-l} was always dubious and requires muscle learning to get it right.
> 14. Jump to source code lines from grep -n outputs or stack traces in
> shell mode with {M-RET}.
I can see that normal Emacs jumping to the searched string is more
accurate, as it jumps straight to the search. Hyperbole jumps to line
only. Here I do not see the difference, rather anti-feature. Please
comment that I understand better. Maybe Hyperbole was released before
grep -n worked how it works today.
By the way I remember using or having Hyperbole all the time back in
time, I may be mistaken, but it could be already 18-20 years. Time is
passing. How I used it back then, who knows, I remember creating
various buttons. For me it was fascinating and I was reading whatever
there was to read. What I remember is that it was extension to
editor.
> 15. Jump from an identifier use in code to its source definition
> with {M-RET}.
That is feature that I use mostly. I do not know equivalent
built-in. I just do not know how it works for other programming
languages.
> 16. Select groupings delimited by parens, brackets or braces in any
> mode with {M-RET} on the opening or closing delimiter. This
> also works with HTML and XML start and end tags, for quick
> selection.
Great! Something new I've learned and it is useful, especially with
those longer functions where I need to remove chunks or debug it.
> 17. {C-c RET} lets me select bigger and bigger syntactical units in
> many modes by repeatedly pressing it. I can go from a word, to
> a symbol, to a line, to a paragraph and beyond very easily.
Great! Useful feature in text. And it works in Emacs Lisp as well.
> 18. Together with Ace Window and Dired, quickly place buffers in
> windows wherever I like and then save window configurations for
> rapid recall later. I can name these configurations or use a
> window configuration ring similar to the kill ring, all
> accessible via Hyperbole quick key menu.
Oh no!!!!! How I did not discover this earlier? This is great.
Maybe I was always jumping over those menu items not understanding it
well.
> 19. Create rapid layouts of window grids with {C-c @}, letting me
> see a bunch of existing buffers at once, either ones I've marked
> in Dired, recently used ones or those of a specific mode.
That is great feature and I was watching about it on video.
With those last two points above handling window configurations
becomes very easy.
There are some frame control things to polish in Hyperbole. Not
everything works well. On the end of this message there will be link
to video that you may understand it. Keys are displayed.
> 20. Rapidly grow, shrink and rearrange windows/buffers/frames with
> HyControl, Hyperbole's scriptable window and frame manager.
That is great. Just not precise.
Sometimes when I press arrow up, frame is moving not up, but
north-west. Then if I press arrow down, it continues moving up or
north-west. Randomg bugs. It is difficult to duplicate bugs. If you
follow carefully the video you may see few bugs taking place.
Feature for frame and window control is great.
> can move frames on screen by dragging with my middle mouse
> button depressed on each frame's bottommost modeline.
How? Do I need to start frame control that it works?
> I can clone the exact size and contents of a window to a new frame
> by just dragging my middle mouse button from the window to
> outside of any frame.
How exactly?
> 21. Create hierarchical, auto-numbered outlines in the Koutliner or
> use it to brainstorm any sort of list I need.
1b. One more.
idstamp: 4
creator: "bugs@gnu.support"
create-time: "Oct 30 03:28:42 Africa/Nairobi 2020"
no-fill: t
Would the creator field be different if other user adds new cell?
In my hyperscope table entries some entries have last-user-modified
entry to know who was last. There is also last date modified.
Koutlines give for me better, rigid structure of information.
I may suggest a new function: Create button to cell, then the button
would be made either globally or somehow else for the user. That is
from Engelbart's works and is not implemented in many programs.
If I am on specific position in text, I should be able to copy or
obtain reference link to that position. Then I can have collection of
references to multiple files for better research.
Example would be when reading PDF that I can come with the mouse to
any line of text and obtain reference link. Then such link I can use
to open PDF on exactly that specific line of text.
When I am on koutline cell I expect to be able to obtain the link
easy. I see there is function to jump to specific cell. That function
could be used in automated way. Then a button or my own hyperscope
linke or your button within hyperscope text could jump to Koutline at
specific cell. I have made it on my side that if I am on the link
"People" that I press {w} similarly like in {M-x eww RET} to obtain
the link, or kill it into memory. Then I can paste it or yank later
into other document.
There is function insert link in Koutline. But it looks complex (for
now). If I am editing 3 files, one is about people, other about groups
of people, maybe I wish to kill the reference link into memory from
the file people from the cell about John Doe, so that I can insert
this reference link into the file with groups of people. Then person
could click on John Doe in that file for groups. Otherwise one need to
enter by hand the proper link to the file. I need that function.
Also, I can make the hierarchical structure of the hyperscope being
developed to export into koutline format when I understand how it
looks internally.
> Now I can embed Org tables in Koutlines too (in the latest git
> branch of Hyperbole)
Org tables are not rigid and will destroy in my opinion the rigid form
of Koutline
> and toggle this minor mode on and off by pressing {M-RET} on one of
> the table's | vertical dividers. I export Koutlines to HTML,
> or Emacs/Org outline files when needed.
You could as well make on the fly exports to Org. You could generate
Org buffer and launch straight the exporting functions of Org and you
get all exports available for Koutline.
That is what I plan to do for my database backed information manager,
which I would like to get included in Hyperbole as it belongs together
by principle. Or I could make it dependable on Hyperbole.
> 22. Manage my contacts with HyRolo, allowing rapid full-text and
> logical search across any number of contact files, each of which
> is an Emacs outline of hierarchical contact records, e.g. people
> within an organization.
That is great and pity I did not use it before years. I have been
managing contacts in text files. Today I manage 196000 contacts in the
database and there are too many parameters that would make text not
useful or tedious for work.
Like I can add any skills into the list and mark contacts to have that
skill. Then I can search by the skill, narrow the search by using some
of completion modes and then find exact contacts with those
skills. Then SMS, initiate call, send fax or email or chat message to
the contact.
Some contacts introduces many other people, I could award them. Text
file could become more confusing if I would need to manage in a more
free form.
Though I consider HyRolo as a tool for remote staff members, including
for me, when I am on remote computers and need to call people. Remote
computers may not have my central database, but they have HyRolo from
GNU ELPA.
> 24. Perform highly targeted web searches with the Hyperbole Find/Web
> menu.
Feature exists in the library webjump as well. It may be easier to
setup in Hyperbole.
What I do not know yet is how do I search Github if Google comes first
in the list?
> 25. Use my own custom Hyperbole Helm menu that exposes many of the
> useful Helm commands that are hidden or hard-to-find by the
> default configuration when you load the package.
You could do this:
(global-set-key (kbd "C-c g") 'helm-command-prefix)
Then you get something like
- {C-c g c} to open up colors or
- {C-c g f} to show buffers or
- {C-c g r} for regular expressions
- {C-c g t} for helm-top
- {C-c g p} to kill some Emacs processes
- {C-c g s} for surfraw
- {C-c g m} for helm multi files and so on
The video with bugs is here:
https://gnu.support/images/tmp/2020-10-30-03:12:53.ogv
--
Thanks,
Jean Louis
⎔ λ 🄯 𝍄 𝌡 𝌚