大猫 (Madao) - まるでダメなおっさん

Intellij IDEA – Refactor 重构

by bigCat 24 Comments

SublimeText2 的多重选择

查找替换与重构的区别就像 重写代码和网页重构的区别一样

(网页重构 WebRebuilder 是腾讯的一个职位,主要工作职责是 HTML CSS ,鲜有人搞得离清)

SublimeText2 有一个大卖点是多重选择,让人眼前一亮

之前需要通过查找替换来搞定的操作,只需要鼠标点选几个区域,就可以批量操作

简直是列编辑的 God Like 模式, 碉堡了有木有?

 

Intellij IDEA 的 Refactor 重构

很可惜 Intellij IDEA 没有这个功能,但是他有着很屌的 Refactor 重构功能

举一个栗子:

3个文档里有各种关键词 bigcat

类型为 纯文本,文件名, CSS class 名, JavaScript 变量名

尝试下如何 Refactor 重构

先拿 CSS class 开刀,我们右键选择 Refactor > Rename (快捷键 Shift + F6)

输入 damao

发现在 html 里的重构会自动更改到关联的 css 里的 class 名,

因为,在 html 里引用了这个 CSS 之后,他们就绑定在了一起, 是真爱!

同理重构其他东东

重构 JavaScript 变量名/函数名 会同步修改关联的 .js 文件里对应的部分

重构 .js 文件里的变量名/函数名会同步修改关联的 html 页面引用

重构 .js / .css 等文件名也会同步修改关联的 html 页面引用

甚至重构 html 代码里 href=”bigcat.css” 会同步修改对应的文件名

在本例中如果你要用查找替换,或多重选择,看起来都不是个好办法

而改名只是重构的一部分,还能抽离出来新建函数等等需要你去挖掘

纯文本不可重构

对于纯文本,我们只能用正则或普通替换或列编辑来处理了

列编辑

按住 alt 鼠标选择一列,然后输入文字就会多行同时出现

整齐的连续单行代码中比较适合用,缺点是必须要连续

正则表达式

例如略微有点技术含量的正则

搜索>后面的bigcat

然后把cat之外的替换为da

Intellij IDEA 依然贴心的把替换结果提示出来

优点,能想出来就能搞出来

缺点,需要正则表达式30分钟入门

结论

所以不要因为莫言有个错别字,就认为他文字功底差

Comments ( 24 )

  1. Reply阿安
    正则替换用很多,基本满足要求了!~
  2. Reply大发
    话说话说重构不是要html+css+js么,囧。无JS表示压力很小
    • ReplybigCat
      @大发 工作内容是 HTML CSS 但是不会 JS 的重构是写不好 HTML 的.主要不缺会JS 的重构,所以你不会的话会没啥竞争力...
  3. ReplyAndy
    大猫,能请教下你吗? 这两段代码如何能合并成一条? (1)第一段是使用Lazyload 图片延迟加载效果,但是图片的尺寸总是显示不完整,会被裁剪。 <img class="lazyload" src="image->blank($w,$h) ?>" data-original="" /> (2)第二段是自定义图片的长和宽,使图片不会被裁剪。 <img src="image->resizedImgUrl($item->img,1980,1024); ?>" alt="" title="" /> 如果想使用“Lazyload 图片延迟加载效果”的同时“自定义图片的长和宽”,这两段代码应该怎么合并才可以? 因为如果同时输入这两段代码,会造成同时加载两张照片,一张是被裁剪到的,一张是没被裁剪到的。
    • ReplybigCat
      @Andy 尝试用css控制宽高,lazyload 貌似是onload了img之后取到原始宽高的 或者你给我url我看看,这样没法YY出来场景
      • ReplyAndy
        @bigCat 哈哈,已经解决了,后来发现合并成这样就可以了。谢谢大猫<img class="lazyload" data-original="" src="image->resizedImgUrl($item->img,1980,1024); ?>" alt="" title="" />
  4. ReplyJr
    最近在学正则表达式。。。。。
    • ReplybigCat
      @Jr 墙裂推荐oreilly的猫头鹰书,正则表达式那本
      • ReplyJr
        @bigCat 非常感谢
      • Replyemric
        @bigCat 翻译有点蛋疼咋办
        • ReplybigCat
          @emric 如果你看得出翻译蛋疼的话,证明你的英文水平可以看原版了..少年,买原版吧
  5. Replywater
    弱弱的问下,这个截图的是神马编辑器,好像很爽啊。
    • ReplybigCat
      @water https://github.com/damao/Intellij-IDEA-F2E
  6. Reply鱼跃制氧机价格
    很爽 是个不错的文章
  7. Replylala
    额,这个博客的名字,太邪恶了!
  8. Reply匿名
    0
  9. Reply毕扬
    你那个视频拿什么软件录的?
    • ReplybigCat
      @毕扬 貌似那个网站上有说,可以点过去看看,我没试过,官方录的
  10. Reply最真博客
    太复杂了,看不懂
  11. Replywmtimes
    只能搞js?不能css、html?
  12. Reply千娱千寻
    真心看不懂啊
  13. ReplyNickname ( required )
    afsd
  14. ReplyNickname ( required )
    域名很好

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>