VIM基本命令

    技术2025-03-03  44

    基本:

      移动命令(光标定位)  h j k l 左下上右移动光标  H        跳到屏幕上的第一行 M        跳到屏幕的中间行 L         跳到屏幕上的最后一行 w        光标以单词向前移动至单词第一个字母 b        与w相反,向后移动至单词的第一个字母 %:       移动到与制匹配的括号上去(),{},[],<>等 CTRL+G  得到当前光标在文件中的位置 CTRL+d  向下移动半屏        CTRL+u        向上移动半屏        CTRL+f  向下移动一屏        CTRL+b        向上移动一屏  Ctrl-w h,Ctrl-w j,Ctrl-w k,Ctrl-w l 切换到左下上右窗口 $        当前行的末尾         ^        当前行第一个字母 gg       文件头        G        文件尾 ``       回到光标跳转前的位置        `. -- 此命令相当强大, 它移动光标到上一次的修改点.  行号+G  跳转到指定行        :set 10    跳转到指定行10行处 zj        移动到下一个折叠的开始处       zk      移动支折叠的结束处 zz        移动屏幕,将光标所在的位置移动到中间行  fx         向右跳到本行字符x处(x可以是任意字符)        Fx        向左跳到本行字符x处        输入; 表示继续住下找  输入,表示反方向找

    [separator]

    删除、复制、修改 dd        删除一行    dw        删除一个单词(光标在词首)    daw        同dw,光标在单词的任意处    d$        删除到行尾        shift+j      删除行尾的换行符    x       删除单个字符        D       同d$,但比d$更简捷 yy        复制一行     yw        复制一个单词(同上)          yaw        同上                                   y$        ...                cc        修改...        cw        修改....                              caw        修改...                                c$        修改....            cl             修改当前字符 (、[、{、}、]、)内数据选择 daB 删除{}及其内的内容 (在非v可视模式下) diB 删除{}中的内容 ab 选择()中的内容 ib 选择()中的内容( 不含() ) aB 选择{}中的内容 iB 选择{}中的内容( 不含{} ) 自动补齐 CTRL+p        向上查找匹配单词       CTRL+n        向下查找匹配单词(其次还匹配文件名,匹配行,但不常用,这里就不罗列)        不断输入此命令则循环查找 关于ctags,在源文件中方便的跳转搜索类和函数的功能,现在还不熟悉,在以后的更新中,会加入这部份内容。 <C-X><C-L> 行自动完成(超级有用) 补充内容: ctags -f /usr/share/vim/vim63/funcs.tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686 ^p 自动补齐上下文已有相近项 ^n 自动补齐~/.tags中的相近函数 ^[ 显示~/.tags中的光标下的函数的原型, 按^t退出函数 :pta 函数名预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头 K 显示光标下的C函数的man说明手册 多文件操作(虽不常用,但很实用) :ls  :buffers     显示buffer 列表 :bn                   转到下一个 buffer        :bp                   转到上一个 buffer :b 3                  转到编号为 3buffer :sp(:vsp)                         横、竖分割打开新文件 :e 文件名             vim 将在原窗口中打开新的文件, 若旧文件编辑过, 会要求保存 . :set diff            此命令用于比较两个文件(很实用的东东,但要求是在同一窗口中打开的两个文件,最好用vsp打开) 补充内容: :%!xxd 按十六进制查看当前文件 :%!xxd -r 从十六进制返回正常模式 :n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。 :n1,n2 m m3 将 n1 行到 n2 行之间的内容移至第 n3 行下。 :n1,n2 d 将 n1 行到 n2 行之间的内容删除。 :n1,n2 w filename 将 n1 行到 n2 行之间的内容保存到文件 filename 中 :n1,n2 w! Command 将文件中n1行到n2行的内容作为 Command的输入并执行之, 若不指定 n1、n2,则将整个文件内容作为 Command 的输入。 :r! Command 将命令 Command 的输出结果放到当前行。 :nr <文件> 把<文件>插入到第n行 :so <文件> 读取<文件>,再执行文件里面的命令(文件中的命令应该都是一些ex命令) :l1,l2w <文件> 把第l1和第l2行之间的文本写到<文件>中去 :w >> <文件> 添加到<文件>末尾. 也可以使用行号 :e! 重新编辑当前文件,忽略所有的修改   查找、替换 /        向下查找        ?       向上查找        *        表示查找光标所停留的单词   n        跳转到下一匹配结果        N        跳转到上一匹配结果 %s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb(较常用) 寄存器的使用(较有用) 在复制前可以先指定一个寄存器,方法是在双引号后跟一个字母,例如"a指定了寄存器a,"B指定了寄存器B。 "ayy把当前行放进了寄存器a,以后就可以用"ap来粘贴寄存器a里的内容了。 使用:reg来查看当前寄存器中的内容。 Vim提供了一个很有用的特殊寄存器"+,它的内容就是系统剪贴板的内容。可以在Vim里用"+p粘贴出来。 其它常用命令 :x => 保存并退出,:q! =>强行退出,:e! =>放弃修改文件内容,重新载入该文件,ZZ =>同:x命令, :only =>在一个窗口显示多个文件的情况下,仅保留一个文件 CTRL+z    挂起文件        shell下jobs        显示挂起文件夹的编号 :set number(:set nu)        显示行号        :set :set nonu                         取消显示的行号 :eaho $LANG        显示编码 :set enc=utf-8         设置文字编码 按v进入“选择模式”        选中要编辑的文字,按“+”符号可自动对齐 zc        折叠   zr(zR)打开所有折叠        zm(zM)关闭所有折叠 TAB 制表符        >>(<<)       输入此命令则光标所在行向右(向左)移动一个TAB(符号前可加数字) u        撤消命令        ctrl+r        恢复命令
    最新回复(0)