#  -*- coding: utf8 -*-
#
# 18.2.2017

"""
Python-Skript für Vim

Ersetze im aktuellen VIM-Puffer alle Wörter, die in der Datei "words"
vorkommen, durch ihre Entsprechung in Großbuchstaben. Jede Zeile von "words"
wird als Wort betrachtet, wobei das abschließende CR oder CRLF entfernt wird.
Leere Wörter werden ignoriert.
"""

# Modul vim dient dem Zugriff auf Vim-Strukturen
import sys, vim

# aktuellen Puffer holen
buffer = vim.current.buffer

# die Wörter aus "words" einlesen und die Zeilenende-Kennzeichen am Wort
# entfernen
words = [w.rstrip('\r\n') for w in open('words')]

# zeilenweise den Puffer durchlaufen
for nr in range(len(buffer)):
  # aktuelle Zeile aus dem Puffer nehmen
  line = buffer[nr]
  # die Liste der zu ersetzenden Wörter durchlaufen
  for word in words:
    if not word:
      # leere Wörter ignorieren wir
      continue
    # alle Wörter entsprechend ersetzen
    line = line.replace(word, word.upper())
  # die ggf. modifizierte Zeile in den Puffer zurückschreiben
  buffer[nr] = line
