当前位置: 首页 > news >正文

html5新闻网站站长工具樱花

html5新闻网站,站长工具樱花,4399全部网页游戏大全,怎样在拼多多上卖自己的产品确切地说,你不需要在IDE里面编写或者阅读代码。 IDE用于Render资源文件比较合适,但处理文本,并不划算。 这的文本文件,包括源代码,配置文件,文档等非二进制文件。 先说说IDE带的便利: 函数或者变量的自动…

确切地说,你不需要在IDE里面编写或者阅读代码。

IDE用于Render资源文件比较合适,但处理文本,并不划算。
这的文本文件,包括源代码,配置文件,文档等非二进制文件。

先说说IDE带的便利:

  • 函数或者变量的自动补全
  • 函数或者类定义的跳转

但这些便利,是有代价的。
IDE需要不断地扫描项目中的源码,这是一个词法与语法分析的过程,与编译过程类似,只是不产生机器码而已。
这是一个非常耗时的过程,使用过Android Studio或者Eclipse的同学应该体验深刻,项目启动时实在太慢了。
启动之后,文件已经有修改,特别是Git分支切换或者版本回滚时,整个机器卡壳几十秒钟是时常的事。

而且IDE还要求文件是可以编译的,如果项目外文件或者项目文件不完整,还不能实现这两个功能。

插一个真事,有一次搞ROS开发,ROS包基本都是Cpp与Python,关键是ROS没有IDE,而且开源的项目文件非常多,有几个同事就瞎眼了。
经常找不到代码在哪里,时不时要问我,哪个功能在哪里,就算知道代码也找不到文件。这就是长期依赖IDE的后果。

所以,为这样两个功能,把机器搞得龟速,值得吗?

解决方案

这个问题,要权衡利弊,以退为进 – 放弃IDE,停止这种耗时扫描

对付文本文件,直接可以采用蛮力搜索。
具体地说,想找某个符号定义,直接在整个目录中搜索。对于库中的符号,第一次手输,之后使用字符串补全。
注意,这里对编程语言,项目能不能编译,是没有要求的。

看似暴力,但直接了当,逻辑简单,绿色无污染。

因为单个文本文件,很少会超过10M, 而整个项目的所有文本文件累计很少会超过50M。
grep整个目录通常就几秒的事情,而且大部分情况是一瞬间的事。

这样做的结果是:

  • 不再依赖于任何IDE
  • 不再依赖于项目管理
  • 不再受限于编程语言

这个思想不限于Emacs,我这前使用Vim也是这样干的。
不管Emacs还是Vim都是跨平台的,意味着你从Windows到Unix甚至Mac都是如履平地的。
有什么比这个更加有吸引力?

Vim可以使用Quickfix实现同样的功能。
这里只介绍Emacs的方案。

grep的关键一点是,可以反复地对结果进行筛选,这个非常非常重要。

想像一下grep一次给你1000条件记录,有多大意义?

但如果可以再次在这个1000中筛选,那就非常不一样。

简单反复筛选可以做到万里挑一!

举例

按这个思想,在QMK项目中,找程序入口,

这是一个相当规模的开源项目, 除去lib下的文件都有30000多个,这是wc统计的结果:

think@DESKTOP-70MSAQ1 MINGW64 /f/AA-MyWork/QMK/keychron/qmk_firmware (mykeyboard-v1)
$ git ls-files | wc -l
37042

从三万个文件中找出一个函数,并不容易:

  1. 搜索main, 得到7000多条记录
    在这里插入图片描述

  2. 搜索.c以过滤非C文件:
    在这里插入图片描述

  3. 搜索void int, 原因main函数的参数或返回值无非这两个
    在这里插入图片描述

  4. 搜索全字匹配main:
    在这里插入图片描述

至此,只有不到70项,可以肉眼找到程序入口了。

这个过程中的 所有buffer都是保留 ,意味着如果我第二步筛选的条件错了,还可以回到第一步结果中搜索,直到你满意。
这是包括Vim在内的很多软件无法做到的,但这个在试错过程中,又非常重要。

具体实现

代码非常简单,主要还是调用Emacs的grep与occur命令,再切换到结果窗口. 开头几行只为了保存历史。

(global-set-key (kbd (concat custom-user-prefix-key "/")) 'ich/grep)
(global-set-key (kbd (concat custom-user-prefix-key "l")) 'ich/occur)(defun ich/grep ( pattern directory )(interactive(list(custom/select-a-pattern "Please input a pattern (grep): ")(custom/select-a-directory "Please select a directory (grep): ")) )(custom/search-history-add pattern)(custom/save-search-history)(setq old-directory default-directory)(cd directory)  (grep (concat "rg . -n -H --no-heading -i -e " pattern))(cd old-directory)  (setq find nil)(setq i 0)(while (and (not find) (< i (length (window-list))))(if (equal "*grep*" (buffer-name))(setq find t)(other-window 1))(setq i (1+ i)))(if find(quit-window))(switch-to-buffer "*grep*"))(defun ich/occur ( pattern )(interactive(list(custom/select-a-pattern "Please input a pattern (occur): ")))(custom/search-history-add pattern)(custom/save-search-history)(occur pattern)(setq find nil)(setq i 0)(while (and (not find) (< i (length (window-list))))(if (equal "*Occur*" (buffer-name))(setq find t)(other-window 1))(setq i (1+ i)))(if find(quit-window))(switch-to-buffer "*Occur*"))
http://www.hengruixuexiao.com/news/47705.html

相关文章:

  • 医院网站建设方案详细综合权重查询
  • logo在线设计免费生成器网站关键词优化推广哪家好
  • 网站改版的方式大致有品牌整合推广
  • 公司宣传网站怎么做nba最新消息新闻
  • 建设股份公司网站网站分析培训班
  • 怎样做企业手机网站建设百度app推广方法
  • 四库一平台建筑企业资质查询sem和seo是什么
  • 电商网站商品排序分类怎么做软文营销的优势
  • 我想学网站建设凡科小程序
  • 处方药可以做网站吗公司seo是指什么意思
  • 做lol直播网站长沙网站优化价格
  • 现在清算组备案在哪个网站做搜索软件排行榜前十名
  • 无锡网站设计公司电话微信做单30元一单
  • 东莞疫情最新消息今天seo站长综合查询工具
  • 品牌型网站制作价格网络推广方法技巧
  • 用webstorm做静态网站扬州百度推广公司
  • ps做分享类网站效果图手机上可以创建网站吗
  • 如何做网站自适应郑州网站推广公司排名
  • 律师行业网站建设网页版登录入口
  • 党委门户网站建设意义百度资源
  • 织梦网站采集侠怎么做长春网站建设公司哪个好
  • 中国电信网站备案 密码重置文案代写在哪里接单子
  • 信宜网站建设公司网络营销工作内容
  • 做网站和优化共多少钱?百度指数在线查询工具
  • 网站制作 火星科技seo技术顾问阿亮
  • 响应式网站做多大的尺寸seo网站排名
  • 进什么网站接模具做seo网站seo
  • 安卓做网站教程sem广告投放是做什么的
  • 中英文双语的网站怎么建设子域名查询工具
  • 汕头站扩建有连接华东线吗阿里巴巴国际站