vi FreeBSD <> Linux

gelbasack

Member
Hi!
Verwende auf Uni unter Linux/HP-UX vi, zu hause hab' ich allerdings FreeBSD. Konfiguration hab' ich mir schon angesehen, aber einige Optionen finde ich nicht (auch nicht in Tutorials, man-Page). vi zeigt unter BSD zB nicht an, in welchem Mode ich gerade bin (visual-insert-normal oder so). Löschen mit Backspace oder Delete funktioniert überhaupt nicht. Tja - vielleicht kennt jemand die Unterschiede und deren Gründe. Für mich ist das ziemlich störend so. :confused:
 
einer der gruende duerfte vor allen dingen sein, dass mit den meisten linux-distributionen nicht der "echte" vi ausgeliefert wird, sondern vim, aka VI iMproved.

falls dich das thema noch weiter interessiert... es gibt auch noch nvi, elvis, und was weiss ich.... gib mal da, wo du deine lieblingsgeschmacksrichtung hast "vi" ein. und guck nach, was der sagt, wer er ist.

unter umstaenden musst du einfach noch den vim aus den ports nachinstallieren, und per hand den link vi->vim setzen. ist auch immer das alleralleralllerallererste was ich bei nem neuen system mache ;-)
 
mmh, ich bin mir nicht ganz sicher bei hp-ux, aber linux verwendet standardmäßig, glaube ich, vim (vi improved) während bsd den nativen vi nutzt. vi ist nur auf vim gelinkt.

du kannst den aus den ports nachinstallieren, gibt's glaube ich auch als package.
 
Code:
cd /usr/ports/editors/vim
make NO_GUI=yes install clean # nur fuer Konsole
echo ":set backspace=indent,eol,start" >> ~/.vimrc
echo "alias vi='vim'" >> ~/.profile # fuer die bash
Danach muesste alles so gehen wie du es willst.
 
Linux benutzt den VIM, BSD den ur-VI.

Einfach den VIM aus den Ports installieren und das config File aus ../examples nach $HOME kopieren. Denn ohne config fühlt sich auch der VIM an wie ur-VI.

r0b0
 
dettus schrieb:
falls dich das thema noch weiter interessiert... es gibt auch noch nvi, elvis, und was weiss ich.... gib mal da, wo du deine lieblingsgeschmacksrichtung hast "vi" ein. und guck nach, was der sagt, wer er ist.
Tja, lange suche ich, kaum habe ich gepostet, erscheint alles lächerlich... Als ich vim tippte in BSD (irgendwie kam ich nie auf die Idee, das ohne Filename zu machen bis jetzt...) stand da gleich vi-kompatibler Mode on :nocp - tja, das war alles. Jetzt schäme ich mich in Grund und Boden, vielen Dank euch allen!
 
gut, nachdem das alles geklaert ist..... es muss einfach raus:
vim ist mein absoluuuuuuuuuuuuuuuuter lieblingseditor!!
cooles syntaxhighlighting, ich schreib mit dem teil c, verilog, assembler, latex... ohne probleme. suchen/ersetzen versteht genau das subset der regular expressions, das ich brauche. und wenn ich "mal eben schnell" 40 zeilen loeschen will, gebe ich einfach "40dd" ein. "40=" sorgt auch fuer einiges an uebersichtlichkeit.
die tastaturkommandos sind zu anfang vielleicht etwas umstaendlich, aber dafuer gibt es ja zum glueck tassen *g* und nach etwa einer woche gehen die auch superfluessig von der hand, weil man fuer die die finger nur minimal bewegen muss.
lustig sind auch die files in denen das syntaxhighlighting definiert ist: die heissen so etwa wie tex.vim, c.vim, cpp.vim, vhdl.vim, v.vim, bas.h etc. am allerlustigsten ist dann da aber das vim.vim ;-)

und, stichwort "write once- run everywhere"... meine .vimrc hat schon unzaehlige prozessorarchitekturen gesehen. ;-)
 
Da hätte ich mal ne Frage an die vim-Nutzer:
Ich hab meine Config soweit eingestellt, daß sie mir weitestgehend gefällt. Nur eine Sache stört mich noch. Ich kann den Cursor nie hinter das letzte Zeichen einer Zeile bringen, weder im Insertmodus noch sonst. Das ist oft recht nervig weil man da ja dann andauernd das letzte Zeichen der Zeile nochmal schreiben muss wenn man dahinter etwas anfügen möchte. Ich hab lange gesucht aber die Option das zu ändern hab ich nicht gefunden. Kann mir da einer sagen wie ich das ändern kann?

