In einem Terminal-Vim führt das Einfügen von Daten aus der Zwischenablage häufig zu einer Verfälschung des Codeeinzugs. Ich wusste nur, ob ich :set paste
den Einzug nicht kaputt mache. Sollte ich es nach dem Einfügen von Daten :set nopaste
erneut tun ? Was ist, wenn ich es nicht tue, welches Problem kommt?
19
Antworten:
Wie andere schon geschrieben haben, möchten Sie das Einfügen-Set nicht verlassen. Ich wollte nur darauf hinweisen, dass Sie mit einem guten Terminal-Emulator und einem ordnungsgemäß kompilierten und konfigurierten Programm das
vim
Einfügen nicht ändern müssen. Sie benötigen einen guten Terminal-Emulator wie xterm oder GNOME Terminal, vim mit der X11-Funktion und der Option 'mouse', die auf 'a' gesetzt ist. Dannvim
wird "wissen", wann Sie mit der Maus einfügen und wird effektiv die "Einfügen" -Option für Sie festlegen und deaktivieren.Eine Möglichkeit, eine
vim
mit der X11-Funktion zu erhalten, besteht darin, siegvim
mit der-v
Option auszuführen oder einen Alias zu erstellen.Dann setzen
in deinem ~ / .vimrc.
quelle
Copy
Wird ausgegraut oder gar nicht angezeigt, es sei denn, es wurde Text ausgewählt. Wie wählen Sie den zu kopierenden Text aus?Dieser Beitrag hat meine Lieblingsantwort, https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode
Wenn Sie im Einfügemodus beginnen und Strg + Umschalt + V oder mit der rechten Maustaste auf Einfügen klicken, erkennt Vim, dass dies von einem Terminal stammt, und stellt den Einfügemodus automatisch ein. Deaktiviert ihn anschließend, damit Sie keine neu zugewiesenen Tasten verlieren (was im Einfügemodus nicht funktioniert, weil Rohdaten geschrieben werden) und Sie sind wieder in einem "gesunden" Zustand, wenn es fertig ist.
Für nur vim (setzen Sie in Ihrem .vimrc)
Wenn du vim unter Tmux benutzt (geht immer noch in .vimrc)
quelle
let &t_SI .= "\<Esc>[?xxxxx"
Zeilen erkennt die Tastenkombination? Funktioniert dies auch für Mac, wenn man die verschiedenen Verknüpfungen berücksichtigt?Wie Romainl angedeutet hat, wird in der Dokumentation erklärt, dass durch das Einstellen der
'paste'
Option mehrere andere Optionen deaktiviert werden. Sie werden sicherlich feststellen, dass dies eher früher als später Probleme für Sie verursacht. Aus diesem Grund gibt es die'pastetoggle'
Option. Sehen:quelle
Wenn etwas existiert, muss es seine Bedeutung haben. Sie sollten sich die vim-Dokumentation ansehen, die sehr nützlich ist.
Wenn Sie einmal gelesen haben, möchten Sie vielleicht Folgendes:
Ich hoffe, Sie finden diesen Beitrag nützlich :)
quelle
Beim Einfügen in vim denkt IIRC im Wesentlichen, dass Sie alle diese Zeichen selbst eingegeben haben. Wenn also die automatische Einrückung aktiviert ist, werden Inhalte für Sie eingerückt, aber der eingefügte Text enthält normalerweise bereits Einrückungen, sodass die Einrückung tatsächlich "durcheinander" ist. Wenn Sie in den Einfügemodus wechseln, werden Dinge wie das automatische Einrücken deaktiviert.
Wenn Sie das automatische Einrücken während der Eingabe bevorzugen, sollten Sie es nach dem Einfügen wieder auf nopaste setzen. Probieren Sie es aus und beachten Sie, wie Sie alle Einrückungen im Einfügemodus manuell vornehmen müssen.
quelle