两篇很牛的vim使用技巧

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

两篇很牛的vim使用技巧

来源: ChinaUnix博客日期: 2009.07.06 10:18 (共有1条评论) 我要评论

读本文之前请注意:

1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是现在基本上都是用vim 了。

2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim 或者vi教程。

3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人。熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽。

4. 本文由本人搜集整理,转载请注明出处

本文一般情况下用(里边的字母一般大小写无所谓,除非特别注明)表示按住ctrl同时按下相关字母,命令前加一个i表示在插入模式下用这个命令

1. 选定文字 / 拷贝粘贴

v为可视模式,可以选定多行。选定多行之后,可以用yy或者dd等等进行拷贝和剪切。

p 是粘贴

y 和d 可以直接拷贝或者剪切选定的内容

yw是拷贝一个单词

如果要复制整行的最简单办法就是V,y,p 就行了

v是可以选定一行任意个字符的,V是行选定的,一次一整行,然后通过向下或向上移动光标而选定多行。

对于v选定的,拷贝后就是这么多,选多少就拷贝多少,而V选定的,粘贴的话会自动换到下一行

命令模式下,也是块选定,不过是列块选定

2. 折叠代码

可以zf进行折叠, 用zo打开折叠,也可以方向键向右打开折叠,zc 关闭折叠(只要在被折叠的块中的任一个语句就行)

3. 缩进代码

是右缩进

按v选定后按=就是自动格式化代码,自动缩进,内部的递归的缩进都做到了

行左移>,该命令用于调整源码缩进格式简便快速。

4. 移动光标

%是从大括号的开始移动到大括号的结束位置

:后边加行号就是跳到这一行

光标返回到以前的位置。相当于光标移动的“撤销”

光标返回到后来的位置。相当于光标移动的“恢复”

5. 多文件编辑 / 缓冲区命令

vim下每一个打开的文件对应一个缓冲区(buffer)。

多文件编辑会有两种情形,一种是在进入 vim 前所用的参数就是多个文件(这种情形称为 argument list)。另一种情形是进入 vim 后另外再开其它的文件(称为 buffer list)。不过都可以统称为buffer。

5.1 打开文件

vi flname1 flname2… flnameN

将多个文件调入缓冲,是 argument list。

:e filename

这是在进入 vim 后,在不离开 vim 的情形下再开其它文件,只要您要编辑的档案是在目前目录,Tab 补全键还是可以使用。是buffer list。注意::e 或者:new 或者:split 后边可以跟目录,这样就可以在目录下慢慢找要打开的文件了

5.2 缓冲区跳转

:n 编辑下一个文件。

:2n 编辑下二个文件。

:N 编辑前一个文件。注意,这种用法只能用于 argument list 的情形。

:rew 回到首文件

:args 查看当前编辑缓冲文件状态

:e# 或 Ctrl-^ 编辑前一个档案,用于两文件互相编辑时相当好用。这种用法不管是 argument list 或buffer list 档案间皆可使用。使用Ctrl-^ 命令更便捷,但如终端类型不正确该功能将无效。

用:ls来显示缓冲区中的文件,编号后边有#的代表是前一个文件,可以通过:e#来进入,有%a的代表是当前文件,什么也没有的可以通过:bn 来进入,这里的n代表文件编号。

:b文件名或编号移至该文件。

在 :ls 中就会出示各文件的编号,这个编号在未离开 vim 前是不会变的。这个指令 elvis 也是可以使用。当然 :e#编号也是可以的,这样的用法则是所有 vi clone 都通用了。

在 buffers 中,减号 - 表示这个 buffer 并未载入,不过,不必担心,载入相当快速的。加号 + 表示这个 buffer 已经修改过了。

:bn buffer next。这里的n代表字母n

:bl buffer last。

以上两个指令 elvis 不适用。

如果您是使用 vim 的 GUI,那就在菜单上就会有 Buffers 这个选项,可以很容易的知道及移动各buffer 间。

5.3 移除缓冲区

:bd(elete) buffer 在未离开 vim 前是不会移除的,可使用这个指令移除。其实移除它干什么呢?vim是您在叫用时才会载入的,因此这些buffers 并不是像 cache 一般要占内存的。

5.4 重新编辑

放弃一修改过的文件,重新编辑。

(1)使用命令:q!强行退出后再vi flname重新进入。

(2)使用命令:e!强行重编辑更便捷。这样也是会打开文件,但会放弃目前编辑文件的改变,否则如果文件已有变动,vim 预设是不让您随便离开的。:e! 后不接什么的话,代表舍弃一切修改,重新载入编辑中文件。

5.5 其他命令

:files 或 :buffers 或 :ls 会列出目前 buffer 中的所有文件。

在 elvis 中可使用 :b 来叫出 buffers。

:f 或 Ctrl-g 显示目前编辑的文件名、是否经过修改及目前光标所在之位置。

:f 文件名改变编辑中的文件名。(file)

:r 文件名在光标所在处插入一个文件的内容。(read)

:35 r 文件名将文件插入至 35 行之后。

相关文档
最新文档