Gummi is a simple LateX editor but in menu Edit→Preferences allow to define code snippets as this:
\begin{figure}[htp] \centering \includegraphics[scale=${1:1.0}]{$2} \caption{$3} \label{$4} \end{figure} $0
Typing anywhere imgTab in the document, this code will be pasted As is, except the variables $0 to $4. The variable $1 have a default value, so ${1:1.0} will appear as 1.0 and selected automatically, while the othes will be empty ({$2} will appear as {}, and so on). As you start with the value of $1 selected, typing some like 0.3Tab will change the default image scale and jump to $2 position. So, to complete the whole snippet, you can type some like example-image Tab My caption Tab mylabelTab I am now in main text ...
The final resul will be:
\begin{figure}[htp] \centering \includegraphics[scale=0.3]{example-image} \caption{My caption} \label{mylabel} \end{figure} I am now in main text ...▎
Note: the ▎symbol represent the final cursor, not any real character. Do not copy this chunk of code in a document compiled with pdflatex, or you will obtain the LaTeX Error: Unicode character ▎ (U+258E) not set up for use with LaTeX.
Of course, you can edit the snippets to add for instance fig: to labels of figures automatically, or make your own new snippet of whatever code and call it with whateverTab.
Some predefined snippets already make label types added automatically. For example secTab will call to:
\section{${1:section name}} \label{sec:${2}} $0 % section $2 (end)
Therefore, sec Tab mysectionTab fooTab My nice text ... will produce:
\section{mysection} \label{sec:foo} My nice text ... % section foo (end)
\labelis that it is a stable internal identifier that you can use that does not change even if you renumber or edit the section title. Your editor macro may seem to save a fraction of time to type\label{foo}but if you then have to edit the whole document to change every\refwhen you edit a title, it is time lost.