成就vim高手(一)--vim命令

VIM 命令
1. 滚屏
    < Ctrl+d >将屏幕向后(文件尾方向)翻滚半屏。
    可以在这两个命令之前加上一个数字n,则屏幕向前或向后翻滚n行。并且这个值被系统记住,以后再用< Ctrl+u >和< Ctrl+d >命令滚屏时,还滚相应的行数。
2. 分页命令
    < Ctrl+f >将屏幕向文件尾方向翻滚一整屏(即一页);
    < Ctrl+b >将屏幕向文件首方向翻滚一整屏(即一页)。
    同样也可以在这两个命令之前加上一个数字n,则屏幕向前或向后移动n页。
3. 状态命令
    < Ctrl+G >命令显示在vi状态行上的vi状态信息。
    包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。
4. 附加命令
    (1). 跳转命令
        ^命令
        跳转到行首
        $命令
        跳转到行尾
        b(begin)命令
        跳转到当前单词的前面
        e(end)命令
        跳转到当前单词的后面
        number%命令
        跳转到number%处, 例如跳转到20%, 键入20%即可
        %命令
        匹配括号
    (2). 插入命令
        a命令
        该命令用于在光标当前所在位置之后追加新文本。新输入的文本放在光标之后,在光标后的原文本将相应地向后移动。光标可在一行的任何位置。
        A命令
        该命令与a命令不同的是,A命令将把光标挪到所在行的行尾,从那里开始插入新文本。当输入A命令后,光标自动移到该行的行尾。
        a和A命令是把文本插入到行尾的唯一方法。
        o命令
        该命令将在光标所在行的下面新开一行,并将光标置于该行的行首,等待输入文本。
        要注意,当使用<Backspace>删除字符时只能删除从插入模式开始的位置以后的字符,对于以前的字符不起作用。
        O命令
        与o命令相反,O命令是在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本。
    (3). 删除命令
        在编辑文本时,经常需要删除一些不需要的文本,我们可以用<Backspace>键将输错或不需要的文本删除,但此时有一个限制就是当删到行头之后,再想删上面那行的内容是不可能的。
        在命令模式下,Vi提供了许多删除命令。这些命令大多是以d开头的。常用的有:
        x命令
        删除光标处的字符。
        若在x之前加上一个数字n,则删除从光标所在位置开始向右的n个字符。
        X命令
        删除光标前面的那个字符。
        若在X之前加上一个数字n,则删除从光标前面那个字符开始向左的n个字符。
        显然,这两个命令是删除少量字符的快捷方法。
        dd命令
        剪切(删除)光标所在的整行。
        在dd前可加上一个数字n,表示删除当前行及其后n-1行的内容。
        D或d$命令
        删除从光标所在处开始到行尾的内容。
        d0命令
        删除从光标前一个字符开始到行首的内容。
        Dw命令
        删除一个单词。
        若光标处在某个词的中间,则从光标所在位置开始删至词尾。同dd命令一样,可在dw之前加一个数字n,表示删除n个指定的单词。
