Sunday, May 22, 2011

vim for the beginners

这几天在折腾ubuntu,linux下面编辑器vim的一些简单的命令。 免得别人问的时候都不知道什么是emacs,什么是vim :)


vim(vi)是Linux中功能强大的编辑工具。vim有3中主要的模式:

1.normal mode:当进入vim时,默认的模式就是normal mode。在此模式下,无法输入任何文字,不过可以利用按键命令来执行许多操作命令,例如移动光标位置、复制、删除。

2.insert mode:进入vim输入a、i、或o键。即可进入insert mode,此模式下可以输入文字内容。

3.command-line mode:在norma lmode中输入“:”即会进入command-line mode,在此模式下,可以做一些与输入文字无关的事,例如搜索字符串、保存文件或结束编辑等。

normal mode下:

h:将光标向左移动一格

l:将光标向右移动一格

j:将光标向下移动一格

k:将光标向上移动一格

ctrl+b:将页面向前卷动一页

ctrl+f:将页面向后卷动一页

0:将光标移到该行最前面

$:将光标移到该行的最后面

G:将光标移到最后一行的开头

wW:将光标移到下一个字

若输入“w”,则标点符号如“.”,“,”,“/”等字符都被当成一个字

eE:将光标移到本单字的最后一个字符;如果光标所在位置为本单子的最后一个字符,则跳到下一个单字的最后一个字符。

若输入“w”,则标点符号如“.”,“,”,“/”等字符都被当成一个字

b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符。

ctrl+u:将光标向前移动半页

ctrl+d:将光标向右移动半页

ctrl+e:屏幕向下卷动一行,也可以说文章和光标向上卷动一行

ctrl+y:屏幕向上卷动一行,也可以说文章和光标向下卷动一行

command-line mode下:

e 文件的路径及名称:打开指定文件

a:从当前光标所在的位置的下一个字符开始输入

i:在光标所在的位置插入新输入的字符

o:新增加的一行,并将光标移到下一行的开头

w:文件的路径及名称 保存文件

q:退出vim

Vim的常用操作命令

复制文字

yy:可将光标目前所在位置的正行复制,复制时不会将文字反白显示

nyy:其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下面2行一起复制

yw:可复制光标所在位置到整个单词结束的字符

nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面的2个字一起复制

p:可将复制的文字粘贴到当前光标所在的位置。若复制的是整行文字,则会将整行内容粘贴在光标所在位置的下一行

删除文字

d:先按d键,放开后按←键,可将光标位置前一个字符删除;按→键,则会将光标位置的字符删除;按↑键,可将当前光标所在的行与前一行一并删除。按↓键,可将当前的光标所在的行与下一行删除。

D:可删除一行中光标所在位置之后的所有字符。

dd:连续按2次d键可删除光标所在的那一行。

dw:将光标停在某个字的第一个字符,按dw键时,会将此字整个删除。如将光标置在某个字中间的字符上,则会将此字中光标后面的字符删除。

nd:n为数字,如按3d,再按下↑键,则删除光标上方的3行,再包括本身1行,共删除4行。若按下↓键,则删除光标下方3行再包括本身1行,共4行。

ndd:若按3dd键,表示删除当前光标位置的1行和下面的2行。

x:删除光标所在位置的字符

X:删除光标所在位置的前一个字符,与d+←键一样

nx:按4x键,表示删除光标位置后的3个字符和光标本身所在的字符

nX:按4X键,表示删除光标位置之前的4个字符(不包括光标的字符)

查找及替换文字

/或?:当药搜索文章中的某一个字符串时,可输入“/”或“?”,然后在输入要查找的字符串。例如输入“/kuka”,然后按回车键,vim就会把所有的gz字符串标记起来,并自动将光标移到第一个找到的字符串上。

n:将光标移到下一个找到的字符串上

N:将光标移到上一个找到的字符串上

r:替换光标所在的位置的字符。修改内容不一定要进入insert mode,在normal mode中,只要将光标移到要更改的字符上,然后按R键,就可以输入要查找的字符了。

R:连续替换光标所在的位置的字符,按Esc键停止替换

cc:按cc键可以替换光标所在的那一行

替换字符串: 当要将文章中的某一个字符串全部替换时(例如将所有的temp替换成tmp),使用“:g/temp/s//tmp/g”或“:1,$stemp/tmp /g”命令,可立刻将所有的“temp”替换成“tmp”字符串。如果不是所有的“temp”字符串都要替换时,可用“:g/temp/s//tmp /gc”或“:1/,$stemp/tmp/gc”命令。则找到每一个“temp”字符串时,都会将整行显示在屏幕的下方,可输入“y”或“n”决定是否 要替换。

显示光标所在的行数、移到指定的行数

^g、^G:按次组合键,则会在最下方处显示光标所造位置的行数,以及文章的总行数。

nG:n为数字,若按下20G,则可将光标移到第20行。

还原

u:按此键就是在执行undo命令,可取消前一次的操作

^r:按此键就是执行redo命令,可以恢复刚才undo的操作

Wednesday, May 11, 2011

R: layout to arrange plots on a page

In R, use layout to specify different arrangement of plots on a page.

注意比较下面各个图的比例。

比如,第一行三个图,第二行四个图:

layout(matrix(c(1,1,1,2,2,2,3,3,4,4,5,5,6,6,7,7),2,8,byrow=T))
for (i in 1:7){
plot(rnorm(100))
}

1,1,1,2,2,2,3,3 表示上面一行3张图,4,4,5,5,6,6,7,7表示下面一行4张图。几个数字的个数表示图尺寸的比例。 上面第一个第二个比第三个图大,上面第三个跟下面4个一样大




layout(matrix(c(1,2,3,0,4,5,6,7),2,4,byrow=T))
for (i in 1:7){
plot(rnorm(100))
}

layout(matrix(c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7),2,12,byrow=T))

for (i in 1:7){
plot(rnorm(100))
}


layout(matrix(c(1,1,1,1,1,1,2,2,2,3,3,3,4,4,5,5,6,6),3,6,byrow=T))

for (i in 1:6){
plot(rnorm(100))
}