# Zeigt her eure vimrc



## RedWing (5. Januar 2006)

Der zweite Teil der rc Manege.
Da vim relativ komplex zu bedienen ist schau ich mir gern auch bei andren die Tricks ab.
Also ich mach mal den Anfang und hoffe auf rege Beteiligung am Thread 

vimrc:


```
fun Paste_handler()
	let paste = &paste
	if paste ==# 0 
		let &paste = 1
	else 
		let &paste = 0
	endif
endf

fun Number_handler()
	let number = &number
	if number ==# 0 
		let &number = 1
	else 
		let &number = 0
	endif
endf

fun Get_program_template(title, ext)
	let prog_comment = "/**\n * @author redwing\n **/\n\n"
	let ret = ""
	if a:ext ==# "cpp"
		let ret	= "#include <iostream>\n\n"
		let	ret = ret . "using namespace std;\n\n"
		let ret = ret . "int main(){\n"
		let ret = ret . "	//insert your code here\n"
		let ret = ret . "}"
	elseif a:ext ==# "c"
		let ret = "#include <stdio.h>\n\n"
		let ret = ret . "int main(){\n"
		let ret = ret . "	//insert your code here\n"
		let ret = ret . "	return 0;\n"
		let ret = ret . "}"
	elseif a:ext ==# "java"
		let ret = prog_comment . "class " . a:title . "{\n"
		let ret = ret . "	public static void main(String[] args){\n"
		let ret = ret . "		//insert your code here\n"
		let ret = ret . "	}\n}"		
	elseif a:ext ==# "html" ||  a:ext ==# "htm"
		let ret = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"
		let ret = ret . "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""
		let ret = ret . " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
		let ret	= ret . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n\t<head>\n"
		let ret	= ret . "	<head>\n\t\t<title>" . a:title . "</title>\n\t</head>\n"
		let ret = ret . "	<body>\n\t</body>\n"
		let ret	= ret . "</html>"
	elseif a:ext ==# "mail"
		let ret = "From:steve dot kreyer at xxx.xx\nTo:  \nSubject:"
	endif
	return ret
endf

let fileext = expand('%:e')
if fileext ==# "mail"
	so ${VIMRUNTIME}/syntax/mail.vim
endif

let prog_template = Get_program_template(expand('%<'), fileext)
map <f1> <esc>:put =prog_template<cr>1Gdd:7<cr>A

map <f2> :call Paste_handler()<cr>
map <f3> :call Number_handler()<cr>
map <f5> :make<cr> " compile sources
map <f6> :cn<cr> " gives next error
map <f7> :cN<cr> " gives prev error

vmap ,ll :s/.*/\/\/&/<CR>
map <f10> :w<cr>:!/usr/sbin/sendmail -t < % <cr>:x<cr> " send mail via sendmail


set incsearch
set complete=.,w,b,u,t,i 
set foldmethod=indent
set foldlevel=20
set wildignore+=*.class
set wildignore+=*.lo
set wildignore+=*.o
set wildignore+=*.so.*
set tabstop=4
```

Gruß

RedWing


----------



## RedWing (10. Januar 2006)

Mhm ich scheine wohl in ein Nest voller emacs User gestochen zu haben


----------



## deepthroat (10. Januar 2006)

Hi.





			
				RedWing hat gesagt.:
			
		

> Mhm ich scheine wohl in ein Nest voller emacs User gestochen zu haben


Kann schon sein... 

Meine .vimrc ist nicht wirklich spannend, aber da du schon gefragt hast:
	
	
	



```
"Syntax highlighting only for enhanced-vi
if has("terminfo")
syntax on
endif

"Show matching parentheses.
set showmatch

"Default tab width
set ts=4
```
Den Code hab ich mal irgendwann im Netz gefunden. Allerdings verwende ich den vi(m) auch nicht sehr häufig - dieses ganze Modus-Hin-und-Her-Schalten, da wird man ja blöd... 

Da nehme ich doch lieber zile, zed, jed oder meinen guten, alten Emacs. ;-) Allerdings will ich hier auch keinen Glaubenskrieg anzetteln!

Gruß


----------



## Dennis Wronka (10. Januar 2006)

Ich nutz in der Regel joe, auf Systemen ohne greif ich dann vi(m) zurueck, aber da ist mir die vimrc ziemlich egal.


----------



## Aiju (10. Januar 2006)

RedWing hat gesagt.:
			
		

> Mhm ich scheine wohl in ein Nest voller emacs User gestochen zu haben


Nicht ganz: Ich mag den emacs Editor nicht, er sieht so alt aus.
Vim ist mein 2. Lieblingseditor (nach KWrite, der ist moderner  )
Wo ist denn die .vimrc, im Heimatverzeichnis gibt es keine .vimrc.


----------



## Johannes Postler (10. Januar 2006)

Dennis Wronka hat gesagt.:
			
		

> Ich nutz in der Regel joe, auf Systemen ohne greif ich dann vi(m) zurueck, aber da ist mir die vimrc ziemlich egal.



So ähnlich halt ichs auch. Wenn vorhanden, verwende ich nano oder joe. Sonst halt vi...
Ich finde den vi schon etwas arg kompliziert, um mal schnell irgendwas zu verändern. Aber ich muss zugeben: man kann mit vi (sofern man es beherrscht) wahnsinnig schnell arbeiten.


