vim编辑器

来源:互联网 发布:复杂网络节点中心性 编辑:程序博客网 时间:2024/06/04 19:25
1. 进入vim编辑器的方式:(进入vim编辑器时,默认的模式是“命令模式”) 在终端输入vi:进入vim编辑器vi filename:进入vim编辑器,新建了一个filename文件,光标定位到文件的第一行vi在工作时,会在当前目录下创建.swp的临时文件,该临时文件也称为交换文件当vi结束对当前文件编辑且正常退出时,临时文件.swp会被自动删除当vi结束对当前文件编辑且非正常退出时,临时文件.swp会被残留下来2. vi有三种工作方式:命令模式、编辑模式及命令项模式。命令模式:在这种模式下,可以通过输入vi的命令对文件的内容进行处理(复制、删除、移动等),也可以通过按光标键来移动光标。编辑模式 --> 按ESC键 --> 命令模式命令模式 --> 输入冒号 --> 命令项模式3. 退出vi的命令在命令模式下,输入::w 保存文件,不退出vi:w filename 把vi中的内容保存到不存在的filename文件,不退出vi (另存为):w! filename 把vi中的内容保存到已存在的filename文件,不退出vi:w>>filename 把vi中的内容追加到filename文件,不退出vi:n1,n2w filename 把n1行到n2行的内容保存到不存在的filename文件:n1,n2w! filename 把n1行到n2行的内容保存到已存在的filename文件:wq 保存文件,退出vi:x 保存文件,退出vi:ZZ 保存文件,退出vi:q 不保存文件,退出vi(若文件已改变,则不能退出):q! 不保存文件,退出vi:ZQ 不保存文件,退出vi4. 在命令模式下,可以输入以下命令:(1)光标移动命令    h: 左    l: 右    k: 上    j: 下(2)插入命令    i:在光标处插入内容    I:在第一行插入内容    a:在光标后插入内容    A:在当前行的尾部插入内容    o:在当前行的下面插入新行    O:在当前行的上面插入新行(3)删除命令    x:删除光标处的字符    X:删除光标前的一个字符    d0:删除从当前光标所在行的第一个字符到当前光标的前一个字符的一串字符    D:删除从当前光标所在的字符到当前光标所在行的最后一个字符的一串字符    dd:删除光标所在行的所有字符    dw:删除从光标处字符开始的一个单词    例如:a boy girl pig        如果光标在l处,dw后,结果是:a boy girpig        如果光标在l和p之间的空格处,dw后,结果是:a boy girlpig        如果光标在b处,dw后,结果是:a girl pig    #dd:删除从光标所在的行到其后的#-1行(#必须用数字代替    #x:删除从光标所在的字符开始的#个字符(#必须用数字代替)    :n1,n2 d:删除n1行到n2行的内容(4)复制命令    :n1,n2 t n3:把n1行到n2行的内容复制到第n3行的下一行(5)移动命令    :n1,n2 m n3:把n1行到n2行的内容移动到第n3行的下一行(6)修改/替换命令    r:输入一个字符替换光标处的一个字符    R:从光标处的字符开始替换,后面的字符一个一个被输入的字符覆盖    s:输入一串字符来替换光标处的字符    S:先清除光标所在的行,你可以在当前行输入一串字符    cc:先清除光标所在的行,你可以在当前行输入一串字符    cw:修改一个单词    例如:ab cdef ghijk        光标在d处,输入cw后,结果是:ab cde$ ghijk,        此时若输入pqghd后,结果是:ab cpqghd ghijk        此时若输入p后按ESC键,结果是:ab cp ghijk    C:修改从光标处开始及其该行后面的部分    例如:ab cdef ghijk        光标在d处,输入cw后,结果是:ab cdef ghij$,此时输入pqghd后,结果是:ab cpqghd(7)光标定位命令    0:定位到光标所在行的行首    $:定位到光标所在行的行末    :#:定位到第#行的行首    :$:定位到最后一行的行首    /exp:向后定位到字符串exp    ?exp:向前定位到字符串exp    /^exp:定位到行首为字符串exp的行    /exp$:定位到行末为字符串exp的行    n,m ?/exp:从n行到m行向前搜索字符串exp (此命令有待商榷)    n,m |/exp:从n行到m行向前搜索字符串exp (此命令有待商榷)(8)搜索替换命令    :s/exp1/exp2/g:将当前行的字符串exp1替换成字符串exp2    :n,m s/exp1/exp2/g:将n行到m行的字符串exp1替换成字符串exp2    :g/exp1/exp2/g:将当前行的字符串exp1替换成字符串exp2    :g/exp1/s//exp2/g:将全文中的字符串exp1替换成字符串exp2(9)撤销命令          u(10)缓冲区命令默认情况下,vi使用无名缓冲区,例如:虽然将文件的某些部分删除了,但仍可以用u命名进行撤销。    yy:将光标所在的行放入无名缓冲区    Y:将光标所在的行放入无名缓冲区    p:将缓冲区中的内容粘贴到光标所在的行的下一行    P:将缓冲区中的内容粘贴到光标所在的行的上一行    "#yy:将光标所在的行放入缓冲区# (#必须用a~z代替)    "#p:将缓冲区#中的内容粘贴到光标所在的行的下一行 (#必须用a~z代替)    "#P:将缓冲区#中的内容粘贴到光标所在的行的上一行 (#必须用a~z代替)    "#d:删除当前行,将当前行的内容放入缓冲区#(11)其它命令    :set nu:显示行号    :set nonu:取消行号    :n 定位到下一个文件    :N 定位到上一个文件    vi 1.c 2.c 3.c:一次打开3个文件    首先会打开1.c,输入:n命令后,会打开2.c,再输入:n命令后,会打开3.c,    再输入:N命令后,会打开2.c,再输入:N命令后,会打开1.c。    Ctrl+G:显示当前编辑文件的信息    Ctrl+L:刷新屏幕    Ctrl+d:向后翻半屏    Ctrl+u:向前翻半屏    Ctrl+f:向后翻一屏    Ctrl+b:向前翻一屏
0 0
原创粉丝点击