ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:23.08KB ,
资源ID:14000193      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14000193.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VIM 使用教程.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

VIM 使用教程.docx

1、VIM 使用教程VIM 编辑器VIM 和 Emacs 是 Linux 上最知名和最受程序员喜爱的两种编辑器。VI追求的是快捷启动程序迅速,编辑文本高效,功能专注,而Emacs追求的是功能的丰富强大以及集成带来的方便,在Emacs里头可以发邮件,上新闻组,听mp3,浏览网页,玩游戏,几乎可以login-emacs-logout了,VI和Emacs都是程序员的编辑器,相比而言,Emacs更是提供了一种程序员的生活氛围。VIM引入了很多模式,主要的有如下几种:Normal mode即通常所谓的命令模式,在此模式使用a、i、A、I、o、O等进入Insert modeInsert mode即通常所谓的编

2、辑模式,在此模式使用ESC进入Normal mode或者Ctrl-c临时进入Normal modeCommand-line mode命令行模式,在Normal mode下按冒号进入,按ESC取消执行命令或者回车执行命令,然后回到Normal mode。Visual mode即选择模式(注意跟用鼠标选择不同),用v,V,C-v或C-q进入Select mode鼠标选择Replace mode在Normal mode下按R进入,按ESC返回Normal mode,相当于Windows下命令行中按Insert键进入的覆盖模式1.基本操作1)移动光标(Normal mode)可以用下面的键来移动光标H

3、 (左), j (下), k (上), l (右)2)删除(Normal mode)当你想删除一个字符时,把光标移动到它上面,然后按下x键,它就会消失。dd命令会删除当前所在的一行内容。dw 删除当前光标所在字符d$ 删除从当前光标所在位置到当前行结尾的所有内容d 删除从当前光标所在位置到行首的所有内容3)合并行(Normal mode)使用J命令可以合并当前行和下一行4)撤消和重做(Normal mode)按下u会撤消上一步的操作,U(大字)是一个特殊的撤消键,它会撤消在在最后编辑的行上所作的所有操作。如果撤消的次数过多,按下 Ctrl+r 会重做上次撤消的操作5)复制和粘贴 (Normal

4、 mode)yy 复制游标所在行整行。或大写一个 Y。2yy 或 y2y 复制两行y 复制至行首,或 y0。不含光标所在处字符。y$ 复制至行尾。含光标所在处字符。yw 复制一个 word。y2w 复制两个字。yG 复制至档尾。y1G 复制至档首。p 小写 p 代表贴至光标后(下)。P 大写 P 代表贴至光标前(上)。 ayy 将本行文字复制到 a 缓冲区a 可为 26 个英文字母中的一个,如果是小写的话,原先的内容会被清掉,如果是大写的话是 append 的作用,会把内容附加到原先内容之后。ap 将 a 缓冲区的内容贴上。6)退出 (Normal mode)ZZ 会退出VIM并且对所有编辑的

5、文件保存起同样作用的命令 (Command-line mode):wq 或者 :x7)插入文本 (Normal mode 转入 Insert mode)i会在光标所在字符前插入内容。I在当前行首插入内容。a会让你在当标所在的位置之后继续输入内容。A 在当前行尾插入内容。o命令会在光标所在行下面加入一行,并将光标移动的此行的开始以供输入如果想在光标所在行的上面加入一行,请使用命令O(大写)8)替换 (Normal mode)r 替换当前字符。 R 替换当前字符及其后的字符,直至按 ESC 键。 s 从当前光标位置处开始,以输入的文本代替指定数目的字符。 S 删除指定数目的行,并以所输入的文本代替

6、。9)重复命令 (Normal mode)当要做多次同样的操作时,可以用计数来加快这一过程。 number command object 或者 command number object 其意是 number - 代表的是命令执行的次数 command - 代表要做的事情,比如 d 代表删除 object - 代表要操作的对象,比如 w 代表单字/单词,$ 代表到行末等等。举个例子如下9k会让你向上移动9行。通过在命令前加一个数字n,就可以执行这一命令n次。10)文件操作vim FileName 打开文件 FileName,并将光标置于第一行首。 vim +n FileName 打开文件 Fi

7、leName,并将光标置于第 n 行首。 vim + FileName 打开文件 FileName,并将光标置于最后一行。 vim + /pattern File 打开文件 File,并将光标置于其中第一个于 pattern 匹配的字符串处。 vim r FileName 在上次正用 vi 编辑 FileName 发生系统崩溃后,恢复FileName。 vim File1 Filen 打开多个文件,依次对之进行编辑。11)十六进制查看模式 (Command-line mode):%!xxd 按十六进制查看当前文件 :%!xxd -r 从十六进制返回正常模式12)屏幕 (Normal mode)

