---------------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 一些函数(操作符?==不懂==)
-
split
和join
$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基础就先到这了,回头再整理。
网友评论