我最近从某处复制粘贴了一堆.vimrc设置,现在我在文本复制粘贴上有这种奇怪的行为:
Ctrl + C
Shift + Insert
我认为这将是autoindent
,但事实并非如此。
我应该从.vimrc中删除哪些内容以停止此行为并启用正常复制粘贴?
错误出现在我.vimrc的这一部分:
command -range=% -nargs=* Tidy <line1>,<line2>!
\perltidy -your -preferred -default -options <args>
vmap <tab> >gv
vmap <s-tab> <gv
nmap <tab> I<tab><esc>
nmap <s-tab> ^i<bs><esc>
let perl_include_pod = 1
let perl_extended_vars = 1
let perl_sync_dist = 250
filetype off
set nocompatible
set modelines=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set ic
set ai
set nu
command -range Cm <line1>,<line2>s/^/#/
command -range Uc <line1>,<line2>s/^#//
set encoding=utf-8
set scrolloff=3
set autoindent
set showmode
set showcmd
set hidden
set wildmenu
set wildmode=list:longest
set visualbell
set ttyfast
set ruler
set backspace=indent,eol,start
set laststatus=2
let mapleader = ","
nnoremap <leader>1 yypVr-
nnoremap <leader>2 yypVr=
set ignorecase
set smartcase
set gdefault
set incsearch
set showmatch
set hlsearch
set wrap
set textwidth=79
set formatoptions=qrn1
nnoremap j gj
nnoremap k gk
nnoremap ; :
nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
nnoremap <leader>w <C-w>v<C-w>l
syntax on
set backup
set backupdir=~/.vim/backup
set directory=~/.vim/tmp
set noerrorbells
答案 0 :(得分:19)
在粘贴之前,为了避免此类行为,您应该在粘贴之前:set paste
和之后:set nopaste
。
这是因为粘贴模拟了输入。粘贴缩进文本时,情况甚至更糟。
如果您使用vim的yanking(内部“复制粘贴”),则不会浮出水面。
答案 1 :(得分:3)
r
中的set formatoptions=qrn1
应该会导致这种行为。但paste
模式更适合粘贴。通过提供paste
进入set paste
模式,然后通过提供set nopaste
离开。 help paste
有信息。
答案 2 :(得分:3)
实际上你甚至没有考虑:set paste
,因为你可以在插入模式下使用命令<C-r><C-o>+
从剪贴板中进行原始粘贴。