8、H 光标移至屏幕顶行。 M 光标移至屏幕中间行。 L 光标移至屏幕最后行。 Ctrl+u 向文件首翻半屏。 Ctrl+d 向文件尾翻半屏。 Ctrl+f 向文件尾翻一屏。 Ctrl+b 向文件首翻一屏。13)大小写转换 (Normal mode)guu 行小写 gUU 行大写 g 行翻转guw 字小写gUw 字大写gw 字翻转14)文件状态 (Normal mode)输入 CTRL-g 显示当前编辑文件中当前光标所在行位置以及文件状态信息。15)搜索(Normal mode)输入 / 以及尾随的字符串可以用以在当前文件中查找该字符串。 要查找同上一次的字符串,只需要按 n 键。要向相反方向查找

9、同上一次的字符串,请输入 Shift-n 即可。如果您想逆向查找字符串,请使用? 代替 / 进行“.*%/?$”这些字符在VIM中有特殊意义,如果搜索内容中包括这些符号,需要在符号前面加“”。16)配对括号的查找(Normal mode)按 % 可以查找配对的括号 )、。17)查找函数的man说明(Normal mode)光标置于函数上,输入K18)变量定位 (Normal mode)gd 转到光标下局部变量的定义处 Gd 转到光标下全局变量的定义处19)自动补齐 (Insert mode)CTRL-X CTRL-F 文件名 CTRL-X CTRL-L 整行有ctags设置时:Ctrl-p 自

10、动补齐上下文已有的相近项Ctrl-n 自动补齐 tags 中的相近函数20)标签跳转 (Normal mode)CTRL+ 跳转到光标当前位置的标签处 (例如:一个函数的定义)。 CTRL+T 跳转到执行 CTRL- 命令前的地方。 :tselect 从一连串匹配的标签中选出一个。/ 跳转到注释开始的位置。 / 跳转到注释结束的位置。# 返回到未闭合的 #if, #ifdef, or #else 处。 # 前进到未闭合的 #else 或 #endif 处。 ( 返回到未闭合的 ( 处。 ) 前进到未闭合的 处。 跳转到最近对应的 处。 跳转到最近对应的 处。2.Visual mode 下操作进

11、入Visual mode使用 v,V,ctrl -v v: 是以字节模式选择V: 是以行的方式选择Ctrl-v: 以列的方式选择在列选方式下:I 在块的每一行首加上string A 在块的每一行尾加上string C 修改选中的列块(即删除并输入新内容 ) c 修改选中的列块(即删除并输入新内容 ) 右移Tab宽度 左移Tab宽度3.规则表达式(regular expression)及其应用1)表达式基本匹配 行的起始$ 行的结尾. 除换行字符外的任一单一字符* 指前所绑住的字符或字符集合,出现 0 次或 0 次以上+ 和 * 作用相同,但不包括出现 0 次= 指前所绑住的字符恰好出现 0 或

12、 1 次 匹配括号内任意一个字符 匹配除了括号内字符的字符n, m 指前所绑住的字符或字符集合最少出现 n 次,最多出现 m 次() 记忆 pattern,可由 1, 2.9 来叫出 匹配字尾。这就是前所提及的限定用法,被 括住的| 搜索的或操作中介字符(metacharacter, or character classes)d: 匹配一个数字 0-9D: 匹配一个非数字字符x: 匹配一个十六进制数 0-9A-Fa-fX: 匹配一个非十六进制字符o: 匹配一个八进制字符 0-7O: 匹配一个非八进制字符 w: 匹配一个word字符 0-9A-Za-zW: 匹配一个非word字符 a: 匹配一个

13、字母字符 A-Za-zA: 匹配一个非字母字符l: 匹配一个小写字母字符 a-zL: 匹配一个非小写字母字符u: 匹配一个大写字母字符 A-ZU: 匹配一个非大写字母字符c: 忽略搜索内容大小写C: 大小写敏感2)全域性指令:rangeg/pattern/cmdcmd 是 ed 可用的指令,预设是 p(print)。这里主要是说明 d(delete) 的功能。因为是要说明如何消除空白行。需注意的是,d 是行删除指令,凡含 pattern 的整行都会被删掉,而且 range 不指定的话,预设是全篇文章,因为 g 就是代表 globe。例::g/$/d 删除全文的空白行3)替换:ranges/pa

