$(shell ) - Run 'command' in a shell and return output
$(call var,arg,arg,...) - Call a function, var, with args.
call example call example: reverse = $(2) $(1) D = $(call reverse,a,b) # D will contain 'b a'
$(filter pat,text) - Filter 'text' by 'pat'
filter example filter example: D = a.h a.c b.h b.c CFiles = $(filter %.c,$(D)) # CFiles will contain 'a.c b.c' only
$(if ,,) - If 'cond' is non-empty string, do 'then'...
$(or arg,arg,...) - Return first non-empty arg or empty string
$(and arg,arg,...) - Return empty string or last non-empty arg
I always forget these steps so noting them here. This does assume that an empty repo is first created on GitHub.
Here are some settings that I use in Vim to make it useful without having to install a ton of plugins.
" Vim File Search Settings
set path+=**
set wildmenu
Setting the path variable will allow Vim to search subdirectories and turn on tab completion.
Setting the wildmenu will show a list of matching files in a popup line when tab completion is used.
Once these two are set, you can use :find with tab and * to autocomplete and wildcard-match files.
" Vim Tag Jumping
command! MakeTags !ctags -R .
To use this, ctags
must be installed. When this command is issued, a tags file
is created. Then, you can use ^]
to jump to a tag that's under the cursor. Use
g^]
for an ambiguous tag search. Use ^t
to jump back to where you were. Issue
the command as needed to update the tags file. (^ means the control key.)
To autocomplete words while typing, use control x to start the autocomplete.
Then use control n for local completes (from within the file), control f for file name completes, and control ] for tag completes.