gudn tach!
oO ... der gefürchtete Glaubenskrieg. *sich duck* ;)
aetschi, baetschi... du hast aba angefangen. ;-)
Ein paar Highlights weiß ich noch über VIM, beim Rest... naja, ich zähl einfach auf,
was ich für bemerkenswert halte und Du kannst ja sagen, ob VIM da mithalten kann.
k
vim muß man mühsam erlernen - SciTE ist weitestgehend intuitiv. ha! :)
die intuitivitaet (um nicht zu sagen intuition) muss bei vim der geschwindigkeit weichen, ja. aber man erlernt vim schneller, als man am anfang denkt.
( Man kann aber auch bei SciTE z.B. Strg+G drücken um direkt
zu einer Zeile zu springen... also mausabhängig ist's nicht. )
bei vim braucht man dafuer nicht mal ctrl. ;-)
Man kann nach >>Regulären Ausdrücken<< suchen und ersetzen
*gespannt auf die VIM-Fähigkeiten schau*
vim kann mehr(!) als perl, sogar zero-width look-behind assertions variabler laenge sind fuer vim kein problem!
iow: ich kenne keine maechtigere regexp-engine als die von vim.
dennoch benutze ich gerne auch externe scripts, z.b. perl oder sed, da sie sich ja sehr leicht in vim einbinden lassen.
Und: Suche in allen Dateien eines Verzeichnisses?
fuer sowas nutze ich am liebsten das externe grep, also in vim z.b. via
:!grep foo bar
aber vim bietet auch ein internes grep, mehr dazu via
:h grep
Makros erstellen ... dürfte VIM wohl auch können, oder?
und wie!
:h q
man kann die makros auch beliebig nachbearbeiten.
fuer kompliziertere aufgaben, kann man sich entsprechende funktionen basteln, da vim auch ne eigene scriptsprache besitzt (oder man schreibt's in perl und bindet das ein).
Wobei meine aktuelle SciTE-Version kein Makro-Knöpfchen mehr hat.
Kann aber ein optionales Paket gewesen sein...
gvim kann auch knoepfe. ;-)
Lesezeichen setzen? (und zu ihnen springen?)
klaro.
:h m
"ma" setzt das lesezeichen "a" und "'a" springt zum lesezeichen "a".
Klammerblöcke zuklappen?
code-folding? ja, sogar verschachteltes folding ist moeglich.
:h folding
Da bin ich gespannt: CVS-Unterstützung!
Per Tastendruck mal eben Monospace-Schriftart verwenden.
da ich was anderes als monospace-fonts nicht benutze, kann ich dazu kaum was sagen. aber ich gehe davon aus, dass das geht.
Wie steht's bei VIM mit Schrift-Kodierungen und variablen Zeilenende-Zeichen?
hab z.b. letztens mal spasseshalber "vim -A" ausprobiert und mich ueber lustige arabische schriftzeichen gefreut, auch wenn ich sie nicht mal rudimentaer verstand.
variable zeilenende-zeichen? vermutlich meinst du CRLF und sowas. ja damit kommt vim klar und mit z.b.
:set fileformat=unix
kann man das auch umdefinieren.
Export des Quelltextes als html, pdf, rtf, latex oder xml?
hab letztens sowas gesehen, aber auch hier verwende ich am liebsten darauf spezialisierte externe software, also z.b. code2html oder neuer und besser: highlight
Und wie sieht's mit dem Speichern von Sitzungen aus?
(so daß die gleichen Tabs beim laden wieder angezeigt
werden und zur selben Stelle gescrollt sind)
:h :mksession
bzw.
:h :mkview
Naja, und dann noch Abkürzungen festlegen,
:h map
Wortvorschläge, ausgehend vom bisher geschriebenen Text + vom Befehlssatz,
:h complete
:h compl-omni
und Anzeige der zu erwartenden Attribute bei der Befehlseingabe?
z.b.
:h ft-html-omni
Ich hab mal wegen des Hypes um VIM den Editor ne Woche lang ernsthaft ausprobiert
und SciTE solange verbannt. Obwohl ich die meistgenutzten Befehle auf nem
Din A4-Zettel neben dem Monitor hängen hatte, kam ich einfach nicht zurecht.
vimtutor (eingeben)
nach ner stunde oder so geht dann schon das wichtigste, auch wenn es noch nicht fliessend kommt.
aber nach ner woche sollte man sich eigentlich schon halbwegs dran gewoehnt haben. klar, man kennt noch nicht so viele kniffe, aber das kommt dann ziemlich schnell von ganz allein, weil die hilfe so genial ist.
Fing schon damit an, daß VIM zumindest als Windoof-Version etwa 1,5sek zum laden braucht.
hmm, also ich habe daheim 466 MHz und unter windows 2000 ist vim praktisch sofort da.
gvim braucht etwas laenger; liegt aber u.a. auch daran, dass ich per vimrc jedes mal das menue loeschen und (englisch) neu aufbauen lasse, um etwaige deutsche menues zu verbannen.
evtl. solltest du mal dein vimrc-file ueberarbeiten.
Und die ach-so-tollen Schnellbefehle wie "dd" oder "zb" - die sind ja doll, wenn
man keine "vernünftige" Tastatur hat.
dachte ich auch immer (vor vim). ist aber nicht so. vim kann halt noch viel mehr als die normalen editoren.
Aber Umschalt & Ende + Entf ist genauso fix wie "dd" getippt.
pos 1, shift+end, del
statt
dd
ist imho schon einen tick lahmer, zumal man dafuer nicht mal sein handgelenk bewegen braucht.
(btw. ctrl+[ ist viel angenehmer als escape, in vim)
- "Ende" sogar noch schneller als "zb".
end
geht auch in vim.
und
zb
ist was ganz anderes als "end".
ans ende einer zeile gelangt man (neben end) mit dem dollar-zeichen.
Ein Wort springen: "Strg & ->" statt w - genauso schnell...
w ist einen tick schneller, weil man wieder das handgelenk nicht bewegen braucht (in vim kann man die rechte hand die meiste zeit ueber dem buchstabenblock belassen).
aber ctrl+right geht auch im vim.
beachte uebrigens:
w ist shift+right ("kurzer sprung")
W ist ctrl+right ("langer sprung")
Also kurz und gut: die tollen VI(M)-Befehle, die angeblich zu einer höheren
Produktivität führen sollen, sind imho nur dann effektiver, wenn die
Vergleichsperson eine Maus-verwöhnte Lebensform ist, statt jemand, der schon
zu DOS-Zeiten sich durch Editoren bewegen mußte.
(Ich fühl mich gerad uralt!)
ich gehoere auch zu den dos-leuten, bei denen die mouse permanent unter minderwertigkeitskomplexe litt und leidet.
vim bietet aber wesentlich mehr moeglichkeiten als gewoehnliche editoren.
ich nenne mal bloss ein paar beispiele, die mir spontan einfallen:
d} - loesche alles von aktueller stelle bis zum naechsten absatz.
daw - loesche aktuelles wort, unabhaengig davon wo in diesem wort sich gerade der curser befindet (also im gewoehnlichen editor: ctrl-left, shift-ctrl-right, del). beachte, dass "daw" sich prima tippen laesst.
das - loesche den aktuellen satz.
) - springe zum satzende
ctrl-a - springe zur naechsten zahl in der aktuellen zeile rechts vom cursor und erhoehe sie um eins. (du glaubst nicht, wie haeufig man das gebrauchen kann.)
zz - richte bildschirm-ausgabe zentriert an aktueller zeile aus.
M - springe mit cursor in bildschirmmitte
% - springe zum "partner", z.b. von einer klammer zur dazugehoerigen anderen klammer oder von einem "if" zum zugehoerigen "end" oder aehnliches.
. - wiederhole letzte aenderung, aber an aktueller cursor-position
/ - leite suche ein
fX - springe zum naechsten vorkommnis von X in aktueller zeile (X ist hier platzhalter fuer ein bel. zeichen)
vtXp - ersetze alles von aktueller position bis zum naechsten X durch den inhalt des primaeren registers und ersetze inhalt des primaeren registers durch geloeschten text.
mittels block-selection und entsprechende eingabe-moeglichkeit
ctrl-v, <motion>, I <text>
kann man beispielsweise aus
afoo
bbar
cbaz
dquux
equuux
fquuuux
sehr schnell sowas wie
a = foo
b = bar
c = baz
d = quux
e = quuux
f = quuuux
basteln.
so, jetzt muss ich aber wieder was schaffen.
prost
seth