Auto-indent Räume mit C in vim?
-
01-07-2019 - |
Frage
Ich bin verdorben etwas Eclipse und Java verwenden. Ich begann mit vim C-Codierung in einer Linux-Umgebung zu tun, ist es eine Möglichkeit, Vim automatisch den richtigen Abstand für die Blöcke zu tun?
So nach der Eingabe eine {die nächste Zeile wird zwei Räume in eingekerbt hat, und eine Rückkehr auf dieser Linie wird es in der gleichen Vertiefung halten und a} verschiebt 2 Felder zurück?
Lösung
Diese beiden Befehle sollte es tun:
:set autoindent
:set cindent
Für Bonuspunkte setzen Sie sie in einer Datei .vimrc in Ihrem Home-Verzeichnis auf Linux befindet sich dem Namen
Andere Tipps
schrieb alles über Registerkarten in Vim , die ein paar interessante Dinge gibt Ihnen nicht zustande fragen . Zur automatischen Einzug Klammern, verwenden Sie:
:set cindent
zwei Leerzeichen einzurücken (statt einer Registerkarte von acht Räume, die vim Standard):
:set shiftwidth=2
Damit vim aus der Umwandlung acht Leerzeichen in Tabulatoren:
:set expandtab
Wenn Sie jemals den Einzug eines Textblock ändern möchten, verwenden Sie
(Ich würde versuchen, Sie zu sprechen aus der Verwendung von zwei Raum Einzug, da ich (und die meisten anderen Menschen) finden es schwer zu lesen, aber das ist eine andere Diskussion.)
Viele vim-Funktionen (wie autoindent
und cindent
) sind standardmäßig deaktiviert. Um zu sehen, wirklich was vim für Sie tun können, benötigen Sie eine anständige ~/.vimrc
.
Ein guter Starter ist in $VIMRUNTIME/vimrc_example.vim
. Wenn Sie es ausprobieren möchten, verwenden Sie
:source $VIMRUNTIME/vimrc_example.vim
, wenn in vim.
ich eigentlich würde vorschlagen, Kopieren Sie einfach den Inhalt auf Ihre ~/.vimrc
wie es gut kommentiert ist, und ein guter Ort, um zu lernen, wie vim zu verwenden. Sie können dies tun, indem
:e $VIMRUNTIME/vimrc_example.vim
:w! ~/.vimrc
Dies wird Ihren aktuellen ~/.vimrc
überschreiben, aber wenn alles, was Sie da drin sind die Einzugseinstellungen Davr vorgeschlagen, würde ich es nicht schwitzen, wie das Beispiel vimrc kümmern, dass auch für Sie braucht. Für eine Komplettlösung des Beispiels, und was es für Sie tut, siehe :help vimrc-intro
.
Einfach laufen:
user@host:~ $ echo set autoindent >> .vimrc
Ich denke, die beste Antwort tatsächlich auf dem vim wikia erklärt:
http://vim.wikia.com/wiki/Indenting_source_code
Beachten Sie, dass es darauf hin, gegen die Verwendung von „set autoindent.“ Die beste Eigenschaft alles, was ich in dieser Erklärung finden ist in der Lage, Einstellungen per-Datei zu setzen, was besonders nützlich ist, wenn Sie in Python und C ++ programmieren, zum Beispiel, wie Sie 4 Räume für Registerkarten in den ehemaligen wollen würden und 2 für Räume im letzteren.
und immer daran denken, diese ehrwürdige Erklärung von Spaces + Tabs:
Versuchen:
set sw = 2
gesetzt ts = 2
set smartindent