Vim 命令使用介绍

关注Perl...
关注软件测试
随笔 - 137, 文章 - 0, 评论 - 49, 引用 - 0
Vim命令合集
命令历史
以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。

启动vim
在命令行窗口中输入以下命令即可

vim 直接启动vim

vim filename 打开vim并创建名为filename的文件

文件命令
打开单个文件

vim file

同时打开多个文件

vim file1 file2 file3 ...

在vim窗口中打开一个新文件

:open file

在新窗口中打开文件

:split file

切换到下一个文件

:bn

切换到上一个文件

:bp

查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。

:args

打开远程文件,比如ftp或者share folder

:e ftp://192.168.10.76/abc.txt

:e \qadrive\test\1.txt

vim的模式
正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空
插入模式(按i键进入) 左下角显示--INSERT--
可视模式(不知道如何进入) 左下角显示--VISUAL--

导航命令
% 括号匹配

插入命令
i 在当前位置生前插入

I 在当前行首插入

a 在当前位置后插入

A 在当前行尾插入

o 在当前行之后插入一行

O 在当前行之前插入一行

查找命令
/text  查找text,按n健查找下一个,按N健查找前一个。

?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。

vim中有一些特殊字符在查找时需要转义  .*[]^%/?~$

:set ignorecase  忽略大小写的查找

:set noignorecase  不忽略大小写的查找

查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。

:set hlsearch  高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。

:set nohlsearch  关闭高亮搜索显示

:nohlsearch  关闭当前的高亮显示,如果再次搜索或者按下n或N键,则会再次高亮。

:set incsearch  逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。

:set wrapscan  重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。

替换命令
ra 将当前字符替换为a,当期字符即光标所在字符。

s/old/new/ 用old替换new,替换当前行的第一个匹配

s/old/new/g 用old替换new,替换当前行的所有匹配

%s/old/new/ 用old替换new,替换所有行的第一个匹配

%s/old/new/g 用old替换new,替换整个文件的所有匹配

:10,20 s/^/ /g 在第10行知第20行每行前面加四个空格,用于缩进。

ddp 交换光标所在行和其下紧邻的一行。

移动命令
h 左移一个字符
l 右移一个字符,这个命令很少用,一般用w代替。
k 上移一个字符
j 下移一个字符
以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!,这里的Esc是必须的,否则命令不生效。

w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。

b 向后移动一个单词 2b 向后移动2个单词

e,同w,只不过是光标停在单词尾部

ge,同b,光标停在单词尾部。

^ 移动到本行第一个非空白字符上。

0(数字0)移动到本行第一个字符上,

移动到本行第一个字符。同0健。

$ 移动到行尾 3$ 移动到下面3行的行尾

gg 移动到文件头。 = [[

G(shift + g) 移动到文件尾。 = ]]

f(find)命令也可以用于移动,fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。

F 同f,反向查找。

跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。

Ctrl + e 向下滚动一行

Ctrl + y 向上滚动一行

Ctrl + d 向下滚动半屏

Ctrl + u 向上滚动半屏

Ctrl + f 向下滚动一屏

Ctrl + b 向上滚动一屏

撤销和重做
u 撤销(Undo)
U 撤销对整行的操作
Ctrl + r 重做(Redo),即撤销的撤销。

删除命令
x 删除当前字符

3x 删除当前光标开始向后三个字符

X 删除当前字符的前一个字符。X=dh

dl 删除当前字符, dl=x

dh 删除前一个字符

dd 删除当前行

dj 删除上一行

dk 删除下一行

10d 删除当前行开始的10行。

D 删除当前字符至行尾。D=d$

d$ 删除当前字符之后的所有字符(本行)

kdgg 删除当前行之前所有行(不包括当前行)

jdG(jd shift + g) 删除当前行之后所有行(不包括当前行)

:1,10d 删除1-10行

:11,$d 删除11行及以后所有的行

:1,$d 删除所有行

J(shift + j)  删除两行之间的空行,实际上是合并两行。

拷贝和粘贴
yy 拷贝当前行

nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。

p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。

shift+p 在当前行前粘贴

:1,10 co 20 将1-10行插入到第20行之后。

:1,$ co $ 将整个文件复制一份并添加到文件尾部。

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制

ddp交换当前行和其下一行

xp交换当前字符和其后一个字符

剪切命令
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切

ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴

:1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。

:1, 10 m 20 将第1-10行移动到第20行之后。

退出命令
:wq 保存并退出

ZZ 保存并退出

:q! 强制退出并忽略所有更改

:e! 放弃所有修改,并打开原来文件。

