LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1380|回复: 10

vim如何在制定字符左右各空一格?

[复制链接]
发表于 2009-12-30 21:45:02 | 显示全部楼层 |阅读模式
整理代码的时候会用到。
比如下面的代码:

  1. int a=0;
  2. int b=0;
复制代码

想要把光标移动到等号上面以后,希望通过指令自动在等号的左右格空出一个空格。

我平时的解决方案是:先'i'然后空格,然后'ctrl+['退到command模式;然后再次移动到等号,'a'然后空格,再次'ctrl+['退到command模式。
感觉这样特别麻烦,有没有好的解决办法,比如直接输入指令即可。
实在没有办法的话我只好考虑使用自定义函数然后绑定按键了。
发表于 2009-12-30 21:52:46 | 显示全部楼层
安装 c-support 插件
vim cmd 模式 \rd 就 O了
回复 支持 反对

使用道具 举报

发表于 2009-12-30 22:12:03 | 显示全部楼层
按ESC  进入命令模式,
按冒号后输入:
  1. 1,$s/=/ = /g
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-12-30 22:19:20 | 显示全部楼层
  1. 1,$s/ *= */ = /g
复制代码

这样更好一些
回复 支持 反对

使用道具 举报

发表于 2009-12-30 22:21:33 | 显示全部楼层
编辑完后,用下面的命令替换
  1. :%s/=/ = /g
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-12-31 08:40:23 | 显示全部楼层
Post by shaohao;2060708
整理代码的时候会用到。
比如下面的代码:

  1. int a=0;
  2. int b=0;
复制代码

想要把光标移动到等号上面以后,希望通过指令自动在等号的左右格空出一个空格。

我平时的解决方案是:先'i'然后空格,然后'ctrl+['退到command模式;然后再次移动到等号,'a'然后空格,再次'ctrl+['退到command模式。
感觉这样特别麻烦,有没有好的解决办法,比如直接输入指令即可。
实在没有办法的话我只好考虑使用自定义函数然后绑定按键了。




我建议:不要用人力去解决这种纯粹的机械劳动。

使用 gnu indent 吧。他有大约30多个参数,定制适合你的参数并且保存成配置文件,以后就用这个配置专门处理你的源代码,一个 indent 命令处理所有源代码,多简单。
回复 支持 反对

使用道具 举报

发表于 2010-1-7 01:29:56 | 显示全部楼层
Post by Celinda;2060720

  1. 1,$s/ *= */ = /g
复制代码


这样更好一些


这个连续的两个 == ,会出错。
回复 支持 反对

使用道具 举报

发表于 2010-1-7 22:35:30 | 显示全部楼层
Post by ginkgo;2062494
这个连续的两个 == ,会出错。


嗯,是我没考虑到 - -

那就这样:


  1. 1,$s/ *\(=*\) */ \1 /g
复制代码
回复 支持 反对

使用道具 举报

发表于 2010-1-7 23:40:05 | 显示全部楼层
Post by ginkgo;2062494
这个连续的两个 == ,会出错。


嗯,是我没考虑到 - -

那就这样:


  1. 1,$s/ *\(=*\) */ \1 /g
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-8 10:02:40 | 显示全部楼层
谢谢。
但是,最好不是使用替换的方法,这不是我希望的,因为替换要输入表达式,太麻烦了。

最好是想gg,G,xp这样的指令,方便使用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表