5. 复制粘贴
    排版命令: gg=G
    (1)选择命令
        按v进入可视模式(v按字符选择,V按行选择)
        1). 用j、k控制选中的行
        2). 按下ap选取一段('a' 'p'aragraph),按下~翻转这段文字的大小写。如果你想取消选取,按下<Esc>即可。
        3). 按下aw选取一个单词('a' 'w'ord)
        4). 按下ab 选取一块文本('a' 'b'lock)
        5). 按下as 选取一个句子(‘a’ sentence)
    (2). 复制命令
        dd命令
        剪切当前行。
        yy命令
        拷贝当前行。
        cc命令
        剪切当前行并且进入插入模式。
        D命令
        剪切从光标位置到行尾到剪贴板。
        Y命令
        拷贝当前行。
        C命令
        和 D 类似,最后进入插入模式。
        x命令
        剪切当前字符到剪贴板。
        s命令
        剪切当前字符到剪贴板,最后进入插入模式。
    (3). 粘贴命令
        p命令
        粘贴剪切板中的字符
    (4)寄存器
        如果你要从一个文件中复制出好几块独立的文本到另一个文件中去,单用上面的方法就不得不多次切换文件,存盘。
        将这些独立的文本存到一个寄存器中去可以避免这种繁琐的切换。
        复制时用["]+[寄存器名(字母寄存器是a-z)]+[y],例如:"ay,就是将当前选中的内容拷贝到a寄存器.
        粘贴是用用["]+[寄存器名(字母寄存器是a-z)]+[p],例如:"ap,就是将a寄存器中的内容拷贝到当前位置
6. 光标控制
    gg命令
    跳到文件的首行
    G命令
    跳到文件的最后一行
7. 编辑多个文件
    edit命令
    先保存正在编辑的文件,用[:edit][filename]命令打开文件filename。
    saveas命令
    将当前正在编辑的文件另存为一个文件。
    args命令
    args *.*编辑当前目录所有文件
    argdo[正则表达式] [ge] |update 用正则表达式去匹配所有文件,替换,然后保存所有文件
8. 分割窗口
    split命令
    将当前窗口分成上下两个窗口。
    两次[CTRL+W]可以切换窗口。
    vsplit命令
    将当前窗口分成左右两个窗口。
    两次[CTRL+W]可以切换窗口。
    close 命令
    关闭当前窗口。
    only 命令
    close all butthis(关闭除当前窗口以外的窗口)。
    wall 命令
    保存所有窗口打开的文件。
    qall 命令
    如果所有窗口打开的文件都已经保存,退出,如果有未保存的文件,跳转到对应的窗口中。
    wqall 命令
    保存并退出所有窗口。
9.折行
    zc命令
    折叠文本
    zo命令
    打开折叠文本
    zr[R]命令
    打开多层嵌套的折行
    zm[M]命令
    关闭多层嵌套的折行
    ]c 命令
    向前定位不同之处。
    [c 命令
    向后定位不同之处。
    diffupdate 命令
    消除差异。
10. 文本替换
    (%)substitute(s)命令
    用法
    :(%)s/from/to/[flags(g)]将from替换成to。g表示global。
    \<用来指示一个单词的起始位置。
    \>用来指示一个单词的结束位置。
11. Shell命令
    :read(r) !(cmd) 执行cmd并读取它的输出
    :write !(cmd)执行cmd并并把当前缓冲区的内容作为它的输入
    :shell 样打开一个新的shell
12. 查找文件
    :edit . 显示当前目录的内容,选择文件,按回车键在当前窗口中打开选择的文件
    o 打开一个水平分隔的窗口显示文件
    v 打开一个垂直分隔的窗口显示文件
    t 在一个新标签页中打开文件
    :cd dirtory 切换到dirtory目录
    :pwd 显示当前工作目录
    :lcd dirtory 切换到局部工作目录dirtory
    pwd 当前工作目录
    find filename 查找filename,并跳转到filename文件
    gf 光标置于想要跳转的文件名上,按下gf即跳转到改文件。
    [CTRL+W]f可以替代gf,不同的是前者把窗口分成了两个。
    sfind 可以替代[CTRL+W]f,效果一样。
    :buffers(:ls)列出缓冲区列表。
    编辑缓冲区
    buffer [number]
    sbuffer [number]在新窗口打开
    :bnext/bprevious/bfirst/blast
    同理,sbnext/sbprevious/sbfirst/sblast
    tabnew  filename 在新标签中编辑文件。
    vertical sfind 垂直分割窗口查找文件
13. 快速键入
    在Insert模式下可用的快捷键
    <Ctrl-Home>到文件头
    <PageUp> 向上滚屏
    <Home> 到行首
    <Shift-Left>向左移动一个word
    <Ctrl-Left>向左移动一个word
    <Shift-Right>向右移动一个word
    <Ctrl-Right>向右移动一个word
    <End> 到行尾
    <PageDown>向下滚屏
    <Ctrl-End>到文件尾

    < Ctrl+u >将屏幕向前(文件头方向)翻滚半屏;


  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值