----------



## Aiju (10. Januar 2006)

Johannes Postler hat gesagt.:
			
		

> Ich finde den vi schon etwas arg kompliziert, um mal schnell irgendwas zu verändern.


Find ich nicht, ich hab nur so kurze Finger, komm so schlecht an die Escape Taste ran


----------



## RedWing (10. Januar 2006)

> Wo ist denn die .vimrc, im Heimatverzeichnis gibt es keine .vimrc.



Dann musst du sie anlegen...

Btw ich nehme den vim für alles her. Wie man sieht auch zum Emailschreiben. Wenns
mal schnell gehen soll 

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

> Btw ich nehme den vim für alles her. Wie man sieht auch zum Emailschreiben. Wenns
> mal schnell gehen soll


Wie soll das funktionieren?


----------



## RedWing (10. Januar 2006)

Via sendmail...
F1 drücken (Emailheadergenerieren lassen), Emailschreiben, F10 drücken (siehe meine 
vimrc) fertig 

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

Wie "aktiviere" ich denn die .vimrc? Ins Heimatverzeichnis kopieren, was dann?


----------



## RedWing (10. Januar 2006)

Aiju hat gesagt.:
			
		

> Wie "aktiviere" ich denn die .vimrc? Ins Heimatverzeichnis kopieren, was dann?



vim oeffnen...

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

Klappt nicht...


----------



## RedWing (10. Januar 2006)

Wie klappt nicht?

Wie sieht denn deine vimrc aus?
Liegt sie in deinem Homedirectory?
Hast du auch den vim gestartet?
Manchmal ist nämlich vi auch ein Link auf elvis etc...

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

Ich hab deine vimrc genommen (ein bisschen angepasst) nach ~/.vimrc kopiert, vim gestartet.

```
file /bin/vim
/bin/vim: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
```


----------



## RedWing (10. Januar 2006)

Und dann was hast du ausprobiert? Geladen hat er sie bestimmt wenn kein 
Fehler kam... 
Starte den vim mal mit einem leeren *.c file und drück F1 dann siehst du
obs geklappt hat opder nicht...

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

Das geht... aber wie geht dass mit den Mails? (Übrigens ich habe es ein wenig verändert, statt F1 auf F11) Außerdem habe ich Syntax-Highlighting angeschaltet:

```
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif
```


----------



## RedWing (10. Januar 2006)

Du musst sendmail erst einrichten
Würde dir aber raten dafür postfix zu verwenden. Das is nich son Konfigurationmoster wie 
sendmail 
http://www.postfix.org/
http://www.tuxhausen.de/software_postfix.html

//edit wenn du den MailHeader automatsich generieren lassen willst musst du laut meiner
vimrc die Datei mit .mail enden lassen...

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

Aber Postfix ist doch ein Mailserver, kann ich nicht einfach (mit netcat) ein shell-Skript schreiben.


----------



## RedWing (10. Januar 2006)

Ja koennte gehen.

http://de.wikipedia.org/wiki/SMTP

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

Mit SMTP kenn ich mich aus, aber woher nehme ich denn die a) E-Mail Adresse b) Nachricht+Header ?


----------



## RedWing (10. Januar 2006)

Aus der Datei die du mit vim bearbeitet hast...
Muesstest du dann halt entsprechend parsen...
Und ausserden wüsst ich jetzt auch nicht wie man das mit der Authentifizierung 
auf Seiten deines Email Provider smtp Servers machen koennte?

Gruß

RedWing


----------



## Aiju (10. Januar 2006)

```
# Mit pop.web.de verbinden (Authentifizierung)
netcat pop.web.de 110 <<END
user benutzer
pass passwort
list
quit
END
netcat smtp.web.de 25 <<END_MAIL
MAIL FROM:<meinname@web.de>
RCPT TO:<empfaenger@domain.tld>
DATA
From: Mein Name
To: empfaenger@domain.tld
Subject: Betreff

Text, text, text
.
quit
END_MAIL
```


----------



## RedWing (10. Januar 2006)

Witzige Idee da fällt der Einsatz eines Mailservers zur Weiterleitung bzw Emailversand auch 
weg 

Also so schaut des Skript bei mir aus:

sendmail:


```
#! /bin/bash
if [ $# -ne 1 ]
then
    echo "Wrong usage!"
    echo "sendmail filename"
    exit 1
fi

user="username"
pw="pwd"
useraddr="user@web.de"
popserver="pop3.web.de"
smtpserver="smtp.web.de"
content=`cat $1`
to=`cat $1 | grep "To:" |  awk -F ':' '{print $2}'`

# Mit pop3.web.de verbinden (Authentifizierung)
netcat $popserver 110 <<END
user $user
pass $pw
list
quit
END

netcat $smtpserver 25 <<END_MAIL
MAIL FROM:$useraddr
RCPT TO:$to
DATA
$content
.
quit
END_MAIL
```

So die test.mail:


```
From:yourname@web.de
To:yourreceiver@web.de
Subject: test

Hallo
```

Und so der Eintrag in der vimrc:


```
map <f10> :w<cr>:!/path/to/your/sendmail % <cr>:x<cr> " send mail via own sendmail
```

Hoffe es funktioniert 

//edit habs nochmal auf aijus pop before smtp abgeändert

Gruß

RedWing


----------

