help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Abbrev for shorthand purposes


From: uzibalqa
Subject: Re: Abbrev for shorthand purposes
Date: Wed, 10 Aug 2022 21:43:16 +0000

------- Original Message -------
On Wednesday, August 10th, 2022 at 8:30 PM, Jean Louis <bugs@gnu.support> wrote:


> * uzibalqa via Users list for the GNU Emacs text editor 
> help-gnu-emacs@gnu.org [2022-08-05 08:34]:
>
> > Have been trying to use abbrev for shorthand purposes. I can go from text 
> > to shorthand but not the other way round, because
> > of the punctuation. Is there something I can do? Use of abbrev-mode also 
> > fails in situations when different the same abbreviation
> > could expand to more than one word.
> >
> > ("wayward" "wa/") ("westward" "W/")
> > ("adjustment" "ajs-") ("armament" "am-")
> > ("basement" "bs-") ("casement" "ks-")
> > ("enactment" "nak-") ("enjoyment" "njy-")
> > ("enlargement" "nlj-") ("entertainment" "Ntn-") ("measurement" "mz/-") 
> > ("movement" "mv-")
> > ("recommend" "rk-") ("require" "rqi") ("separate" "sp;")
> > ("silk" "slk") ("struck" "Sk") ("subject" "sj")
>
>
> Why don't you use Emacs built-in interactive functions to add abbrevs?
>
> Purpose of abbrevs was not to use them programmatically, but to have
> it handy to quickly add them while writing text.

I am using them programmatically because I want to implement a specific
scheme for short writing.

> Abbrevs are not really made to abbreviate common words. Come one. That
> is way too complicated. They are rather for more complex statements,
> let us say to expand rms into Richard M. Stallman.

You are absolutely right, but found abbrev the closest things I can do and test 
the idea.
I can take a normal word and make an abbreviated word.  But I cannot perform 
the reverse
because the results include punctuation, which abbrev cannot process.

For instance I can go from "sentimental" to "s--l" but not the reverse.

("sentimental" "s--l")

I use company-mode to quickly complete the word "sentimental" whilst abbrev mode
would change "sentimental" to "s--l" once I hit space.

> There are other good packages for that purpose to expand common words
> of English language.
>
> How about {M-x dynamic-completion-mode RET}?

I am thinking about completion (after trying abbrev).  How can I go about it.  
What can I try?

> From completion.el:
>
> ;; After you type a few characters, pressing the "complete" key inserts
> ;; the rest of the word you are likely to type.
> ;;

Yes I can complete the word "sentimental", but am struggling on how the word 
can then be
changed to  "s--l".

> ;; This watches all the words that you type and remembers them. When
> ;; typing a new word, pressing "complete" (meta-return) "completes" the
> ;; word by inserting the most recently used word that begins with the
> ;; same characters. If you press meta-return repeatedly, it cycles
> ;; through all the words it knows about.
> ;;
> ;; If you like the completion then just continue typing, it is as if you
> ;; entered the text by hand. If you want the inserted extra characters
> ;; to go away, type control-w or delete. More options are described below.
> ;;
> ;; The guesses are made in the order of the most recently "used". Typing
> ;; in a word and then typing a separator character (such as a space) "uses"
> ;; the word. So does moving a cursor over the word. If no words are found,
> ;; it uses an extended version of the dabbrev style completion.
> ;;
> ;; You automatically save the completions you use to a file between
> ;; sessions.
> ;;
> ;; Completion enables programmers to enter longer, more descriptive
> ;; variable names while typing fewer keystrokes than they normally would.
> ;;
> ;;
> ;; Full documentation
> ;;---------------------
> ;;
> ;; A "word" is any string containing characters with either word or symbol
> ;; syntax. [E.G. Any alphanumeric string with hyphens, underscores, etc.]
> ;; Unless you change the constants, you must type at least three characters
> ;; for the word to be recognized. Only words longer than 6 characters are
> ;; saved.
> ;;
> ;; When you load this file, completion will be on. I suggest you use the
> ;; compiled version (because it is noticeably faster).
> ;;
> ;; M-x completion-mode toggles whether or not new words are added to the
> ;; database by changing the value of enable-completion.
> ;;
> ;; SAVING/LOADING COMPLETIONS
> ;; Completions are automatically saved from one session to another
> ;; (unless save-completions-flag or enable-completion is nil).
> ;; Activating this minor-mode (calling completion-initialize) loads
> ;; a completions database for a saved completions file
> ;; (default: ~/.completions). When you exit, Emacs saves a copy of the
> ;; completions that you often use. When you next start, Emacs loads in
> ;; the saved completion file.
> ;;
> ;; The number of completions saved depends loosely on
> ;; saved-completions-decay-factor. Completions that have never been
> ;; inserted via "complete" are not saved. You are encouraged to experiment
> ;; with different functions (see compute-completion-min-num-uses).
> ;;
> ;; Some completions are permanent and are always saved out. These
> ;; completions have their num-uses slot set to T. Use
> ;; add-permanent-completion to do this
> ;;
> ;; Completions are saved only if enable-completion is T. The number of old
> ;; versions kept of the saved completions file is controlled by
> ;; completions-file-versions-kept.
> ;;
> ;; COMPLETE KEY OPTIONS
> ;; The complete function takes a numeric arguments.
> ;; control-u :: leave the point at the beginning of the completion rather
> ;; than the middle.
> ;; a number :: rotate through the possible completions by that amount
> ;; `-' :: same as -1 (insert previous completion)
> ;;
> ;; HOW THE DATABASE IS MAINTAINED
> ;; <write>
>
> ;;
> ;; UPDATING THE DATABASE MANUALLY
> ;; m-x kill-completion
> ;; kills the completion at point.
> ;; m-x add-completion
> ;; m-x add-permanent-completion
> ;;
> ;; UPDATING THE DATABASE FROM A SOURCE CODE FILE
> ;; m-x add-completions-from-buffer
> ;; Parses all the definition names from a C or LISP mode buffer and
> ;; adds them to the completion database.
> ;;
> ;; m-x add-completions-from-lisp-file
> ;; Parses all the definition names from a C or Lisp mode file and
> ;; adds them to the completion database.
> ;;
> ;; UPDATING THE DATABASE FROM A TAGS TABLE
> ;; m-x add-completions-from-tags-table
> ;; Adds completions from the current tags-table-buffer.
> ;;
> ;; HOW A COMPLETION IS FOUND
> ;; <write>
>
> ;;
> ;; STRING CASING
> ;; Completion is string case independent if case-fold-search has its
> ;; normal default of T. Also when the completion is inserted the case of the
> ;; entry is coerced appropriately.
> ;; [E.G. APP --> APPROPRIATELY app --> appropriately
>
> ;; App --> Appropriately]
>
> ;;
> ;; INITIALIZATION
> ;; The form `(completion-initialize)' initializes the completion system by
> ;; trying to load in the user's completions. After the first call, further
> ;; calls have no effect so one should be careful not to put the form in a
> ;; site's standard site-init file.
>
>
>
>
> --
> Jean
>
> Take action in Free Software Foundation campaigns:
> https://www.fsf.org/campaigns
>
> In support of Richard M. Stallman
> https://stallmansupport.org/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]