代码之家  ›  专栏  ›  技术社区  ›  Aakash Goel

哪个.vimrc设置会导致这种奇怪的复制粘贴行为?

  •  4
  • Aakash Goel  · 技术社区  · 14 年前

    我最近从某个地方复制粘贴了一堆.vimrc设置,现在我在文本复制粘贴上有了这种奇怪的行为:

    1. alt text

    2. Ctrl键 + C类

    3. 移位 + 插入

    4. alt text

    我以为会是 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
    
    3 回复  |  直到 14 年前
        1
  •  19
  •   shellholic    14 年前

    在粘贴之前,为了避免这种行为,您应该 :set paste 在粘贴和 :set nopaste 之后。

    这是因为粘贴模拟键入。当你粘贴缩进的文本时更糟糕。

    如果使用vim的拉拽(内部的“复制粘贴”),就不会出现这种情况。

        2
  •  3
  •   dennycrane    14 年前

    这个 r 在里面 set formatoptions=qrn1 会引起这种行为。但是 paste 模式更适合,粘贴好。进入 粘贴 施舍方式 set paste 通过给予 set nopaste . help paste 有消息。

        3
  •  3
  •   mntnoe    14 年前

    其实你根本没想过 :set paste ,因为您可以使用命令 <C-r><C-o>+ 在插入模式下从剪贴板进行原始粘贴。