WebページからコードをコピーしてVIMに貼り付けると、次のようにラダーのような混乱したスタイルになります。
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxx
定期的にめちゃくちゃになっているので、.vimrc
に問題があるのではないかと思います。
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
通常、私はpythonをVIMで記述します。そして、助けていただければ幸いです。
前にこれを行います:
:set paste
後で:
:set nopaste
http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
コード貼り付けの自動インデントを切り替えます
背景
Vimコマンドを使用してテキストを貼り付けても、予期しないことは起こりません。この問題は、別のアプリケーションから貼り付けた場合、およびVimのGUIバージョンを使用していない場合にのみ発生します。 Vimのコンソールまたはターミナルバージョンでは、別のアプリケーションからテキストを貼り付けるための標準的な手順はありません。代わりに、ターミナルはテキストをキーボードバッファーに挿入することで貼り付けをエミュレートする場合があるため、Vimはユーザーがテキストを入力したと見なします。各行が終了すると、Vimはカーソルを移動して、次の行が最後の行と同じインデントで始まるようにします。ただし、これにより、貼り付けたテキストのインデントが変更されます。
貼り付けトグル
以下をvimrcに入れてください(好きなキーに変更してください):
set pastetoggle=<F2>
別のアプリケーションから貼り付けるには:
次に、貼り付けたテキストの既存のインデントが保持されます。
最初に挿入モードを開始する必要はありませんが、通常モードでF2のマッピングがある場合、そのマッピングが適用され、 'pastetoggle'機能は動作しません。
一部の人々は、vimrcの以下の代替案によってステータス行に表示される視覚的なフィードバックを好みます:
nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode
最初の行はマッピングを設定するため、通常モードでF2を押すと「貼り付け」オプションが反転し、そのオプションの値が表示されます。 2行目では、挿入モードのときにF2キーを押して、「貼り付け」のオンとオフを切り替えることができます。 3行目では、挿入モードで「貼り付け」がオンになっているかどうかを表示できます。
混乱しているのは自動インデントです。
set autoindent
set smartindent
コードをカットアンドペーストするときにそれらを無効にして、完了したら再度有効にしてください。