Tabs durch Leerzeichen ersetzen in vim
Ich würde gerne konvertieren von tab zu Leerzeichen in gVim. Fügte ich folgende Zeile in meine _vimrc
:
set tabstop=2
Funktioniert es halt in zwei Bereiche, aber es sieht immer noch wie eine tab-Taste eingefügt (ich habe versucht, die h-Taste, um count Leerzeichen danach).
Ich bin mir nicht sicher, was sollte ich tun, um gVim konvertiert tabs in Leerzeichen?
- Persönlich, ich finden würde, tabstop=2 zu klein, ein Gedankenstrich; ich benutze ts=4, und zu verstehen, warum Menschen (wie der Linux-kernel-team) verwenden ts=8 (und Sie nicht mit expandtab - ich weiß).
- Gibt es eine Möglichkeit zum konvertieren von Leerzeichen in tabs vim?
- das ersetzen der Leerzeichen durch tab-Zeichen (
^I
ausCtrl-v
dannTab
) würde arbeiten, zum Beispiel, wenn Ihre aktuelle Registerkarten 4 Felder::%s/ /^I/g
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich mich Recht erinnere, so etwas wie:
sollte den trick tun. Wenn Sie bereits tabs, dann Folgen Sie es mit einem schönen Globale RE, ersetzen Sie Sie mit doppelten Leerzeichen.
set
konstant, so dass diese änderung speichert, jedes mal wenn ich vim?:retab
alle zu beheben, die vorhandenen Registerkarten.Sobald Sie haben expandtab auf, wie pro die anderen Antworten, die äußerst bequemer Weg, um konvertieren von bestehenden Dateien nach Ihren neuen Einstellungen ist:
Wird es funktionieren auf dem aktuellen Puffer.
:%s/\t/ /g
für Jahre, bevor man Ihre Kommentar.:args retab | w
zu tun, um alle geöffneten Dateien auf der Kommandozeile, z.B.vim *.txt
.Versuchen
für soft-tabs.
Fix bereits vorhandenen Registerkarten:
Früher habe ich zwei Räume, da Sie bereits Ihr tabstop auf 2 Räume.
set ts = 4
.Dieser arbeitete für mich:
können Sie sehen Registerkarten mit ersten, dies zu tun:
dann, um es möglich zu ersetzen, die tabs dann tun Sie dies:
dann
nun alle Registerkarten wurden ersetzt mit Leerzeichen
Sie können dann gehen Sie zurück zur normalen Anzeige wie diese :
gg=G
wird reindent die gesamte Datei und entfernt die meisten, wenn nicht alle Registerkarten bekomme ich bei Dateien, die von co-Arbeitskräfte.=
- format, und macht eine Bewegung-Befehl.G
verschiebt den cursor an das Ende des Puffers, so wird es erzählt vim-format vom Anfang bis zum Ende Ihres aktuellen Puffer.Fügen Sie folgende Zeilen zu Ihrer .vimrc
Öffnen Sie eine Datei in vim, und drücken Sie F2
Die Registerkarten werden in 4 Räume und die Datei wird automatisch gespeichert.
Wenn Sie möchten, um Ihr
\t
gleich 8 Leerzeichen, dann ziehen Sie in Betracht:Dies wird Ihnen zwei Räume pro
<TAB>
drücken, aber die tatsächliche\t
im code wird immer noch angezeigt als 8 Zeichen.softtabstop
eines der killer-features, denke ich.ersten Suche für tabs in der Datei : /^I
:set expandtab
:retab
arbeiten.
expand
ist ein unix-Dienstprogramm zum konvertieren von tabs zu Leerzeichen. Wenn Sie nicht wollen, umset
alles in vim verwenden, können Sie ein shell-Befehl von vim::
. Jetzt der vim-Befehlszeile zeigt:'<,'>
. Geben Sie dann!expand -t4
für tab auf 4 Leerzeichen. (Das führte Kommandozeile ist wie:'<,'>!expand -t4
)Dieser habe es funktioniert für mich:
Dieser Artikel hat eine ausgezeichnete vimrc-Skript für den Umgang mit Tabulatoren+spaces und konvertieren zwischen Ihnen.
Quelle: http://vim.wikia.com/wiki/Super_retab#Script
Dies hat mir geholfen, ein bisschen mehr als die Antworten hier hast, als ich ging zuerst nach einer Lösung zu suchen.