Schrift
[thread]7704[/thread]

Vim auto indent

Leser: 1


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
frodus
 2006-02-13 10:51
#62902 #62902
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hi Leute,

ich benutze seit kurzem den Vim zum programmieren von Perl
leider rückt er meinen Src Code aber nicht so ein wie ich es gerne
hätte.

So rückt er im moment ein:
Code: (dl )
1
2
3
4
5
6
7
8
foreach my $test (@a) { 
if ($test->{hello} != 1) {
function($1,
$2,
$3);
print "hello\n";
}
}



Und so hätte ich es gerne:
Code: (dl )
1
2
3
4
5
6
7
8
foreach my $test (@a) { 
if ($test->{hello} != 1) {
function($1,
$2,
$3);
print "hello\n";
}
}


Danke,

Frodus
jmb
 2006-02-13 11:10
#62903 #62903
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
Hi,

grundsätzlich kannst du die Einrückungstiefe soweit ich weiss mit

set tabstop= ...

ändern, ob sich dsa aber auch auf funktionen, die Parameter verarbeiten ausweiten laesst, kann ich dir nicht sagen...

jmb
frodus
 2006-02-13 11:19
#62904 #62904
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hier ist mal ein ausschnitt aus meinem .vimrc:

set ruler " ru
"set number " nu
set nocompatible " nocp
set shiftwidth=2 " sw
set tabstop=2 " ts
set softtabstop=2 " sts
set expandtab " noet

"set foldcolumn=4 " fdc
"set foldmethod=indent " fdm

set nobackup " nobk
set writebackup " wb
set visualbell " vb

"set textwidth=79 " tw
"set wrap " wrap
"set formatoptions=croql2tn " fo
set autoindent " ai
set nohls
let perl_extended_vars=1
set guifont=Courier_New:h8:cANSI
"set ignorecase
"

@jmb:
Mit der Einrücktiefe bin ich eigentlich zufrieden mich stört halt das einrücken der Function. Trotzdem Danke.

Gruss,

Frodus
Crian
 2006-02-13 11:30
#62905 #62905
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Mach es so, dann klappts auch mit Vim:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
for my $test (@a) { 
if ($test->{hello} != 1) {
function(
$1,
$2,
$3,
);
print "hello\n";
}
}


So find ich es schön und hatte auch mit dem Vim keine Probleme dabei.\n\n

<!--EDIT|Crian|1139823114-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
frodus
 2006-02-13 11:41
#62906 #62906
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Ja Danke guter Tip.

Allerdings muss ich wirklich viel von meinem src code umschreiben. Mir wäre also die obere variante schon lieber.

Gruss,

Frodus
renee
 2006-02-13 11:46
#62907 #62907
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie soll den Vim erkennen, wieviel Leerzeichen da hingehoeren?? Schafft sowas ueberhaupt ein Editor??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2006-02-13 11:48
#62908 #62908
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ich hab früher auch obige Variante von Dir verwendet und dann auf untere umgestellt, aber nicht weil Vim mich dazu gebracht hat, sondern weil ich es inzwischen schöner finde. Mach es doch einfach bei neuem Code so.

Der Vorteil ist, dass die Argumente immer auf der gleichen Ebene stehen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for my $foo (@bar) {
$foo->get_hyperobject()->baz(
1,
-totalkrasserparameter => 42,
-bildsuchlauf => 'blubb',
);
alles_wird_gut(
17,
42,
23,
$foo->magic_numer(),
scalar @bar,
);
}


statt

Code: (dl )
1
2
3
4
5
6
7
8
9
10
for my $foo (@bar) {
$foo->get_hyperobject()->baz(1,
-totalkrasserparameter => 42,
-bildsuchlauf => 'blubb');
alles_wird_gut(17,
42,
23,
$foo->magic_numer(),
scalar @bar);
}


und sich weitere Parameter schmerzfreier anfügen lassen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
renee
 2006-02-13 11:51
#62909 #62909
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Anfuegen lassen sich Parameter auf beide Weisen gleich schmerzhaft, weil der Editor dann immer auf die gleiche Ebene springt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
frodus
 2006-02-13 11:53
#62910 #62910
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Ja, das werde ich mit jetzt wohl auch angewöhnen.

@renee: Ja der Emacs.

Danke und gruss,

Frodus
Crian
 2006-02-13 11:53
#62911 #62911
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Nein, bei meiner Variante steht schon ein Komma hinter dem letzten Argument und der Editor springt an die richtige Stelle, ich muss mich mit der schließenden klammer außerdem nicht rumärgern, weil die in der nächsten Zeile steht und unberührt bleibt.

Außerdem finde ich es schön, dass durch die schliessenden Klammern auf der Ebene des Funktionsstarts diese EInrückebene wieder geschlossen wird und nicht solche horizontalen Lücken klaffen (die auch noch abhängig von der Länge des Funktionsnamens sind).

Aber sowas ist ja immer mehr oder weniger eine Geschmacksfrage.

Ein Nachteil ist, dass der Code dadurch etwas wächst in vertikaler Richtung, aber soetwas schreibe ich auch nur so bei Funktionsaurufen mit vielen Parametern, ansonsten tut es ein foo(13, 'Hallo Welt'); in einer Zeile auch.

Insbesondere bei Tk-Programmen finde ich es sehr viel übersichtlicher so.\n\n

<!--EDIT|Crian|1139824740-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2006-02-13 10:51.