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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

vim与gvim技巧6.docx

1、vim与gvim技巧6vim与gvim技巧vim&gvim技巧大全(6) yy 复制游标所在行整行。或大写一个 Y。 2yy 或 y2y 复制两行。,请举一反三好不好!:-) y 复制至行首,或 y0。不含游标所在处字元。 y$ 复制至行尾。含游标所在处字元。 yw 复制一个 word。 y2w 复制两个字。 yG 复制至档尾。 y1G 复制至档首。 p 小写 p 代表贴至游标后(下)。 P 大写 P 代表贴至游标前(上)。 整行的复制,按 p 或 P 时是插入式的贴在下(上)一行。 非整行的复制则是贴在游标所在处之后(前)。ayy 将本行文字复制到 a 缓冲区 a 可为 26 个英文字母中的

2、一个,如果是小写的话,原先的 内容会被清掉,如果是大写的话是 append 的作用,会把内 容附加到原先内容之后。 是 Enter 键隔壁的那一个同上符号(ditto marks)。ap 将 a 缓冲区的内容贴上。 缓冲区的术语在 vim 称为 registers,vim 扩充了相当多的 功能,有兴趣深入的朋友请 :h registers。您用 d、c、s、 x、y 等指令改变或删除的内容都是放在 registers 中的。 例如:您用 dd 删除的一行,也是可以使用 p 来贴上的。只 要是在缓冲区的内容都可以使用 p 来贴上,不是一定要 y 起 来的内容才能用 p。因此您认为 p 是 pas

3、te 也可以,认为是 put 可能较正确。5ayy 复制五行内容至 a 缓冲区。 5Ayy 再复制五行附在 a 内容之后,现在 a 中有十行内容了! !不要我一直用 a 您就认为只有 a 可以用喔。26 个英文 字母都可以的,交叉运用下,您会发觉 vi(m) 肚量不小。问题来了!忘记谁是谁的时候怎么办? :reg(冒号命令)就 会列出所有 registers 的代号及内容。您现在就试著按看看 咦!怎么还有数目字、特殊符号的缓冲区,原来您刚刚删除 (复制)的内容就预设放在 这个缓冲区,然后依序是 0,1,2,.9。也就是说您按 p 不加什么的话,是取出 缓 冲区的内容的。% 指的是目前编辑的档案

4、,# 指的是前一次 编辑的档案。还有其它的呀!因为没什么重要,就请 :h registers 吧!registers 有个 s 结尾,不要搞错了,而且 Tab 的补全键 vim 也支援的,也就是说您键入 :h regi 再按 Tab 键,vim 就会帮您补全,按了 Tab 后发现不是您要 的,那就继续按,总会出现您要的。:-)Tab 补全的功能,elvis 也有,但叫出 registers 列表的命令 则没有,您得自行记忆在您的脑袋瓜子里。而且 elvis 的补全 能力并没 vim 强。天大的指令 . 这是什么?,是英文句点啦!没错,就是英文句点。什么意思?重复前次的编辑动作。这个指令太高明了

5、,只要是编辑动作(移动游标不算,冒号命令也不算)都可以按英文句点来重复,要重复几次都可以。例如:您按了 yy,然后按 p 就会复制、贴上一整行,如果要重复这个动作的话,就可以按 . ,也可以把游标移到其它地方后再按。其它 dd,dw,r,cw 等编辑指令都可以这样来重复。如果您要重复做某些编辑动作时,千万千万一定要想到有这么一个英文句点重复指令。,拜托啦!您一定要常用这个指令。疑难杂症 那 mouse 中键的剪贴功能还有吗?当然还有,不管在 console 或 X terminal 中都照用不误。当然在 windows 下的话就不能用了,可以用 Shift-Insert 来代替。Ctrl-v

6、在 vim 中另有作用,在 windows 下就不必去麻烦它了。 ,我从 netscape 用 mouse copy 东东过来的时候,常常都搞得天下大乱耶!要设成 :set paste,预设是 map 至 F9 键的,您要 copy 之前先按一下 F9,copy 完后再按一次 F9 来回复。这是 vim 的扩充功能,elvis 没有。那在 elvis 怎么办?只好 :set noai 了。在 GUI 的版本应不会有这种情形。 set 的功能先不必去理它,往后会有一个单元专门讨论。朋友!您睡著了吗?不要被吓到了,您只要开个档案,亲自操作一下就能心领神会。那用 mouse 不是更方便吗?不见得,y

