将文本粘贴到vim时关闭自动缩进

Deadly 提交于 2019-12-12 13:03:32

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我正在努力学习Vim。

当我从剪贴板将代码粘贴到我的文档中时,我会在每个新行的开头添加额外的空格:

line
  line
    line

我知道你可以关闭自动缩进,但我无法让它工作,因为我有一些其他设置冲突或某事(在我的.vimrc中看起来非常明显,但是当我把它们取出时似乎并不重要)。

当我粘贴代码时如何关闭自动缩进但在编写代码时仍然有自动缩进? 这是我的.vimrc文件:

set expandtab  
set tabstop=2  
set shiftwidth=2  
set autoindent  
set smartindent  
set bg=dark  
set nowrap  

#1楼

这适用于我(+寄存器的情况,我使用的像aps之间的交换缓冲区):

imap <silent> <S-Insert> <C-O>:set noai<CR><C-R>+<C-O>:set ai<CR>

#2楼

把它粘在你的〜/ .vimrc中并开心:

" enables :Paste to just do what you want
command Paste execute 'set noai | insert | set ai'

编辑:反思, :r !cat是一个更好的方法,因为它很短,语义,并且不需要自定义vimrc。 改用它!


#3楼

Mac用户可以通过以下方式直接从粘贴板中读取来避免自动格式化:

:r !pbpaste

#4楼

以下是有人发现如何重新映射粘贴事件以自动打开粘贴模式然后退出的帖子 。 适用于MacOSX上的tmux / iTerm。


#5楼

如果你在Mac上,macvim似乎无需切换粘贴就可以很好地处理它。

brew install macvim --override-system-vim

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!