A plugin is a script or set of scripts that changes Vim's default behavior, either by adding non-existing features or by extending existing features.
Often added "non-existing features" include:
- commenting,
 
- indentation detection,
 
- autocompletion,
 
- fuzzy-matching,
 
- support for a specific language,
 
- etc.
 
Often extended "existing features" include:
- omni-completion,
 
- text-objects & motions,
 
- yanking & putting,
 
- status line,
 
- search & replace,
 
- buffer/window/tab page switching,
 
- folding,
 
- etc.