vim粘贴取消自动缩进

Vim 复制粘贴探秘

Vim 作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几 十年,还没有完全掌握vim的功能,这也说明了vim的强大。而这样何尝不是一件好事呢,只要有的学习,就有的提高。

最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置:

:set noai nosi 

取消了自动缩进和智能缩进,这样粘贴就不会错行了。但在有的vim中不行,还是排版错乱。

后来发现了更好用的设置:

:set paste 

进入paste模式以后,可以在插入模式下粘贴内容,不会有任何变形。这个真是灰常好用,情不自禁看了一下帮助,发现它做了这么多事:

  • textwidth设置为0
  • wrapmargin设置为0
  • set noai
  • set nosi
  • softtabstop设置为0
  • revins重置
  • ruler重置
  • showmatch重置
  • formatoptions使用空值

下面的选项值不变,但却被禁用:

  • lisp
  • indentexpr
  • cindent

怪不得之前只设置noai和nosi不行,原来与这么多因素有关!

但这样还是比较麻烦的,每次要粘贴的话,先set paste,然后粘贴,然后再set nopaste。有没有更方便的呢?你可能想到了,使用键盘映射呀,对。我们可以这样设置::

:map <F10> :set paste<CR> :map <F11> :set nopaste<CR> 

这样在粘贴前按F10键启动paste模式,粘贴后按F11取消paste模式即可。其实,paste有一个切换paste开关的选项,这就是pastetoggle。通过它可以绑定快捷键来激活/取消 paste模式。比如::

:set pastetoggle=<F11> 

这样减少了一个快捷键的占用,使用起来也更方便一些。

转自:https://www.cnblogs.com/end/archive/2012/06/01/2531147.html

原文地址:https://www.cnblogs.com/Template/p/9345565.html

时间: 2024-07-30 22:53:46

vim粘贴取消自动缩进的相关文章

vi/vim粘贴代码自动缩进导致全乱了

用vim打开一个空白文档,然后把已经复制的代码给粘贴进来,发现它有自动缩进功能,最终导致粘贴的文本一行比一行靠右,看起来乱成一团.比较快的解决办法是,在粘贴文档前,在命令行模式下,输入 :set noai nosi 然后按'i' 进入编辑模式,再粘贴已经复制的代码内容,这样就不会自动缩进了. 有时候,这样的方法不好用,可以尝试这种: :set paste

vim粘贴代码时缩进混乱

1. 背景 在终端Vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加.原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,Vim则把这些内容作为用户的键盘输入来处理.导致在遇到换行符的时候,如果Vim开启了自动缩进,就会默认的把上一行缩进插入到下一 行的开头,最终使代码变乱. 2. 解决 取消自动缩进 在命令模式下,使用“:set nosmartindent”和“:set noautoindent”取消自动缩进,然后再粘贴即可.完成后再开启自动缩进“:set s

vim配置文件 高亮+自动缩进+行号+折叠+优化

配置文件是网上找的,我把出错的几个地方改了下 将一下代码copy到 用户目录下 新建文件为  .vimrc保存即可生效: 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份) "========================================================================= " DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console " "

vim中粘贴数据的时候如何取消自动缩进

vim中在粘贴剪贴板中的数据时会自动增加缩进,这对python这种对缩进要求严格的语言来说简直是恶梦.如何让它不缩进,保持原格式呢?答案就是paste模式. 在粘贴数据之前,输入下面指定开启paste模式 :set paste 粘贴完毕后,输入下面指定关闭paste模式 :set nopaste 每次都需要输入是不是太麻烦,那么在.vimrc中加入下面内容吧: "Paste toggle - when pasting something in, don't indent. set pasteto

Ubuntu vim显示行号语法高亮自动缩进

配置文件名为Ubuntu vimrc在Fedora中vim的配置文件存放在/etc目录中,配置文件名为Ubuntu vimrc在终端 输入以下命令来编辑Ubuntu vimrc配置文件:sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc AD: Ubuntu vim经过长时间的发展,这里我发表一下个人理解,下面就这就来讲术Ubuntu vim.下文对Ubuntu vim的设置适用于Ubuntu与Fedora系统,其他系统没有得到验证在Ubun

vim粘贴代码问题

vim粘贴代码问题 vim 在使用xshell进行vim操作的时候,经常会直接粘贴一些外部的代码,然后粘贴上之后会出现逐行缩进的情况,之前一直没有去找为啥,并且逐行的给他弄回去. 转自:https://my.oschina.net/joshuazhan/blog/122539 背景 在终端Vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加.原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,Vim则把这些内容作为用户的键盘输入来处理.导致在遇到换行符的时候,如果

vim自动缩进配置

1.配置文件的位置    在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc".例如,/root目录下,通常已经存在一个.vimrc文件.2.设置语法高亮显示1) 打开vimrc,添加以下语句来使得语法高亮显示:    syntax on2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:    export TERM=

vim 配置文件 ,高亮+自动缩进+行号+折叠+优化

vim 配置文件 ,高亮+自动缩进+行号+折叠+优化 将一下代码copy到 用户目录下 新建文件为  .vimrc保存即可生效: 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)"=========================================================================" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console""

vim 粘贴多余缩进问题

解决vi/vim中粘贴会在行首多很多缩进和空格的问题 secureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器.所 以当你的服务器上的vim设置为autoindent的话,在i模式下,那么它会将secureCRT传输而来的这些字符串再进行一下缩进.若你拷贝的文 本中已经有表示缩进的空格或者制表符的话,它们也会被当成字符串,而被缩进.解决办法:1. 在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴)2. 拷贝完成之后,输入:set nopas