7、yp 来复制贴上一整行比较快,还是用 mouse 来拉比较快?您可以试看看。 寻找/替换 搜寻、替换的功能几乎是每个编辑器必备的功能,那在 vi(m) 中有没有特殊的地方呢?当然有,您忘了,vi(m) 是个性十足的编辑器。最特殊的地方是和规则表示式(regular expression,简称 regexp) 结合在一起。简单的说她是一种 pattern 的表示法,在执行动作,如寻找或替换,就会依据这个 pattern 去找,所有符合 pattern 的地方就会执行您所下的动作。在这个单元里不讨论 regexp,会另立一个单元来探讨,以免搞得头昏脑胀。目前就暂不使用 regexp,您要找什么就直

8、接键入什么就对了。寻找 / 在 c-mode 的情形下,按 / 就会在左下角出现一个 /,然后键入您要寻找的字串,按个 Enter 就会开始找。 ? 和 / 相同,只是 / 是向前(下)找,? 则是向后(上)找。 n 继续寻找。 N 继续寻找(反向)。 更方便的寻找操作(vim 才有) * 寻找游标所在处之 word(要完全符合)。 # 同上,但 * 是向前(下)找,# 则是向后(上)找。 g* 同 * ,但部份符合即可。 g# 同 # ,但部份符合即可。 n,N 之继续寻找键仍适用。替换(substitute) :ranges/pattern/string/c,e,g,irange 指的是范

9、围,1,7 指从第一行至第七行,1,$ 指从第一行至最后一行,也就是整篇文章,也可以 % 代表。 还记得吗? % 是目前编辑的文章,# 是前一次编辑的文章。 pattern 就是要被替换掉的字串,可以用 regexp 来表示。string 将 pattern 由 string 所取代。c confirm,每次替换前会询问。e 不显示 error。g globe,不询问,整行替换。i ignore 不分大小写。 g 大概都是要加的,否则只会替换每一行的第一个符合字串。 可以合起来用,如 cgi,表示不分大小写,整行替换,替换前 要询问是否替换。 实例 :%s/Edwin/Edward/g 这样整

10、编文章的 Edwin 就会替换成 Edward。更进阶的寻找、替换的例子在说明 regexp 的时候还会再详述。目前只知道最基本的用法就可以了!其实光这样就非常好用了。:-)书签功能 这又是 vi(m) 的一个秘密武器,简单的说,您可以在文章中的某处做个记号(marks),然后跑到其它地方去编辑,在呼叫这个 mark 时又会回到原处。妙吧!mx x 代表 26 个小写英文字母,这样游标所在处就会被 mark。 x 回到书签原设定位置。 是 backward quote,就是 Tab 键上面那一个。x 回到书签设定行行首。 是 forward quote,是 Enter 键隔壁那一个。vim 对

11、于书签的扩充功能 小写字母 只作用于单一档案内。 大写字母 可作用于编辑中之各档案间。 数目字 可作用于前次编辑的十个档案。 数目字的用法比较特殊,0 是回到前一次编辑档案中离开 前的最后位置,1 则是回到前二次编辑档案的最后位置, 依此类推。您不必使用 m 来标示,vim 会自动记忆。 很玄吧!其实这是 viminfo 的功能,您要认真追究的话, 请 :h viminfo-file-marks。viminfo 关掉,就没这个功能了!所谓前次指的是前次启动的 vim。:marks 得知目前所有书签的列表。叫档、存档、紧急回复 ,是不是在灌水呀!怎么开个档也成一个单元?那您就错了,在 vi(m)