Gruß, matze
 
dettus schrieb:
vim ist mein absoluuuuuuuuuuuuuuuuter lieblingseditor!!
cooles syntaxhighlighting, ich schreib mit dem teil c, verilog, assembler, latex...
Ja, mir gefällt er auch sehr gut. Das Einzige, was ich bis jetzt noch nicht fand, war das Einrücken von markiertem Text. Unter Kate geht das toll. Einen Absatz markieren, Tabulator drücken und der markierte Block wurde 2 Leerzeichen weiter nach rechts verschoben. Sehr praktisch, wenn man beim Programmieren einen Block in if, while,... verschachtelt.
 
gelbasack schrieb:
Ja, mir gefällt er auch sehr gut. Das Einzige, was ich bis jetzt noch nicht fand, war das Einrücken von markiertem Text. Unter Kate geht das toll. Einen Absatz markieren, Tabulator drücken und der markierte Block wurde 2 Leerzeichen weiter nach rechts verschoben. Sehr praktisch, wenn man beim Programmieren einen Block in if, while,... verschachtelt.

versuch mal das "<" bzw. das ">" symbol zwei mal im ex-modus zu drücken.
 
einmal ">" reicht, wenn der text vorher mit "v" markiert wurde ;-)
oder du machst es automatisch... einfach den ganzen text markieren und "="druecken.

@.mp: probier mal "a" statt "i" um in den insert-modus zu kommen. ich denke, dass das dein problem loest.
 
dettus schrieb:
@.mp: probier mal "a" statt "i" um in den insert-modus zu kommen. ich denke, dass das dein problem loest.
LOL dat jibbet doch net. Da hätt ich ja noch Jahre suchen können ohne die Option zu finden - daran hätt ich nie gedacht... ^^ thx!

Gruß, matze
 
Sorry, war entweder schlecht formuliert von mir oder ich hab' eure Antworten falsch verstanden. Es ging mir um die 2 Leerzeichen ;)
Ich habe den Tabulator zwar mit 'set ts=2' eingestellt, allerdings funktioniert diese Einstellung nicht für's Einrücken mit < oder > im Visual Mode. Naja, manche Tuts sprechen auch von einer ht Option, die mein vi allerdings nicht kennt... Arbeitet ihr beim Einrücken mit 8 Zeichen Tabulatorbreite? Oder gibt's da auch was? ;)
 
Danke, das mit dem einruecken ist extrem praktisch.

Shift+A bewegt den Cursor ans Ende der Zeile und wechselt in den Insert-Modus.

set tabstop=3 rueckt den Tab nur 3 Zeichen weiter.
 
dettus schrieb:
einmal ">" reicht, wenn der text vorher mit "v" markiert wurde ;-)
oder du machst es automatisch... einfach den ganzen text markieren und "="druecken.

Natürlich kann man hier auch eine Ziffer vorstellen, so rückt zum Beispiel

"10>>" bzw. "10<<"

die folgenden 10 Zeilen vor/zurück.

Man empfehle VIM Tutor, wenn man solche praktischen Kleinigkeiten sucht.
Auch die verschiedenen Eingabeoptionen oOaAiI, etc. sind dort brauchbar mittels learning by doing auffindbar.
 
mit A springst Du ans Zeilenende und bist im Schreibmodus. =)

edit: Huch, die Posts habe nich nicht gesen...moonlook hat es bereits erwähnt.
 
was ich bei meiner lobhudelei noch vergessen habe: man vertippt sich einmal und hat schon einen neuen befehl gelernt ;-)
 
Argh, bitte nicht ts aendern, ts=8 und das sollte so bleiben. Was du willst ist shiftwidth (sw) oder zusammen mit expandtab (et), damit werden aber alle TABs in Leerzeichen umgewandelt.

Und ja, leider programmieren viele mit harten Tabs und stellen nur in ihrem Editor ts=2 ein. Ueberall anders sieht es dann natuerlich scheisse aus. Normalerweise setzt man sw=2 und dann halt noch autoindent. Dann kriegt man 2, 4, 6 leerzeichen, danach einen tab, dann tab + {2,4,6} leerzeichen, dann zwei Tabs etc.

Ist weng komplizierter, dafuer aber "richtig" und sieht ueberall gleich aus (solange man nicht im editor ts verpfuscht hat).
Meine Meinung .... (nachdem ich mich ueber C++ Quellcode aufregen darf, der mit Tabs eingerueckt ist, no comment)
 
Zurück
Oben