专注于前端开发, 追求更好的用户体验, 更好的开发体验 [长沙前端QQ群:234746733]

2008年12月

  • 删除重复内容行

    / 分类: 工具,实践 / 1 Comment

    由于要处理一个两万多行的数据,但要删除其中内容重复的行,所以找了几个方法:

    1. 用sed替换重复内容,使用命令 -n "G;s/\n/&&/;/^\(.*\n\).*\n\1/d; s/\n//;h;P" "$(FilePath)" (这里是在editplus里的使用,注意$(FilePath)必须是带路径的文件名)。当然sed不需依赖editplus,可以单独使用的。优点:删除重复内容后,顺序结构不变。缺点:不支持UTF-8,处理大文件时(2w多行)就不行了。

    2.使用editplus-工具-排序,勾选"删除重复"。可惜不想把内容排序,却被自动排序了。(勾选"区分位置",好像没用?),这个效率相当快~差不多是瞬间完成的,之所以没放弃editplus,确实它的优点有很多。

    3.使用一个批处理

    @echo off
    :: 删除重复的行,但不能保留空行
    :: 对不符合变量命名规则、变量个数超过限制的文本都无法正确处理
    (echo 清除重复行后的文件内容:& echo.)>str_.txt
    for /f "delims=" %%i in (testText.txt) do (
      if not defined %%i set %%i=A & echo %%i>>str_.txt)
    :: start str_.txt

    当然也不支持utf8,效率也比较慢,处理2w多行用了1分多钟,不过排序没有改变:)。

  • editplus 正则删除 多行注释

    / 分类: 工具 / No Comments

    editplus的正则不能用于多行,这点比较郁闷。css里面的注释,有些内容都是多行的,而且还可能包含html语句,这样的情况editplus批量删除注释就不能用了。研究了一下,提供下我认为目前比较完美的方法:

    editplus删除多行注释:/*......*/的方法:
    1、把全文中的“\n”全都替换成“┓”。
    2、把“[<|/]/”替换成空。(删除注释里面的“</”、“//”类内容,注释里面带有"/"的话,第三步就查不到了)
    3、把“/\*.[^/]*\*/”替换成空。(不加[^/],就会波及到非注释内容)
    4、把"┓"再替换成"\n"。

    以上替换的时候都要勾上“正则表达式”。虽然步骤比较多,但是总算能实现替换多行了。
     

  • 舍本逐末

    / 分类: 生活 / No Comments

    George Wing今天看我在研究editplus的svn时对我说的话(抽了几条出来):

    不要被各种新应用和新技术的海洋中迷失了自我
    你这是 舍本逐末。
    本就一个,而末太多了
    http://www.cnblogs.com/lovecherry/archive/2007/10/28/940555.html
    你看看末多不多
    技术虽然一直在变,但是越是基础和越是抽象的技术变化越慢,越是偏向应用越是具体的技术变化越是快,从性价比上说,学习基础知识性价比更高。
    《精通CSS》中有关hasLayout就两页,别人研究它两年。。。

    快讲到哲学范畴了..嗯, 希望自己权衡好

  • editplus SVN 设置

    / 分类: 工具 / No Comments

    SVN在团队开发的时候很强大。VS有VisualSVN插件,但是我不喜欢用VS。vim电脑上也有,虽然很多人说vim也很强大,不过我目前还是习惯editplus。也许以后会去适应vim吧。

    1、首先这里有一篇介绍,edtiplus使用SlikSVN来实现update、commit。当然前提也是要安装TortoiseSVN的。

    2、发现了一个更好的介绍,是deitplus wiki里面的介绍的方法。

    说明:方法1使用的SlikSVN是命令行端,方法2使用的TortoiseProc.exe是GUI端。

    下面我把方法二的实现方法稍微翻译一下:

    Subversion Commit

    说明:用TortoiseSVN校检文件并提交文件到服务器(当然,前提是你安装了TortoiseSVN)
    添加方法:编辑edtiplus 工具-用户工具-添加工具-程序
    菜单文本:SVN Commit
    命令: C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
    参数: /command:commit /path:"$(FilePath)" /notempfile /closeonend:0
    初始目录: $(FileDir) Check: "Capture output", "Save open files"
    勾上"保存打开文件"。可以不勾"捕获输出",根据个人喜好吧,我是没勾。

    说明:TortoiseSVN 使用临时文件在 shell 扩展和主程序之间传递多个参数,(低于1.5.0版,必须增加/notempfile参数,如果不这样做,该命令将无法正常工作,/path指定的文件将被删除。)从 TortoiseSVN 1.5.0 开始,废弃/notempfile参数,不再需要增加此参数。

    Subversion Update, Delete, Rename, Checkout etc

    说明:SVN的更新、删除、重命名、校检等命令
    方法:只需要把上面的"参数"里的:/command:commit 用下面的替换(例如:/command:about

    :about 显示关于对话框
    :log 打开日志对话框
    :checkout 打开检出对话框
    :import 打开导入对话框
    :update 将工作副本的/path更新到HEAD,如果给定参数/rev,就会弹出一个对话框询问用户需要更新到哪个修订版本。为了避免指定修订版本号/rev:1234的对话框,需要加上/nonrecursive和/ignoreexternals参数(这2个参数我没加,还没遇到上述问题)
    :commit 打开提交对话框
    :add 将/path的文件添加到版本控制
    :revert 撤消一个文件自上次更新后的所有的变更
    :cleanup 递归清理工作拷贝,删除未完成的工作拷贝锁定
    :resolve 将/path指定文件的冲突标示为解决,如果加上/noquestion,将不会提示确认操作。
    :repocreate 在/path创建一个版本库
    :switch 切换至分枝/标记
    :export 将/path的工作副本导出到另一个目录
    :merge 打开合并对话框
    :mergeall 打开合并所有对话框
    :copy 复制工作副本至URL
    :settings 打开设置对话框
    :remove 从版本控制里移除/path中的文件
    :rename 重命名/path的文件
    :diff 启动TortoiseSVN设置的外置比较程序
    :help 打开帮助文件
    :relocate 打开重定位对话框
    :help 打开帮助文件
    :repobrowser 打开版本库浏览器对话框
    :ignore 将/path中的对象加入到忽略列表,仅对文件夹有效。
    :blame 打开文件的追溯对话框
    :createpatch 创建/path下的补丁文件。
    :revisiongraph 显示/path目录下的版本变化图。
    :lock 锁定一个文件,可以输入锁定的原因。
    :rebuildiconcache 重建windows的图标缓存,当系统图标缓存出了问题才需要这样做(会导致桌面的图标会重新排列)
    :properties 显示 /path 给出的路径之属性对话框。

    更多的命令看:tortoisesvn docs

    我只用了update、commit、add、revert、rename、remove、export、lock、unlock、resolve、checkout、blame、merge,后面几个都是不太常用的了。

    另外在editplus wiki,还发现了一个不错的东西:打开当前文件的文件夹(使用svn的话,这个功能就很实用了)。方法,在用户工具里添加-程序:
    菜单文本:Current Location(当前文件的文件夹)
    命令:%systemroot%\explorer.exe /e,/root,\local disk, 参数:$(FileDir)
    初始目录:空着
    勾上:退出时关闭窗口、保存打开文件

  • 决定把大部分心思放在前端开发

    / 分类: 生活 / No Comments

    吴同学想叫我去腾讯做网站重构,可惜还是不想离开长沙,不过长沙这边的环境真的比深圳差很多。要是一年前话我肯定去了,呵呵。长沙这边几乎不需要较专业的前端开发人员,因为绝大多数的网络公司都是规模很小很小的,很多公司可能都不要求求职者是否懂div、css。即使要求会div、css,也仅限于此,不管浏览器是否兼容,更不用说html语义化、代码结构是否良好那些了。希望以后能够看到长沙多出现一些对前端技术要求专业的公司。

    回到正题,如果什么都发展,那么就什么都不专业。当然,一个方面做到精,而其他方面也都有涉猎是好事,怕就怕什么都不精。我决定把大部分心思放在前端开发。没有侧重点就是没有特点,我想以后更需要的是专业人员组成的团队,而不是一个人组成的“精英”。