您的位置:首页 > Web前端

VIM基本命令

2011-02-11 11:04 155 查看
基本:

 
移动命令(光标定位)

 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                 
转到编号为 3

buffer

: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(较常用)

[b]寄存器的使用(较有用)


在复制前可以先指定一个寄存器,方法是在双引号后跟一个字母,例如"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        恢复命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vim command n2 buffer jobs zk