12、 里叫档的花样可多了,而且又可以多档编辑,各编辑中的档案还可以互通讯息,这里面学问可大著呢!vim 就更骚包了,也学人家档案可以加密,虽说是噱头,但也还满好用的。 vim + 档名 这样开档后,游标会落在档案最后一行的行尾,在档案屁屁后干什么呢?方便您可以继续编辑嘛! vim +n 档名 游标会落在第 n 行的行首。 vim +/string 档名 还记得吗? / 就是寻找指令,这样进入档案后游标就会落在第一个找到的 string 上,还可以按 n 继续找 string 喔!哦,string 还可以使用 regexp 来表示喔。 多档编辑 多档编辑会有两种情形,一种是在进入 vim 前所用的参

13、数就是多个档(这种情形称为 argument list)。另一种情形是进入 vim 后另外再开其它的档(称为 buffer list)。不过都可以统称为 buffer。:n 编辑下一个档案。 :2n 编辑下二个档案。 :N 编辑前一个档案。 注意,这种用法只能用于 argument list 的情形。:e 档名 这是在进入 vim 后,在不离开 vim 的情形下再开其它档案。只要您要编辑的档案是在目前目录,Tab 补全键还是可以使用。 :e# 或 Ctrl- 编辑前一个档案,用于两档互相编辑时相当好用。 这种用法不管是 argument list 或 buffer list 档案间皆可使用。还

14、记得吗? # 代表的是前一次编辑的档案。:files 或 :buffers 或 :ls 会列出目前 buffer 中的所有档案。 在 elvis 中可使用 :b 来叫出 buffers。在 buffers 中,减号 - 表示这个 buffer 并未载入,不过, 不必担心,载入相当快速的。加号 + 表示这个 buffer 已经修改过了。:bn buffer next。 :bl buffer last。 以上两个指令 elvis 不适用。:b档名或编号 移至该档。 在 :ls 中就会出示各档案的编号,这个编号在未离开 vim 前是不会变的。 这个指令 elvis 也是可以使用。当然 :e#编号 也

15、是可以的,这样的用法则是所有 vi clone 都通用了。如果您是使用 vim 的 GUI,那就在功能表上就会有 Buffers 这个选项, 可以很容易的知道及移动各 buffer 间。:bd(elete) buffer 在未离开 vim 前是不会移除的,可使用这个指令移除。其实移除她干什么呢?vim 是您在叫用时才会载入的,因此这些 buffers 并不是像 cache 一般要占记忆体的。 :e! 档名 这样也是会开档,但会放弃目前编辑档案的改变,否则如果档案已有变动,vim 预设是不让您随便离开的。:e! 后不接什么的话,代表舍弃一切修改,重新载入编辑中档案。 :f 或 Ctrl-g 显示

16、目前编辑的档名、是否经过修改及目前游标所在之位置。 :f 档名 改变编辑中的档名。(file) :r 档名 在游标所在处插入一个档案内容。(read) :35 r 档名 将档案插入至 35 行之后。 gf 这是 vim 的特殊叫档法,会叫出游标所在处的 word 为名的档案,当然,这个档案要在目前目录内,否则会开新档案。 哦!好像有点给他复杂,主要原因是偶文笔不好啦!不过您何不选个顺手的来用就可以了,选定了,以后就是使用他,这样就不会那么复杂了。:-) 离开 :q 如本文有修改而没存档,会警告,且无法离开。(quit) :q! 舍弃所有修改,强迫离开。 :wq 存档后离开。纵使档案未曾修改也是

17、会再存一次档。 :x 也是存档后离开,但如果档案没有修改,则不会做存档的动作。 ZZ 和 :x 完全一样,随您高兴用哪一个。 :w 档名 另存他档。不加档名就是写入原档。(write) :q 及 :q! 是对目前编辑中的档案作用,如果多档编辑的情形 并不会离开 vim,这时可下 :qa 或 :qa! 来整个离开 vim。 a 就是 all 的意思。vim 的加密功能 vim -x 档名 这样进入 vim 后会要求输入密码。以后加密过的档案由 vim 开启时会自动要求输入密码。否则无法开启。其它的编辑器当然是无法开启的。进入 vim 编辑档案中,临时想加密,可用 :X 指令。 小心!vim 一开

