V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ColinChang
V2EX  ›  Ruby

notepad++ ssh 一些个小坑

  •  
  •   ColinChang · 2020-03-10 16:28:08 +08:00 · 9156 次点击
    这是一个创建于 635 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我特别喜欢用 notepad ssh 到学校 linux 服务器撸代码
    最近写脚本语言( perl,ruby )的时候,经常会报各种稀奇古怪的错。总结一下心得。


    [/img]
    看起来很正常,但是错误提示找不到文件,所以怀疑是第一行没有成功调用 ruby。
    试试用 ruby 手动运行脚本,果然提示 shellbang 有一个\r,可能会造成问题。

    [img][/img]
    转成 16 进制看下,查了下 ASCII 字符 16 进制的代码,果然一堆 CR 符 \r 0x0d,windows 系统的换行是\r\n,先回车(carriage return),再换行(line feed),可以追溯到打字机时代。而 linux 直接\n 就换行了

    [img][/img]
    最简单方法,写个脚本二进制打开程序文本,删除所有 0d。记得去年上 socket 编程的时候,老师第一个教的程序就是在 linux 和 windows 之间转换文本,就是这样实现的

    但是这样的话,每次写两行想测试的时候,就得手动运行下转换程序,额外增加了负担(我保存 ctrl S 都懒得按,用的是 notepad++的窗口失去焦点自动保存。。。)

    但我又不想用 ssh 客户端的垃圾编辑器,于是将就一下,手动再 linux 里用 vim 敲第一行,剩下的 notepad++ ssh 就可以继续写了


    还有什么坑,想想继续码字
    第 1 条附言  ·  2020-03-10 17:38:39 +08:00
    perl 父子进程间 pipe 通信的一个小坑

    如图,在 print 函数中,如果字符串结尾不加 换行符,则程序卡住毫无显示
    粗浅分析,是子进程输出语句没有\n 结尾无法结束,而父进程也苦苦等待子进程的输出,程序也一直卡住陷入死锁。
    加上换行符一切正常


    还有之前的一个程序,要父子进程间互相通信,然后输出报告

    还是 pipe 的 print 函数,多加了一个\n (两个换行符),直接把我下一行输出挡住了。。。



    /****************************************************/
    很神奇,几个 bug 看了一下午,头大
    18 条回复    2020-03-11 07:57:09 +08:00
    ColinChang
        1
    ColinChang  
    OP
       2020-03-10 16:29:51 +08:00
    v2ex 图片咋不能显示。。。
    lovedebug
        2
    lovedebug  
       2020-03-10 16:37:05 +08:00
    winscp 不香吗? 可以试试
    ColinChang
        3
    ColinChang  
    OP
       2020-03-10 16:41:57 +08:00
    @lovedebug 学校的电脑用的就是 winscp,确实挺好用的
    ReVanTis
        4
    ReVanTis  
       2020-03-10 16:45:41 +08:00
    notepad++里你直接点右下角的 Windows (CR LF)就可以改全文的 line ending 编码…不知道和你的这个插件兼容不兼容…
    ColinChang
        5
    ColinChang  
    OP
       2020-03-10 16:50:29 +08:00
    @ReVanTis 诶,还真的可以,学习了,好方法
    loading
        6
    loading  
       2020-03-10 17:07:26 +08:00   ❤️ 2
    这功能居然真有人用,佩服。
    askfilm
        7
    askfilm  
       2020-03-10 17:12:30 +08:00
    notepad++ 以前感觉挺好用, 但是去年因原则性问题卸载. 已无好感.
    jin7
        8
    jin7  
       2020-03-10 17:24:03 +08:00
    notepad++可以设置默认换行符吧
    CallMeReznov
        9
    CallMeReznov  
       2020-03-10 17:26:17 +08:00
    这功能居然真有人用,佩服。
    jht
        10
    jht  
       2020-03-10 17:27:56 +08:00 via Android
    Mobaxterm 很香的呀,用用试试。
    ColinChang
        11
    ColinChang  
    OP
       2020-03-10 17:40:55 +08:00
    @jht 我觉的 mobaxter 编辑器的 ui 不好看,缩进也有点问题
    而且之前写 golang (好像是)的时候不能语法高亮
    狗头
    jht
        12
    jht  
       2020-03-10 17:51:58 +08:00 via Android
    @ColinChang jet 家的 ide 可以远程部署开发的,试试看
    ColinChang
        13
    ColinChang  
    OP
       2020-03-10 17:56:09 +08:00
    @jht ok 试试看
    jobtesting
        14
    jobtesting  
       2020-03-10 20:03:52 +08:00 via iPhone
    这个软件的作者好像辱华的?
    Aoerz
        15
    Aoerz  
       2020-03-10 20:14:41 +08:00 via Android
    可以试试 vscode 的 remote-development
    crella
        16
    crella  
       2020-03-10 20:18:10 +08:00 via Android
    个人感觉 np++已经是轻量级编辑器里面支持 ruby 语法高亮的最好的一个了。

    vsc 折腾不会,配色也比 np++默认的差(指 ruby)
    ColinChang
        17
    ColinChang  
    OP
       2020-03-11 07:50:40 +08:00 via iPhone
    @Aoerz 谢谢
    ColinChang
        18
    ColinChang  
    OP
       2020-03-11 07:57:09 +08:00 via iPhone
    @crella 对,写写脚本语言,简单的程序还行,复杂的项目还是得好的 ide。只不过我这学期很奇怪,上的课都是这些 loose syntax 的语言,用 np 学校家里迁移起来也比较方便,不用打开项目打开半天……
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2345 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:54 · PVG 16:54 · LAX 00:54 · JFK 03:54
    ♥ Do have faith in what you're doing.