Durch das Hinzufügen von # wird der Cursor zum Zeilenanfang bewegt

349

Warum bewegt mich vim an den Anfang einer Zeile, wenn ich auf # für einen Kommentar oder Kommentar in einer Perl-Datei drücke?

Warum sollte ich nicht möchten, dass mein Kommentar auf derselben Ebene wie der aktuelle Code eingerückt wird?

3
Meinen Sie im Einfügemodus "#" oder verwenden Sie ein Mapping, um die Zeile zu kommentieren? vor 12 Jahren 0
@jHack - überprüfe 'related' nach rechts; vi ist absolut verwandt (und häufig gefragt / beantwortet) KevinDTimm vor 12 Jahren 1
@KevinDTimm: du hast recht, ich werde versuchen meine flagge / kommentare zu entfernen vor 12 Jahren 0
Noch einmal ... diese vim Fragen gehören auf SO, nicht auf SU. Randy Morris vor 12 Jahren 1

3 Antworten auf die Frage

4
Fredrik Pihl

Stellen Sie sicher, dass Folgendes in Ihrer .vimrc festgelegt ist:

filetype plugin indent on syntax enable 

Wenn Sie die Einrückungsoption "smartindent" verwenden, wird in der :help smartindentVIM-Dokumentation eine Lösung für Ihr Problem beschrieben :

Wenn Sie '#' als erstes Zeichen in einer neuen Zeile eingeben, wird der Einzug für diese Zeile entfernt und das '#' in die erste Spalte eingefügt. Der Einzug wird für die nächste Zeile wiederhergestellt. Wenn Sie dies nicht möchten, verwenden Sie diese Zuordnung: ": inoremap # X ^ H #", wobei ^ H mit CTRL-V CTRL-H eingegeben wird. Bei Verwendung des Befehls ">>" werden Zeilen, die mit '#' beginnen, nicht nach rechts verschoben.

1
Edd Barrett

Ich denke, es ist verwirrt und glaubt, dass Sie eine C-Datei bearbeiten, in der Präprozessoranweisungen gegen den linken Rand gerichtet sein müssen.

0
arcanereinz
:inoremap # X^H# 

hat nicht für mich gearbeitet, hier ist was:

inoremap # ^T#^D 
  • ^T (Strg-T) Einrückungen
  • ^D Einrückungen

Der Nachteil dieser Lösung besteht darin, dass Sie, wenn Sie sich nicht in einer Spalte für den Einzug befinden, eine Spalte einfangen. Wenn Ihr Code richtig eingerückt ist, sollte dies kein Problem sein.