#format rst

:title: Vim-Plugins
:author: DaMicha
:css: https://wiki.hack-hro.de/talk_styles/assets/css/style2.css
:description: Vim als Text Editor bietet von Haus aus schon eine große Vielfalt
              an Funktionen zum Erstellen und Bearbeiten von Texten jeglicher
              Art. Aber es geht noch doller. Vims Funktionalität lässt sich
              über Vim-Skripte ausbauen, die sich als Plugins einbinden lassen.
              In diesem Vortrag wird gezeigt wie sich mit Hilfe eines
              Plugin-Managers die Plugins verwaltet werden. Es werden einige
              Plugins vorgestellt, die den Umgang mit Vim erleichtern und
              dessen Funktionalität erweitern.

              Plugin Manager: pathogen
              Plugins: NERDTree, BufExplorer, gundo, VimWiki Hackspace Rostock e.V.
:data-scale: 0.7
:data-transition-duration: 1

----

Übersicht
=========

  * Vim-Plugins Allgemein
  * Plugin Manager: pathogen
  * Plugins:

    * netrw
    * paren
    * BufExplorer
    * gundo
    * NERDTree
    * VimWiki

----

Vim Plugins im Allgemeinen
==========================

  * Plugins sind Vim Skripte die automatisch beim Vim Start geladen werden.
  * Sie enden mit der Dateierweiterung `*.vim.`
  * Es gibt globale und dateityp spezifische Vim Skripte.
  * Die Skripte liegen in Unterverzeichnissen des Vim Installationspfades und
    des `~/.vim` Verzeichnisses im Nutzer Home.

----

*Mögliche Skriptverzeichnisse*:
  * `plugin`: Vim Plugins
  * `ftplugin`: dateityp spezifische Plugins
  * `syntax`: dateityp spezifische Syntaxschemas
  * `indent`: dateityp spezifische Indent-Definitionen
  * `colors`: Farbschemas
  * `autoload`: Funktionsdefinitionen, die bei Bedarf aufgerufen werden können
  * `after`: Funktionen und Einstellungen, die nach dem Laden aller Plugins
    direkt vor der Anzeige des Buffers geladen werden
  * `doc`: Dokumentationen zu Plugins (Zugriff über :help)

----

Globale plugins
===============

Sind nicht in Vim einkompiliert werden aber automatisch beim Vim Start geladen.

Aktive Plugins sind nicht einfach so anzeigbar, da sie aus einzelnen `*.vim`
Skripte bestehen, die einfach geladen werden. Stattdessen können die geladenen
`*.vim` Skripe aufgelistet werden.

::

  scriptnames

Zeigt die geladenen Skripte in der Reihenfolge in der sie geladen wurden.

----

Standard Plugin 
---------------

Werden automatisch geladen. Liegen im Vim-Installationspfad unter `plugin`.
    
  * netrw: Zugriff auf Dateien über's Netzwerk
  * paren: Zeige zugehörige Klammern

Vim-Installationspfad anzeigen:

::

  :echo $VIMRUNTIME

User Plugins 
------------

Installationpfad: `~/.vim/plugin` (Unix/Linux, Mac OS X)

Zur besseren Organisation sind Unterverzeichnisse für Plugins erlaubt.

----

filetype Plugins
================

Erweitern Vim um Funktionalität abhängig vom Filetyp einer geöffneten Datei.
Wird aktiviert mit:

::

  :filetype plugin on


Standard Plugins
----------------

Installationspfad: `<Vim Installationspfad>/ftplugin`

User Plugins
------------

Installationspfad: `~/.vim/ftplugin`

----

autoload
========

Enthält Vim-Skripte die mittels:

::

  call subpath#function(param)

aufgerufen werden können.


Einfache Vim Konfiguration
==========================

`.vimrc`:

::

  syntax on               " syntax highlighting
  filetype indent on      " activates indenting for files
  
  " backspace in insert mode works like normal editor. allow backspace over:
  set backspace=indent,eol,start
  
  set number              " enable line numbers
  
  " set color scheme (a light one)
  colorscheme desert      " colorscheme desert
  
  " tabbing config
  set expandtab           " insert spaces in tabs
  set shiftwidth=4
  set tabstop=4
  set softtabstop=4       " handle (delete) softtabs (with white space) like tabs
  
  " indenting
  set smartindent         " indenting as function of filetype
  set autoindent          " auto indenting
  
  " wild mode for tab completion in command mode: like in the bash
  set wildmode=longest,list

*FIXME*: link to file

----

Vim interne Plugins
===================

  * netrw
  * paren

----

netrw
=====

Zugriff auf Dateien über das Netzwerk:

*Beim Vim-Start*:

::

  vim scp://hostname/path/to/file

*Innerhalb von Vim*:
  * Datei editieren. Hier über scp

::

  :e scp://hostname/path/to/file


* Datei schreiben: Hier über ftp

::

  :w ftp://hostname/path/to/file

----

paren
=====

Hebt zugehörige Klammern hervor.

----

Vim (User) Plugins
==================


#

----

/* HINWEIS: Die nachfolgende Textzeile bitte nicht löschen. */
Diese Seite dient der Dokumentation des Workshops. Die Präsentationsinhalte sind unter dem Punkt ''Materialien'' verlinkt.

/* HINWEIS. Dies ist eine Vorlage, die du selbst ausfüllen musst. */
/* Dazu einfach den Text in (Klammern) durch entsprechenden Text ersetzen. */
= Info =
 Workshoptitel:: VIM-Plugins
 Workshopleiter:: DaMicha
 Datum:: 17.02.2016
 Beschreibung:: Vim als Text Editor bietet von Haus aus schon eine große Vielfalt an Funktionen zum Erstellen und Bearbeiten von Texten jeglicher Art. Aber es geht noch doller. Vims Funktionalität lässt sich über Vim-Skripte ausbauen, die sich als Plugins einbinden lassen. In diesem Vortrag wird gezeigt wie sich mit Hilfe eines Plugin-Managers die Plugins verwaltet werden. Es werden ein paar Plugins vorgestellt, die den Umgang mit Vim erleichtern und dessen Funktionalität erweitern.

  * Plugin Manager: pathogen
  * Plugins: NERDTree, Buf``Explorer, gundo, Vim``Wiki

= Materialien =

 * (Hier Materialien verlinken; Präsentationsinhalte für Hovercraft bitte auf Unterseiten dieser Seite)