14、ttern/string/c,e,g,I,nrange 指的是范围,1,7 指从第一行至第七行,1,$ 指从第一行 至最后一行,也就是整篇文章,也可以 % 代表。pattern 就是要被替换掉的字符串,可以用 regexp 来表示。string 将 pattern 由 string 所取代。c 每次替换前会询问。e 不显示 error。g 不询问,整行替换。n 不做替换操作。(可以做统计用)I 忽略大小写Note:代表置换时合于 patern 的字符或字符串例:将档案 3 至 7 行的数据向右移 2 个空白:3,7s/.+/ &/4.设置书签你可以在编辑的内容的某处设置书签(marks),然后

15、到其它地方去编辑,在呼叫这个书签的时候就会回到设置点位置。mx x 代表 26 个小写英文字母,这样光标所在处就会被标记一个书签x 就可以回到书签设置的位置x 回到书签设置行的行首:marks 得知目前所有书签的列表。 小写字母 只作用于单一档案内。 大写字母 可作用于编辑中之各档案间。5.宏的使用Vim 有一种记录宏的机制。 键入”qa” 开始把一段宏记录入寄存器变量 a 中。下面按平常的操作键入你的擦作,这些操作会北Vim 记录到它命名为 a 的宏中去,当再次按下 q” 键,就结束了宏 a 的记录。当你要重复执行你刚才记录的那些操作时只要用 “a” 命令。6.窗口操作Ctrl-w n 即

16、:new。开一空的新窗口。 Ctrl-w s 即 :sp(lit),会开一新窗口,且原文件分属两个窗口。Ctrl-w f 开一新窗口,并编辑光标所在处之 word 为档名的档案。Ctrl-w q 即 :q 结束分割出来的窗口。Ctrl-w o 即 :only! 使光标所在之窗口,成为目前唯一显示的窗口 其它窗口会隐藏起来。Ctrl-w j 移至下窗口。Ctrl-w k 移至上窗口。7.编程辅助功能1)插件VIM内置的插件ctags,cscope现在的IDE都提供了类、函数的索引功能,可以方便的找到某个类或者函数的在哪里定义的,VIM这方面可以利用ctags、cscope做到,Exuberant

17、 ctags支持的语言种类非常多,UltraEdit的tags功能也是利用的ctags。cscope只支持C,它能实现Source Insight的一些功能,比如查找某个函数调用了哪些函数,某个函数被哪些函数调用。VIM对这两个工具集成的非常好,利用它们就可以在源文件中方便的跳转搜索类和函数了。vim中cscope相关命令简介:所有命令都是通过主命令:cscope的子项完成的。主命令最短的缩写是:cs。 :scscope完成同样的功能的同时还可以分割窗口(缩写:scs).可用的子命令有: add:添加一个新的cscope数据库连接。用法:csaddfile|dirpre-pathflagspr

18、e-path用来通知cscope使用-Ppre-path选项。flags可以用来给cscope传递额外的选项。 例子:cscopeadd/usr/local/cdb/cscope.out :cscopeadd/projects/vim/cscope.out/usr/local/vim :cscopeaddcscope.out/usr/local/vim-C find:查询cscope。 用法:csfindquerytypenamequerytype和cscope的控制台界面都是一致的。 0或s:查找C符号 1或g:查找定义 2或d:查找本函数调用的函数 3或c:查找调用指定函数的函数 4或t:

19、查找字符串 6或e:查找egrep模式 7或f:查找文件 8或i:查找包含指定文件的文件 例如:cscopefindcvim_free :cscopefind3vim_free这两个例子执行同样的查询。 kill:终止一个cscope连接(或终止所有cscope连接). 用法:cskillnum|partial_name要终止一个连接,需要给处连接号或者部分的连接名称。部分名称可以是数据库文件路径的任何一部分。所以要当心使用这个功能!如果给定的连接号是-1,那么所有的cscope连接都会被终止。 reset:重新初始化所有连接。用法:csreset show:显示当前的连接。用法:csshow

20、这里介绍几种常用的插件和安装方法i.taglist 一种代码浏览的插件taglist_41.zip 包含两个文件taglist.vim 和taglist.txt。taglist.vim 放置于 VIM 的plugin 目录taglist.txt 放置于 VIM的 doc 目录当重启VIM,放置于plugin的taglist.vim会自动被载入,而帮助文件需要命令安装。启动VIM后执行 :helptags . 就可以重建帮助文件的索引,这样新插件的帮助文件就被加入到重帮助文件中了。ii.bufexplorer 方便文件之间切换bufexplorer.zip 安装方法可以参考 taglist2)编