18、档就会有个 .档名.swp 这个档,是为了紧急回复用的, 一般是在您所开档案的所在目录,这是个隐藏档,ls 要有 -a 参数才看得到, 您加密的功能并没有作用在这个 swp 档,因此 root 还是知道您在 写些什么关于他的坏话的。:-) 当然啦!山不转,路转,路不转,人转, 您也是可以把 swap 的功能关掉的 :set noswf 就行了!但如果您编辑的是 大档案,则不建议您把 swap 关掉,这样会很吃记忆体的。elvis 的话,其暂存档是统一集中存放在 /var/tmp/*.ses, 权限是档案所有者始能读写。vim 的早期版本,其 *.swp 档是依原档案的权限来设定的,最近的版本则

19、从善如流, 已经改成档案所有人始能读写,就是 -rw- 啦! 紧急回复 vim -r 档名,或进入 vim 后,下 :recover 档名,来回复。大家来学 VIM (三) 各种标示方法及视窗操作 这个单元多了一种模式,那便是 visual mode(以下简称 v-mode)v-mode下的反白区(反黑区?_)在本文就统一称为标示区,不知各位是否有更好的中文名称?,视窗操作和标示有什么关系?为什么摆在这里说明?,是因为这两个单元内容都不多,没地方摆,所以就将凑在一起的啦!乱点鸳鸯谱就请各位见谅。标示指令 v 小写 v 这是属于字元标示(character visual),按下 v 后您就可以移

20、动游标,游标走过的地方就会标示起来。再按一次 v 就会结束 v-mode。您用 mouse 拉出的标示区也是属于这类的标示。 V 大写 V 这是行标示(line visual),按下 V 后会整行标示起来(包括空白的部分),您移动上下键,会标示多行。mouse 连按三次左钮,也是属于此类的标示。再按一次 V 就会结束 v-mode。 mouse 按两次左钮是标示一个 word。Ctrl-v 这是方块标示(block visual),可纵向标示矩形区域。再按一次 Ctrl-v 就会结束 v-mode。 结束 v-mode 的方式亦可使用 Esc 键,或一使用 Ctrl-c。 windows 系统

21、下 Ctrl-v 是复制键,可以使用 Ctrl-Q 来替代。d 删除标示区内容。 y 复制标示区内容。 是要先标示好才按的。ay 还能不能用呢?当然可以, 这样就会把标示区内容存于 a 缓冲区中。可以用 ap 来贴上。Shift- 标示区内容向右移一个 Tab。 Shift- 可设成 dark 或 light,这是两种不同的 highlight 颜色设定,详见 $VIMRUNTIME/syntax/synload.vim。不过您要更动颜色的设定,最好是设在 /.vimrc 或 /.gvimrc 中,原始档最好不要去动她。 ,你从没提过 $VIMRUNTIME 好不好!其实这是最近版本的 vim

22、 为了不至安装新版本时把旧版本的一些设定或 macro 档干掉, 所以 $VIMRUNTIME 就是 $VIM/vimxx,xx 就是版本号码啦! 例如您使用的是 vim 5.6 版,那么就是 $VIM/vim56。backup(bk) 是否要 backup file。预设不打开。 writebackup(wb) 在写入档案前先备份一份,和 backup 的作用不尽相同,请:h backup-table。预设是打开的,所以您如果不要 backup,那要关掉的是这个项目,而不是 backup。但请先检查一下您编译时是不是有编译进去,请 :ver。 backupdir(bdir) 设定存放 bac

23、kup file 的目录。预设在所编辑的档案之所在目录。 binary(bin) 设在编辑二进位档状态,这是防止存二进位档时把 EOL 也写进二进位档,那就会悔不当初,如果是图档将会无法再观看,如果是可执行档就无法执行了!因此预设是 off。 elvis 会自动判断是否为二进位档,而且会分成左右两半,左半部会以 16 进位的方式显示, 右半部则是以 ASCII 的方式来显示。browsedir(bsdir) 浏览档案的目录,GUI 版本始有。预设是上一次浏览的目录。就是 GUI版本功能表上的 File - Open 会打开的目录。 cindent(cin) 写 C 时很好用,indent 比一

24、般敏感,专为 C 程序码而设。预设 off。编辑 C/C+ code 时会自动打开。 cmdheight(ch) 状态列的行数,预设一行,建议设成两行。 compatible(cp) 设为和原始 vi 相容的状态,vim 的扩充功能会被抑制。预设 off。 confirm(cf) 各种确认动作。预设 off。 directory(dir)swap 档存放的目录。前面单元已有说明。 fileformat(ff) 这是写入档案时置放 EOL(end of line) 的形式 dos 是以 0D 0A 来断行。 unix 是以 0A 来断行。 mac 是以 0D 来断行。 预设以各系统平台而定,在

25、Linux 当然是 unix 形式。 fileformats(ffs) 可指定多个,会依载入的档案形式来调整 ff。例如 :set ffs=unix,dos ff=unix 则预设为 unix 格式,但如读入的是 dos 格式的档案,会自动调整为 dos 格式,这样存档时就会以 dos 格式存档(状态列会显示)。此时如要改成 unix 格式,可 set ff=unix 然后存档就会转成 unix 格式,反之亦然。 注:如果不这样设,也就是您不管 ff 或 ffs 都设成 unix,那读入dos 格式的档案时在每行尾会出现 M 这个字元(就是 0D 啦!)这时纵使 :set ff=unix 也来

26、不及了!只好 :%s/M/g 来消去这个M。,还记得怎么替换吗?就是把 M 换成没有啦!而且 M 怎么打出来的还记得吧!翻一翻前面的单元吧! Hey,你怎么知道是 0D 呀!好吧!告诉您一个密秘,您把游标移到M 那个位置,然后按 ga 在状态列就会显示 10,16,8 进位的值。其它的字元也是可以如此显示。a 就是 ascii 的意思。但这是 vim 的扩充功能,elvis 没有。 elvis 纵使载入 dos 格式的档案,也是会自动把 M 隐藏起来。 ignorecase(ic) 寻找时不分大小写,这对中文会造成困扰。预设 off。 incsearch(is) 加强式寻找功能,在键入 pat

27、ern 时会立即反应移动至目前键入之 patern 上。预设 off。 hlsearch(hls) 寻找时,符合字串会反白表示。预设 off。如果您是使用 vim 的预设的 vimrc 档的话,会设在 F8 键来切换。 textwidth(tw) 是一种 word wrap 的功能,从左起算之固定每行的最大字元宽度。超过此宽度就会自动折行,这可是真的折行,也就是说在折行处会插入 EOL。预设是 0,也就是没有 word wrap 的功能。 wrapmargin(wm) 和 textwidth 作用相同,只是是从右视窗边向左算起要几个字元起折行。预设是 0。textwidth 与 wrapmar

28、gin 的功能目前并不适用于中文,打中文还是您自行按 Enter 吧! wrap 这也是折行功能,可是只是萤幕效果的折行,实际上并没有插入 EOL。 wrapscan(ws)这和折行没有关系,是指寻找时,找至档尾时,是否要从档首继续找。预设是要。 paste 这是防止在做剪贴时位置会不正确,前面单元已有说明。 ruler(ru) 会在状态列显示游标所在处之行列状态,预设不打开,但建议打开。最右边之代号的意义如下: Top 档案第一行在萤幕可见范围。 Bot 档案最后一行在萤幕可见范围。 All 档案首尾皆在一个萤幕范围内。 如非以上三种情形,则会显示相对百分比位置。 statusline(st

29、l) 状态列显示的格式,使用预设就可以了,如果您想骚包一下的话,那就请您 :h stl。 shiftwidth(sw) 指由 移动整行内容时,一次移动的字元宽度,一般是使用 Tab 的值,但可由这个设定来改变。 tabstop(ts) 一个 Tab 键宽度。预设是 8 个字元宽度。最好不要随便改,以免您写的东西由其它编辑器来阅读时造成困扰,为解决这个问题,vim 有一种 softtabstop 的机制,在下一节会详细说明。 showcmd(sc) 在状态列显示目前所执行的指令。 showmode(smd) 在状态列显示目前的模式,例如是 Insert mode 或是 Visual mode。当然平常的 normal mode(commond mode)是不显示的。 viusalbell(vb)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1