Day3--vim遇上perl

作者: 东方不赞 | 来源:发表于2020-03-29 00:28 被阅读0次

    ---------------vim的学习--------------------

    只是学习了几个可能用到的命令。vim的命令有很多,边用边学才是王道。

    1.配置vim

    首先在根目录下创建.vimrc文件

    cd #返回到根目录
    vi .vimrc #创建并打开.vimrc文件
    

    在打开的vim编辑器中,可以设置很多参数,例如:

    syntax on #代码高亮
    set nu #显示行号
    set mouse=a #允许使用鼠标
    

    2.复制 粘贴 剪切 撤销

    #命令模式下
    yy #复制光标所在行
    6yy #复制光标开始向下6行 #6可以为其他,此为示例
    v ##进入visual模式,移动光标选取,按y则复制,按d则剪切
    dd #剪切光标所在行
    2dd #剪切光标开始向下2行 #2可以为其他,此为示例
    p #粘贴
    u #撤销
    ggyG #全部复制
    dG #全部删除
    

    3.光标的移动

    #命令模式下
    
    ##hjkl控制上下左右,同时方向键也可以控制
    ##同时hjkl前面可以加数字,表示移动多少行、列
    
    $ #行尾
    33$ #第33行的行尾
    
    H #屏幕第一行的第一个位置
    M #屏幕中央行的第一个位置
    L #屏幕最后一行的第一个位置
    
    gg #到文件开头
    G #文件结尾
    
    ctrl+F #向前翻页
    ctrl+B #向后翻页
    ctrl+G #下移半屏
    

    其他

    K #帮助
    

    -------------Perl的学习(基础)---------------------

    Perl的脚本,当行数不多的时候,用vim是比较6的

    • 个人觉得,perl的命令和R的语法有很大不同,是比较接近c的。
    • perl 的开头应该加上#!/usr/bin/perl -w,-w表示有错误时输出warning

    1.标量和标量变量

    # $开头
    # 第一个字符是字母或下划线
    # 区分大小写(尽量小写)
    # 如 :
    $dna="AACTCTCTCTAAGC";
    # 和c一样,允许++,--这种算符
    $count_num++;
    
    • 字符串 的 双引号和单引号
    print "$dna\n"; # 结果:AACTCTCTCTAAGC
    print '$dna\n'; #结果:$dna\n
    
    • .是字符串连接符号
    dna.="AAA"; #dna的值为AACTCTCTCTAAGCAAA
    
    • chomp和chop函数

    windows字符串结尾\r\n,Mac是:\r,Linux是:\n
    可使用dos2unix、unix2dos、mac2unix、unix2mac进行转换,也可以用chop和chomp进行转换

    # chomp去掉字符串末尾的\n,没有\n则不执行
    # chop去掉最后一个字符,运行一回吃掉一个字符
    chop("qwer\n"); #qwer
    chomp("qwer\n") #qwer
    chop("qwer"); #qwe
    chomp("qwer"); #qwer
    

    2.列表list 数组array

    列表是标量的有序集合
    数组是存储列表的变量;
    但是个人觉得区别只是定义上的,使用起来倒不用那么区分

    $_=undef #相当于R中的NA,赋予一个空变量
    @list=(1..5); #1到5
    @array=($list1,$list2,$list3);  #数组
    

    2.1 基础

    • 访问
    #角标,和c一样,从0开始
    @list[0];  #第一个元素
    @array[-1];  #最后一个元素
    $#array; #最后一个元素
    
    • 引号的省略
    # qw 可省略逗号和引号
    @list2=qw (we are the best group);
    # 括号也可以用其他的代替
    @list2=qw /we are the best group/;
    @list2=qw <we are the best group>;
    
    • 变量类型转换

    类型perl会根据变量上下文进行判断

    $dna=$dna+5 #此时dna的值为数字
    

    2.2 一些函数(操作符?==不懂==)

    • splitjoin
    $temp="a:b:c:d";
    #split 分割
    @tteemm=split /:/,$temp; #元素为a,b,c,d的列表
    #join 合并
    $eeeeeeee=join "\t", @tteemm; #合并,间隔符为\tab
    
    • push, pop, shift, unshift
    #pop摘走最后一个元素
    $value=pop @array; #$value 为最后一个元素,@array少一个元素
    #push在最后添加一个元素
    push @array, 5; # 将5放在@array最后
    #shift挤掉第一个元素,用法与pop类似
    #unshift在最前面添加一个元素,用法与push类似
    
    • 排序
    sort(@array) #排序:从小到大
    reverse(@array) #翻转输出
    sort reverse(@array) #排序翻转:从大到小
    

    3.帮助文档

    需要安装perldoc包,在下还没安装,下面这些命令未验证

    #在命令行
    #perldoc -m 模块名
    #例如
    perldoc -m Data::Dumper
    #perldoc -f 函数名
    #例如
    perldoc -f chop
    #perldoc -v 变量名 类似
    

    4.判断 循环

    4.2 判断语句

    ==与eq
    !=与ne

    if (a){
    print "best\n";
    }else{
    print "could be better\n";
    }
    

    4.2 循环语句

    参考:https://www.cnblogs.com/CodeTracker/p/4726729.html

    • for-loop
    for( $a = 0; $a < 10; $a = $a + 1 ){
        print "a 的值为: $a\n";
    }
    
    • foreach
    foreach $word (@words) {
    if ($word eq "the") {
    print ("found the word 'the'\n");
    }
    }
    
    • while
    while ( <expression> ) {
    <statement_block>
    }
    

    其他

    今天还学习了钻石符、哈希什么的,之前还学过正则,perl基础就先到这了,回头再整理。

    相关文章

      网友评论

        本文标题:Day3--vim遇上perl

        本文链接:https://www.haomeiwen.com/subject/kfgeuhtx.html