在vim下粘贴了一大段python代码,但是从某一行开始全部都多后退了一个tab,有100多行,我一个个手动调整好了,累个半死。
请问有没有办法更省事点?
在vim下粘贴了一大段python代码,但是从某一行开始全部都多后退了一个tab,有100多行,我一个个手动调整好了,累个半死。
请问有没有办法更省事点?
在 Vim 中粘贴要注意,如果 Vim 无法知道你是在粘贴(非 GUI 版本,终端中没有打开鼠标支持或者终端本身不支持鼠标,因为 Vim 没有 X 剪贴板支持而绕过 Vim、使用带 Shift 键的方式让终端直接粘贴(如往 ssh 中的 Vim 粘贴时通常 Vim 不能访问本地剪贴板,所以只能让终端去「打字」)),那么你需要在粘贴前设置 'paste' 选项。该选项会在插入模式禁用自动缩进、映射等。详见 :h 'paste'
在 vimrc 里面定义好python的各种 tab,例如:
autocmd FileType python set ts=4 | set sw=4 | set expandtab
然后在 normal 模式,直接输入=nj
n 是要求自动对齐的行数,不管缩进是怎么样的乱,都会自动对齐
在下以为 vim 提供的命令都很灵活,但都太底层了。目前所有答主的答案都是硬敲的,难记忆也没有效率,建议设置成快捷键吧。
比如个人习惯用tab,选中目标区域然后按快捷键即可。
viml
vnoremap <tab> >gv vnoremap <s-tab> <gv
以题主的问题为例。
完~
4 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.5k 阅读
1 回答1.3k 阅读
1 回答1.1k 阅读
1 回答968 阅读
1 回答888 阅读
在vim里,粘贴代码之前最好进入粘贴模式,这样就会关闭自动缩进
将代码粘贴进去之后再关闭粘贴模式
缩进单行代码是两个大于号'>>'
回缩就是两个小于号'<<'
如果想要缩进很多行代码的话就按照下面做