python - 如何在Vim中优雅删除末尾的空白字符以及粘贴代码?

 爱你一辈子2502860605 发布于 2022-10-29 09:27

问题1

比如说,有下面这样一段代码,使用bronson/vim-trailing-whitespace可以看见每一行末尾都有两个空白字符,请问如何在vim中优雅的去除这些行末的空白字符?我现在的做法是d$,然后.,但是这种原始的做法中间还要加一些b|w等move命令,显然不符合Vim的哲学。

list = [1, 2, 3, 4]  
list = [1, 2, 3, 4, 5]  
list = [1, 2, 3, 4, 5, 6]  
list = [1, 2, 3]  
...

问题2

关于在Vim中复制系统粘贴板的代码,使用前要触发pastetoggle模式,否则indent会出现问题,我一般是这样设置的:

set pastetoggle=

但是这样还是有些繁琐,粘贴完之后又要重复按切换回来,请问有什么好的方法,可以粘贴系统粘贴板的代码的时候不用触发pastetoggle模式,自动识别indent么?

补充

对于问题二,参考stackoverflow上这个精彩的回答。使用"+p实际上比Ctrl+Shift+V更加方便。

2 个回答
  • 对于第一个问题,我一般这样搞,

    :%s/\s\+$//g

    就是将所有行末的空白字符删除掉。

    2022-11-12 01:46 回答
  • 来源

    :nnoremap <silent> <F5> :let _s=@/ <Bar> :%s/\s\+$//e <Bar> :let @/=_s <Bar> :nohl <Bar> :unlet _s <CR>

    这样你按 F5 就可以去掉结尾的空格了。英文中,这种操作叫 Remove Trailing Whitespace。你可以搜下这个关键词


    至于复制系统剪切板上的东西,在 vimrc 里面加上了 set clipboard=unnamed 就可以用了。。
    顺便我用的是 Mac,好像没有再去设置你说的 pastetoggle

    另外,格式化代码,你按下 = 就可以了。。。粘贴进来之后按=

    2022-11-12 01:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有