窗口命令
:split或new 打开一个新窗口,光标停在顶层的窗口上

:split file或:new file 用新窗口打开文件

split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。

Ctrl+ww 移动到下一个窗口

Ctrl+wj 移动到下方的窗口

Ctrl+wk 移动到上方的窗口

关闭窗口

:close 最后一个窗口不能使用此命令,可以防止意外退出vim。

:q 如果是最后一个被关闭的窗口,那么将退出vim。

ZZ 保存并退出。

关闭所有窗口,只保留当前窗口

:only

录制宏

按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。

执行shell命令
:!command

:!ls 列出当前目录下文件

:!perl -c script.pl 检查perl脚本语法,可以不用退出vim,非常方便。

:!perl script.pl 执行perl脚本,可以不用退出vim,非常方便。

:suspend或Ctrl - Z 挂起vim,回到shell,按fg可以返回vim。

注释命令
perl程序中#开始的行为注释,所以要注释某些行,只需在行首加入#

3,5 s/^/#/g 注释第3-5行

3,5 s/^#//g 解除3-5行的注释

1,$ s/^/#/g 注释整个文档。

:%s/^/#/g 注释整个文档,此法更快。

帮助命令
:help or F1 显示整个帮助
:help xxx 显示xxx的帮助,比如 :help i, :help CTRL-[(即Ctrl+[的帮助)。
:help 'number' Vim选项的帮助用单引号括起
:help 特殊键的帮助用<>扩起
:help -t Vim启动参数的帮助用-
:help i_ 插入模式下Esc的帮助,某个模式下的帮助用模式_主题的模式
帮助文件中位于||之间的内容是超链接,可以用Ctrl+]进入链接,Ctrl+o(Ctrl + t)返回

其他非编辑命令
. 重复前一次命令

:set ruler?  查看是否设置了ruler,在.vimrc中,使用set命令设制的选项都可以通过这个命令查看

:scriptnames  查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等。

:set list 显示非打印字符,如tab,空格,行尾等。如果tab无法显示,请确定用set lcs=tab:>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了expendtab,那么tab将被扩展为空格。

Vim教程
在Unix系统上
$ vimtutor
在Windows系统上
:help tutor

:syntax 列出已经定义的语法项
:syntax clear 清除已定义的语法规则
:syntax case match 大小写敏感,int和Int将视为不同的语法元素
:syntax case ignore 大小写无关,int和Int将视为相同的语法元素,并使用同样的配色方案

分类: Vim
好文要顶 关注我 收藏该文
perlman
关注 - 0
粉丝 - 91
+加关注
43 0
« 上一篇:Vim剪切板
» 下一篇:varchar与nvarchar的区别
posted on 2011-07-12 16:54 perlman 阅读(514462) 评论(15) 编辑 收藏

评论

1楼 回复引用

博文总结不错,但是有几处还需改正一下

可视模式(不知道如何进入) 左下角显示--VISUAL--

  • 正常模式下 按v进入

自动tab替换为空格是
set expandtab
而不是 expendtab
支持(2)反对(0)
2013-07-18 17:11 | 刘联东

2楼 回复引用

很不错的教程,还进行了分类,赞~~
支持(0)反对(0)
2014-10-29 19:59 | 星草感觉

3楼 回复引用

收藏了,挺不错。
支持(0)反对(0)
2014-12-21 20:49 | 风与叶子

4楼 回复引用

楼主,你自己都不验证一下到底对不对啊!
支持(0)反对(0)
2015-05-22 11:09 | 美洲象

5楼 回复引用

@ 美洲象
如果有错误,请直说无妨。谢谢。
支持(0)反对(0)
2015-05-28 17:06 | zdd

6楼 回复引用

不错!
支持(0)反对(0)
2015-09-21 00:50 | 求真求道

7楼 回复引用

很好的文章,谢谢博主
支持(0)反对(0)
2016-01-05 16:08 | 求_知

8楼 回复引用

不错不错,大部分都是常用的命令
支持(0)反对(0)
2016-03-07 17:58 | zhiye_wang

9楼 回复引用

vim基础视频教程

智普教育Python培训 06 vim替换操作.swf

智普教育Python培训 05 vim查找操作.swf

智普教育Python培训 04 vim多文件间复制与粘贴操作.swf

智普教育Python培训 03 vim单文件里复制与粘贴操作.flv

智普教育Python培训 02 vim编辑器基本使用.flv

智普教育Python培训 01 vim重新安装全版的Vim编辑器.flv

http://codeorg.cn/article/share/17.html
支持(0)反对(1)
2016-05-26 17:52 | 门楠

10楼 回复引用

有两个地方需要改正下:
w是向后
b是向前
支持(0)反对(0)
2016-10-08 09:58 | code_1988

11楼 回复引用

给你大大的赞(≧▽≦)/
支持(0)反对(0)
2017-03-09 13:36 | DisplayNameOnly

12楼 回复引用

分门别类整理得很好,辛苦楼主了~
支持(0)反对(0)
2017-04-19 12:38 | CrazySpider

13楼 回复引用

%s/old/new/ 用old替换new,替换所有行的第一个匹配
%s/old/new/g 用old替换new,替换整个文件的所有匹配
这两个替换命令的前面少了冒号,正确的命令应该是:
:%s/old/new/ 用old替换new,替换所有行的第一个匹配
:%s/old/new/g 用old替换new,替换整个文件的所有匹配
支持(0)反对(0)
2017-04-19 12:46 | CrazySpider

14楼 回复引用

dk 删除本行及上一行
dj 删除本行及下一行
支持(0)反对(0)
2017-07-10 09:48 | 飘雪王

15楼 回复引用

挺详细的,多谢。
支持(0)反对(0)
2017-09-28 18:00 | 江南孤狼
刷新评论刷新页面返回顶部
发表评论
昵称:
YeungKey

评论内容:引用 粗体 链接 缩进 代码 图片

退出 订阅评论

[Ctrl+Enter快捷键提交]

【推荐】超50万VC++源码: 大型组态工控、电力仿真CAD与GIS源码库!
【缅怀】传奇谢幕,回顾霍金76载传奇人生
【推荐】业界最快速.NET数据可视化图表组件
【腾讯云】买域名送解析+SSL证书+建站
【活动】2050 科技公益大会 - 年青人因科技而团聚
腾讯云0326
最新IT新闻:
· 华为三摄P20 Pro巴黎街拍:夜景无敌 谁敢比?
· IBM:量子计算将在5年内成为主流
· 60%美国人使用流媒体服务 Neflix独占半壁江山
· 杨元庆:联想全面拥抱智能化
· 为什么孙宏斌会被贾跃亭忽悠?
» 更多新闻...
阿里云0308
最新知识库文章:
· 写给自学者的入门指南
· 和程序员谈恋爱
· 学会学习
· 优秀技术人的管理陷阱
· 作为一个程序员,数学对你到底有多重要
» 更多知识库文章...
导航
博客园
首页
新随笔
联系
订阅 订阅
管理
< 2011年7月 >
日 一 二 三 四 五 六
26 27 28 29 30 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6
公告
昵称:perlman
园龄:6年8个月
粉丝:91
关注:0
+加关注
搜索

常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
Database(2)
Eclipse
Html(2)
Java(2)
Javascript(1)
Misc(2)
Perl(61)
Putty(3)
QTP
Selenium
Shell(29)
Testing
UNIX/Linux(11)
VB Script
Vim(21)
Xml(1)
随笔档案
2012年11月 (1)
2012年9月 (1)
2012年6月 (2)
2012年5月 (2)
2012年4月 (14)
2012年3月 (4)
2012年2月 (17)
2012年1月 (17)
2011年12月 (13)
2011年11月 (11)
2011年10月 (6)
2011年9月 (17)
2011年8月 (14)
2011年7月 (18)
Python
最新评论

  1. Re:perl中的引用
    少了一些输出,没看明白
    --雷韦雷
  2. Re:Vim命令合集
    挺详细的,多谢。
    --江南孤狼
  3. Re:Vim剪切板
    这个很有用!
    --自由布鲁斯
  4. Re:Vim命令合集
    dk 删除本行及上一行
    dj 删除本行及下一行
    --飘雪王
  5. Re:Shell让切换目录更方便
    pushd 是否需要安装?谢谢。
    --itbj00
    阅读排行榜
  6. Vim命令合集(514459)
  7. Shell命令合集(34691)
  8. 解决vim没有颜色的办法(30507)
  9. 查看当前使用的shell(23843)
  10. Shell调试篇(23315)
    评论排行榜
  11. Vim命令合集(15)
  12. vim配置(4)
  13. 解决vim没有颜色的办法(4)
  14. perl正则表达式杂项(3)
  15. perl智能匹配操作符~~(3)
    推荐排行榜
  16. Vim命令合集(43)
  17. perl中的引用(4)
  18. Source命令(4)
  19. Shell编程-awk(4)
  20. perl特殊符号(3)
    Powered by:
    博客园
    Copyright © perlman
posted @ 2018-03-30 15:23  YeungKey  阅读(144)  评论(0)    收藏  举报