Vim粘贴时如何维护标签
·
问题:Vim粘贴时如何维护标签
我使用 tab 键在 Vim 中缩进我的 python 代码,但是每当我复制和粘贴一个块时,Vim 都会用 4 个空格替换每个 tab,这会引发IndentationError
我尝试按照相关问题中的建议设置:set paste但没有区别
其他网站建议粘贴“无表格”代码并使用可视化编辑器重新缩进,但这在涉及大块时会带来麻烦
是否有任何设置可以应用于 vim 以维护复制/粘贴选项卡?
感谢您对此的任何帮助:)
编辑:
我正在使用标准的 gnome 终端技术(ctrl+shift+c / 鼠标等)在 vim 中复制和粘贴
我的 .vimrc 是:
syntax on
set ts=4
if has("terminfo")
let &t_Co=8
let &t_Sf="\e[3%p1%dm"
let &t_Sb="\e[4%p1%dm"
else
let &t_Co=8
let &t_Sf="\e[3%dm"
let &t_Sb="\e[4%dm"
endif
我查了一下 ts -> 将制表位设置为 n 以进行文本输入,但不知道什么值会保持制表符
解答
有关所有选项以及它们如何相互交互,请参见:h tabstop。
如果您更喜欢标签,这些是很好的设置:
set tabstop=4
set shiftwidth=4
set noexpandtab
使用这些设置,您点击<Tab>并获得<Tab>。
如果您更喜欢空格,这些是很好的设置:
set tabstop=4
set shiftwidth=4
set expandtab
使用这些设置,您点击<Tab>并获得<Space><Space><Space><Space>。
无论您选择什么,都不应使用终端键绑定进行复制/粘贴。在 Vim 中,你应该用y“拉”,用p或P“放”;可选地使用一个特定的寄存器,比如"ay/"ap来从@a或"+y/"+p的内容中提取/粘贴到/从系统剪贴板中提取/粘贴(如果你的 Vim 是用剪贴板支持构建的)。
作为旁注,您应该使用设置的长格式名称,因为它们比短名称更具可读性。你未来的自己会感谢你。
更多推荐

所有评论(0)