Wenn ich Code von Webseiten kopiere und in VIM einfüge, wird er wie folgt zu einem Chaosstil wie einer Leiter
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxx
Da es so regelmäßig durcheinander gebracht wurde, denke ich, dass mit meinem etwas nicht stimmt, .vimrc
was wie folgt lautet:
set number
set nocompatible
set nowritebackup
set noswapfile
syntax on
filetype indent on
filetype plugin on
filetype on
set background=light
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions=T
set fileencodings=utf-8,prc
set ruler
set incsearch
map gs :%s
set t_Co=256
:colorscheme evening
filetype plugin indent on
Normalerweise schreibe ich Python in VIM. Und Hilfe wäre dankbar.
vim
copy-paste
SpawnST
quelle
quelle
Antworten:
Tun Sie dies vorher:
Dann danach:
quelle
gvim
; Diese werden beim Einfügen automatisch aktiviert und deaktiviert.http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
Schaltet die automatische Einrückung für das Einfügen von Code ein
Hintergrund
Wenn Sie zum Einfügen von Text Vim-Befehle verwenden, geschieht nichts Unerwartetes. Das Problem tritt nur beim Einfügen aus einer anderen Anwendung auf und nur, wenn Sie keine GUI-Version von Vim verwenden. In einer Konsolen- oder Terminalversion von Vim gibt es kein Standardverfahren zum Einfügen von Text aus einer anderen Anwendung. Stattdessen kann das Terminal das Einfügen durch Einfügen von Text in den Tastaturpuffer emulieren, sodass Vim denkt, dass der Text vom Benutzer eingegeben wurde. Nach jedem Zeilenende kann Vim den Cursor bewegen, sodass die nächste Zeile mit demselben Einzug beginnt wie die letzte. Dies ändert jedoch den Einzug, der sich bereits im eingefügten Text befindet.
Einfügen umschalten
Fügen Sie Folgendes in Ihr vimrc ein (ändern Sie den gewünschten Schlüssel):
So fügen Sie aus einer anderen Anwendung ein:
Der vorhandene Einzug des eingefügten Textes bleibt dann erhalten.
Sie müssen den Einfügemodus nicht zuerst starten. Wenn Sie sich jedoch im normalen Modus befinden und ein Mapping für F2 haben, wird dieses Mapping angewendet und die Funktion 'pastetoggle' wird nicht ausgeführt.
Einige Leute mögen das visuelle Feedback, das in der Statuszeile von der folgenden Alternative für Ihr vimrc angezeigt wird:
In der ersten Zeile wird eine Zuordnung festgelegt, sodass durch Drücken von F2 im normalen Modus die Option "Einfügen" invertiert und anschließend der Wert dieser Option angezeigt wird. In der zweiten Zeile können Sie im Einfügemodus F2 drücken, um das Einfügen ein- und auszuschalten. In der dritten Zeile wird angezeigt, ob im Einfügemodus "Einfügen" aktiviert ist.
quelle
Es ist der Autoindent, der mit dir herumspielt.
Versuchen Sie, sie zu deaktivieren, wenn Sie Ihren Code ausschneiden und einfügen, und aktivieren Sie sie dann erneut, wenn Sie fertig sind.
quelle
Der geringste Aufwand, um dies zu erreichen, ist (kann eingesetzt werden
.vimrc
):Dann fügen Sie Ihren Code ein.
quelle
'paste'
Option sollte niemals fest eingestellt sein. Es werden viele Dinge deaktiviert, einschließlich Zuordnungen und Abkürzungen. Außerdem deckt eine vorherige Antwort bereits die'paste'
Option ab.