21、译及定位程序错误a)打开VIM的目录中有makefileb):makec):cl 查看编译过程中的错误和警号信息d):cc + number 跳转到number对应的错误位置e):cn 查看下一个错误f):cp 查看上一个错误3)文件比较进入比较模式编辑的最简单方法就是用 vimdiff 命令。它如常启动 Vim,但附加一些设置,以便于查看输入参数所指定的文件间的差异: vimdiff file1 file2 file3 file4 :diffupdate 刷新比较结果的高亮和折叠有两条命令可用于在跳转到差异文所在的位置:c 反向跳转至上一处更改的开始c 正向跳转至下一个更改的开始。有两个命令

22、可用来在两个缓冲区之间复制文本。相应的结果是,在一定的范围内两缓冲区的内容被统一。do 用另一个缓冲区来修改当前的缓冲区,消除不同之处 dp 用当前缓冲区来修改另一个缓冲区,消除不同之处4)括号内的快速块操作和跳转Normal mode 模式下daB 删除及其内的内容diB 删除中的内容在Visual mode模式下ab 选择()中的内容iB 选择中的内容( 不含 )5)语法提示与自动补齐K 显示函数的man手册 插入模式下的单词自动完成 行自动完成8.Set 选项设置set all 列出所有选项设置情况。 set term 设置终端类型。 set ignorecase 在搜索中忽略大小写。

23、set list 显示制表位(I)和行尾标志($)。 set number 显示行号。 set showmode 显示用户处在什么模式下 set report 显示由面向行的命令修改的行数目。 set terse 显示简短的警告信息。 set warn 在转到别的文件时,若没有保存当前文件则显示 No write 信息。 set autowrite 在“:n”和“:!”命令之前都自动保存文件 set nomagic 允许在搜索模式中,使用前面不带的特殊字符。 set nowrapscan 禁止 vi 在搜索到达文件两端时,又从另一端开始。 set mesg 允许 vi 显示其他用户用 writ

24、e 写到自己终端上的信息。 autoindent (ai) noai 使新行自动缩进,和上(下)行的位置对齐 autoprint (ap) ap 每条命令之后都显示出修改之处 autowrite (aw) noaw 在:n,:!命令之前都自动保存文件 beautify (bf) nobf 在输入的时候忽略所有的控制字符(除了制表键(tab),换行(newline),进纸(formfeed) directory= (dir=) /tmp 存放缓冲区的目录名 edcompatible noedcompatible 在替换的时候使用类ed的用法 errorbells (eb) errorbells

25、出错的时候响铃 exrc (ex) noexrc 允许在主目录(home)外面之外放.exrc文件 hardtabs= (ht=) 8 设置硬制表的边界 ignore case (ic) noic 正规式里忽略大小写 lisp nolisp 打开lisp模式 list nolist 显示所有的制表键和行的结尾 magic agic 可以使用更多的正规表达式 mesg mesg 允许向终端发送消息 number (nu) nonumber 显示行号 open open 允许开放和可视化 optimize (opt) optimize 优化吞吐量,打印时不发回车 paragraphs= (para

26、=) IPLPPPQPPLIbp 设置 & 的分界符 prompt prompt 命令模式下的输入给出:的提示符 readonly (ro) noro 除非用!号否则不准保存文件 redraw noredraw 当编辑的时候重绘屏幕 remap remap 允许宏指向其他的宏 report= 5 如果影响的行数这个数的话就报告 scroll 1/2 window 下卷屏幕时滚动屏幕的数目, 同样这也是z命令输出的行数(z 输出2倍滚屏的大小) sections= SHNHH HU 定义节的末尾(当使用命令 和 时) shell= (sh=) /bin/sh 缺省的SHELL,如果设置了环境变量

27、SHELL的话,就使用变量 shiftwidth= (sw=) 8 当使用移动(shift)命令时移动的字符数 showmatch (sm) nosm 显示, , (, ), , 或者 的匹配情况 showmode noshowmode 显示你处在什么模式下面 slowopen (slow) 插入之后不要立刻更新显示 tabstop= (ts=) 8 设置制表停止位(tabstop)的长度 taglength= (tl=) 0 重要标记的字符个数(0表示所有的字符) tags= tag, /usr/lib/tags 定义包含标记的文件路径 term= 设置终端类型 terse noterse 显示简短的错误信息 timeout (to) timeout 一秒钟后键盘映射超时 ttytype= 设置终端类型 warn warn 显示No write since last change信息 window= (w=) 可视模式下窗口的行数 wrapmargin= (wm=) 0 右边距,大于0的话最右边的单词将折行,留出n个空白位置 wrapscan (ws) ws 查找到文件尾后再重头开始 writeany (wa) nowa 可以保存到任意一个文件去

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2