在vim里,下面的代码怎么样修改才合适?
- Patrick_DJ
- 帖子: 110
- 注册时间: 2010-08-15 8:46
在vim里,下面的代码怎么样修改才合适?
大家好,我刚开始学习使用VIM。 看了它的使用手册,其中说到hjlk和x等简单的操作说明。
另外印象里好像也不推荐使用方面键,而是用hjkl来代替,这样问题就来了。
如下几行代码:
float m_eye[3]={0,0,10};
float m_ref[3]={0,0,0};
float m_up[3]={0,1,0};
我想要改成 (也就是=和,两个符号附近加些空格。)
float m_eye[3] = {0, 0, 10};
float m_ref[3] = {0, 0, 0};
float m_up[3] = {0, 1, 0};
如果是在其它的编辑器像VisualStudio 或是 gedit, 当然就是方向键和空格键就直接完了。
另外我写代码的时候,比如在Normal模式下, 发现有一处Display 写成了 Dispaly, 是不是只能用xx先删除al,然后i切换编辑模式,再来修改呢? 不过感觉好像不太方便呀,如果代码里有好几处单词错误之类的,又要用jk等操作,导致模式来回切换什么的...
不知道有什么好的办法呢,最好可以不用切换模式?
另外印象里好像也不推荐使用方面键,而是用hjkl来代替,这样问题就来了。
如下几行代码:
float m_eye[3]={0,0,10};
float m_ref[3]={0,0,0};
float m_up[3]={0,1,0};
我想要改成 (也就是=和,两个符号附近加些空格。)
float m_eye[3] = {0, 0, 10};
float m_ref[3] = {0, 0, 0};
float m_up[3] = {0, 1, 0};
如果是在其它的编辑器像VisualStudio 或是 gedit, 当然就是方向键和空格键就直接完了。
另外我写代码的时候,比如在Normal模式下, 发现有一处Display 写成了 Dispaly, 是不是只能用xx先删除al,然后i切换编辑模式,再来修改呢? 不过感觉好像不太方便呀,如果代码里有好几处单词错误之类的,又要用jk等操作,导致模式来回切换什么的...
不知道有什么好的办法呢,最好可以不用切换模式?
- Patrick_DJ
- 帖子: 110
- 注册时间: 2010-08-15 8:46
Re: 在vim里,下面的代码怎么样修改才合适?
应该是怎么样改才更快捷些? 标题有点误导大家了,不好意思 。。 =_=
-
- 帖子: 96
- 注册时间: 2009-08-06 11:07
Re: 在vim里,下面的代码怎么样修改才合适?
感觉像在出考题,方法如下:Patrick_DJ 写了:大家好,我刚开始学习使用VIM。 看了它的使用手册,其中说到hjlk和x等简单的操作说明。
另外印象里好像也不推荐使用方面键,而是用hjkl来代替,这样问题就来了。
如下几行代码:
float m_eye[3]={0,0,10};
float m_ref[3]={0,0,0};
float m_up[3]={0,1,0};
我想要改成 (也就是=和,两个符号附近加些空格。)
float m_eye[3] = {0, 0, 10};
float m_ref[3] = {0, 0, 0};
float m_up[3] = {0, 1, 0};
如果是在其它的编辑器像VisualStudio 或是 gedit, 当然就是方向键和空格键就直接完了。
另外我写代码的时候,比如在Normal模式下, 发现有一处Display 写成了 Dispaly, 是不是只能用xx先删除al,然后i切换编辑模式,再来修改呢? 不过感觉好像不太方便呀,如果代码里有好几处单词错误之类的,又要用jk等操作,导致模式来回切换什么的...
不知道有什么好的办法呢,最好可以不用切换模式?
1.使用替换功能:
代码: 全选
:x,ys/=/ = /g
2.同上。
代码: 全选
:x,ys/,/, /g
3.颠倒顺序的这个问题记住两个字母:“xp”(没有引号。)如例,若要将dispaly修改为display,先将光标移动到a上,连续按下xp即可。讲解:按x为删掉a,再按p为粘贴,小写粘贴在当前位置后面,大写(加shift)为粘贴在前面。记住!——xp.
PS:
替换支持正则表达式,若你正好懂,则是威力无穷。
xp操作可以扩展到为ddp,适用于上下行调序。
学习建议:官方说明里强调,不要通文阅读帮助文档,重要的是多练习,用到什么功能再去查(当然基本的操作还是一口气学会为好),这种说法是千真万确的;我的补充是,平时可以多看看“vim使用技巧”之类的帖子,当时不必学会并验证再熟练,那样不现实,——知道有这个功能就行,算是一个思路,待到具体问题时觉得这个技巧可以解决,再Google来细细研究。这样学的快,记的牢。最重要的是,学的都是你能用的到的。
华丽丽的屠龙之技再华丽,也没用。——程序员应该深恶痛绝这种事情。崇尚简洁。当然这是对代码。对注释的话,你尽可以写的华丽丽。
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 在vim里,下面的代码怎么样修改才合适?
- Patrick_DJ
- 帖子: 110
- 注册时间: 2010-08-15 8:46
Re: 在vim里,下面的代码怎么样修改才合适?
非常感谢4楼的回答,有种被雷到的感觉。 
关于正则表达式,那个还是忍了,光是调那东西就要花N多的时间...
嗯,就用xp了。当时怎么就没想到,看来要多从实践中学习才行,反省...... =_=!

