it-swarm.com.de

Leerzeichen mit C in vim automatisch einrücken?

Ich bin mit Eclipse und Java etwas verwöhnt worden. Ich habe angefangen, vim für die C-Codierung in einer Linux-Umgebung zu verwenden. Gibt es eine Möglichkeit, vim automatisch den richtigen Abstand für Blöcke festlegen zu lassen?

Nachdem Sie also ein {eingegeben haben, werden in der nächsten Zeile 2 Leerzeichen eingerückt. Wenn Sie in diese Zeile zurückkehren, wird der Einzug beibehalten, und ein} wird um 2 Leerzeichen zurückgesetzt.

82
zxcv

Diese beiden Befehle sollten es tun:

:set autoindent
:set cindent

Für Bonuspunkte legen Sie diese in einer Datei mit dem Namen .vimrc ab, die sich in Ihrem Home-Verzeichnis unter Linux befindet

132
davr

I schrieb alles über Tabs in vim , das ein paar interessante Dinge enthält, nach denen Sie nicht gefragt haben. Verwenden Sie zum automatischen Einrücken von Klammern Folgendes:

:set cindent

So rücken Sie zwei Leerzeichen ein (anstelle eines Tabulators mit acht Leerzeichen ist dies die Standardeinstellung von vim):

:set shiftwidth=2

Um vim davon abzuhalten, acht Leerzeichen in Tabulatoren umzuwandeln, gehen Sie wie folgt vor:

:set expandtab

Wenn Sie jemals den Einzug eines Textblocks ändern möchten, verwenden Sie <und>. Ich verwende dies normalerweise in Verbindung mit dem Blockauswahlmodus (v, wähle einen Textblock aus, <oder>).

(Ich würde versuchen, Ihnen die Verwendung von Einrückungen mit zwei Leerzeichen auszureden, da ich (und die meisten anderen Leute) es schwer finde, sie zu lesen, aber das ist eine andere Diskussion.)

54

Viele Funktionen von vim (wie autoindent und cindent) sind standardmäßig deaktiviert. Um wirklich zu sehen, was vim für Sie tun kann, benötigen Sie einen anständigen ~/.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.

Eigentlich würde ich vorschlagen, nur den Inhalt in Ihren ~/.vimrc Zu kopieren, da er gut kommentiert ist und ein guter Ort ist, um den Umgang mit vim zu erlernen. Sie können dies tun, indem Sie

:e $VIMRUNTIME/vimrc_example.vim
:w! ~/.vimrc

Dies wird Ihren aktuellen ~/.vimrc Überschreiben, aber wenn Sie nur die von Davr vorgeschlagenen Einrückungseinstellungen haben, würde ich nicht schwitzen, da das Beispiel vimrc dies auch für Sie erledigt. Eine vollständige exemplarische Darstellung des Beispiels und seiner Funktionen finden Sie unter :help vimrc-intro.

8
rampion

Einfach ausführen:

[email protected]:~ $ echo set autoindent >> .vimrc
6
JamesM-SiteGen

Ich denke, die beste Antwort wird im Vim-Wiki erklärt:

http://vim.wikia.com/wiki/Indenting_source_code

Beachten Sie, dass davon abgeraten wird, "set autoindent" zu verwenden. Das Beste an all dem, was ich in dieser Erklärung finde, ist die Möglichkeit, Einstellungen pro Datei vorzunehmen. Dies ist besonders nützlich, wenn Sie beispielsweise in python und C++ programmieren, wie Sie möchten 4 Leerzeichen für Tabulatoren im ersten und 2 für Leerzeichen im zweiten.

3
user809472

und denken Sie immer an diese ehrwürdige Erklärung von Leerzeichen + Tabulatoren:

http://www.jwz.org/doc/tabs-vs-spaces.html

0
mike511