如何在 vi 中将自动缩进设置为开启的情况下剪切和粘贴制表符行

如何在 vi 中将自动缩进设置为开启的情况下剪切和粘贴制表符行

不确定该问题属于哪个堆栈交换组,因此如果是错误的,请移至正确的组。

发生的情况是,如果我在一个窗口/浏览器中使用制表符/缩进突出显示某些内容并想将其粘贴到 vi 中,格式就会变得混乱。

例如,我想复制另一个窗口中的以下内容:

   "date_created" : "2013-06-06 21:12:31",
   "netdriver_duplex" : "Full",
   "mac_address" : "FA:16:3E:17:CC:E1",
   "interfaces" : "eth0,sit0",
   "processors" : null

在我将其突出显示并粘贴到 vi 中后,我得到以下内容:

   "date_created" : "2013-06-06 21:12:31",
      "netdriver_duplex" : "Full",
         "mac_address" : "FA:16:3E:17:CC:E1",
            "interfaces" : "eth0,sit0",
               "processors" : null

有人告诉我自动缩进让我很困惑,然后运行

ESC-> :set noai
Copy/Paste stuff
ESC-> :set ai

但一段时间后,这会让人感到厌倦。在将自动缩进设置为开启的情况下,在 vi 中粘贴制表符行时,有没有解决方法,还是每次都要关闭自动缩进、粘贴,然后再打开 ai?

在此先感谢您的帮助。

答案1

你正在使用i<Ctrl>V粘贴吗?请尝试使用"+p

每当我尝试使用操作系统的复制粘贴方法而不是使用 vim 的方法时,我都会发现这个问题。如果您在插入模式下尝试粘贴,vim 会认为您输入得非常快,而不是粘贴。在这种情况下,它不知道如何保留格式。

但是,如果您退出插入模式Esc,然后从寄存器+(操作系统缓冲区的别名)粘贴,它就可以起作用。

因此,"+p

请注意,在 X-11 上,您还可以使用寄存器*访问 X11 选择。此外,只有当 vim 已编译 X11 集成支持时,上述任一方法才有效。不过,对于vim和 都有效gvim

相关内容