关于正则表达式,那个还是忍了,光是调那东西就要花N多的时间...
嗯,就用xp了。当时怎么就没想到,看来要多从实践中学习才行,反省...... =_=!
- Patrick_DJ
- 帖子: 110
- 注册时间: 2010-08-15 8:46
Re: 在vim里,下面的代码怎么样修改才合适?
回5楼,你的方法比较高级的说,俺正在学习~~ 

-
- 帖子: 3
- 注册时间: 2010-08-28 18:00
Re: 在vim里,下面的代码怎么样修改才合适?
用一条替换命令
:x,y s/[=,]/ & /g
注意 & 前后都有一个空格。
:x,y s/[=,]/ & /g
注意 & 前后都有一个空格。
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 在vim里,下面的代码怎么样修改才合适?
人家逗号前面不要空格的呀。mowvita 写了:用一条替换命令
:x,y s/[=,]/ & /g
注意 & 前后都有一个空格。

- Patrick_DJ
- 帖子: 110
- 注册时间: 2010-08-15 8:46
Re: 在vim里,下面的代码怎么样修改才合适?
试了下8楼的,该了下,也可以用。 谢谢哈~ 

- Patrick_DJ
- 帖子: 110
- 注册时间: 2010-08-15 8:46
Re: 在vim里,下面的代码怎么样修改才合适?
试了下8楼的,该了下,也可以用。 谢谢哈~ 

- Strange
- 帖子: 1824
- 注册时间: 2006-05-19 9:54
- 来自: Shanghai
Re: 在vim里,下面的代码怎么样修改才合适?
这里用 "." 操作会比较方便
只要操作一次 "i <esc>",然后回到 normal 模式,在每个 "," 上按 "."
当然用 s// 也挺好,不过要是就这个情况,只有3行的话,操作应该比较快
只要操作一次 "i <esc>",然后回到 normal 模式,在每个 "," 上按 "."
当然用 s// 也挺好,不过要是就这个情况,只有3行的话,操作应该比较快
ニンニク入れますか?
x60 with gentoo
x60 with gentoo
-
- 帖子: 96
- 注册时间: 2009-08-06 11:07
Re: 在vim里,下面的代码怎么样修改才合适?
为什么雷到了呢?Patrick_DJ 写了:非常感谢4楼的回答,有种被雷到的感觉。
关于正则表达式,那个还是忍了,光是调那东西就要花N多的时间...
嗯,就用xp了。当时怎么就没想到,看来要多从实践中学习才行,反省...... =_=!

我也是刚学vim,用的少,若是指方法太简陋……就别回答了?
- Patrick_DJ
- 帖子: 110
- 注册时间: 2010-08-15 8:46
Re: 在vim里,下面的代码怎么样修改才合适?
回13楼,
倒不是说你的方法简陋,只是被你的热情感动到了。是我只前描述不准确,呵呵...
倒不是说你的方法简陋,只是被你的热情感动到了。是我只前描述不准确,呵呵...

-
- 帖子: 100
- 注册时间: 2008-09-19 1:03
Re: 在vim里,下面的代码怎么样修改才合适?
难道大家都不用%!astyle么???
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 在vim里,下面的代码怎么样修改才合适?
对于 C 代码,我还是更喜欢用 indent。starwing 写了:难道大家都不用%!astyle么???