Vim日常操作 [转贴]

motions, scrolling -- 光标定位,滚屏与翻页

motions -- 光标定位
光标定位(motions) -- 精选命令
命令功能
$当前行的末尾
0当前行的开头
gg文件头
G文件尾
10gg
10G
跳到第10行
``这是两个 back quote,在键盘上是ESC下边那个键。
回到光标跳转前的位置
H跳到屏幕上的第一行
M跳到屏幕的中间行
L跳到屏幕上的最后一行
gk屏幕所见的上一行
gj屏幕所见的下一行

 

在Vim的命令模式下,有很多移动光标的命令,带给我们很大的便利。最常用的莫过于0$ ,把光标定位在行头和行尾。

常用的还有G 把光标定位在文件尾,gg 回到文件头。在这两个命令前面加一个数字就可以去到那一行,例如10gg 会带你去到第10行。

`` 的作用是回到光标跳转前的位置。例如,假设光标现在在第10行,按 G 去到文件尾,再按 `` 就可以回到第10行。

如果你发觉有时候kj 不是很好用(按一下就跨越屏幕上的几行),可以试一下用gkgj

 

scrolling -- 滚屏与翻页
滚屏与翻页 (scrolling) -- 精选命令
命令功能
zt
z回车
把光标所在行移到 屏幕顶端
z.把光标所在行移到 屏幕中间
zb把光标所在行移到 屏幕底部
CTRL-E向下滚屏一行(往下阅读文档)
CTRL-Y向上滚屏一行(往上阅读文档)
CTRL-F往前翻一页
CTRL-B往后翻一页

光标定位命令给文档编辑操作带来方便,而滚屏和翻页命令则让我们在阅读文档时感到舒适。

强烈推荐 以下几个按键映射:

:map <Space> <C-F>
:map <S-Space> <C-B>
:map <CR> <C-E>
:map <UP> <C-Y>
:map <DOWN> <C-E>

特别是第一个映射:map <Space> <C-F> ,设置后就可以用空格键翻页了,很是方便。另外几个映射的作用是:用Shift-Space向上翻页,按回车键向下滚屏一行、按上下箭头进行向上向下滚屏。

 

 

yank, put, delete, registers -- 复制、粘贴、剪切

复制、粘贴、剪切 (yanking, registers) -- 精选命令
命令功能
dd删除当前行
yy复制当前行
d$删除从光标位置到行尾的内容
yt<复制从光标位置到下一个“<”前的内容
(另外,ct< 修改从光标至“<”前的内容,在编辑HTML、XML文件时很方便)
"x复制把复制内容放进寄存器x
(x可以是26个英文字母之一,区分大小写)
"xp粘贴寄存器x的内容
"+特殊寄存器,读写系统剪贴板
:reg查看各个寄存器的内容

复制、粘贴、剪切,是编辑文档时常用的招数。在Vim里所有删除的内容都会进入Vim的寄存器(registers),所以可以把删除操作看成是剪切操作。

x , dd , yy 是很常用的命令,在这里就不多说了。复制或剪切多行内容可以在 dd 或 yy 前面加数字,例如可以用5yy 复制5行。

不过我更喜欢借助可视模式 (Visual mode)来进行复制剪切操作。先按vV 进入可视模式,然后移动光标选中要复制或剪切的内容,最后按d 剪切或者按y 复制。

在复制前可以先指定一个寄存器,方法是在双引号后跟一个字母,例如"a 指定了寄存器a,"B 指定了寄存器B。所以,"ayy 把当前行放进了寄存器a,以后就可以用"ap 来粘贴寄存器a里的内容了。如果不确定寄存器里放了什么内容,可以使用:reg 来查看。

Vim提供了一个很有用的特殊寄存器"+ ,它的内容就是系统剪贴板的内容。比如,在 firefox 里用 Ctrl-C 复制的内容就会出现在 "+ 里,可以在Vim里用"+p 粘贴出来。也可以在Vim里把复制或剪切的内容放进 "+ 里,然后在其它GUI程序里用 Ctrl-V 进行粘贴。

search, substitute - 查找、替换 (未完成

查找、替换(search, substitute) -- 精选命令
命令功能
*查找光标所在的单词
(这里的单词是指以空白字符或标点符号分隔开的字符串)
:set ignorecase不区分大小写
:set ignorecase smartcase自动区分大小写。输入全是小写时不区分大小写,输入中只要有大写字母就区分大小写。
:set hlsearch打开 高亮显示匹配字串
:nohlsearch 暂时关闭高亮,下次查找时自动高亮
:set nohlsearch关闭 高亮显示匹配字串

人们常喜欢举出用Vim查找、替换的例子来说明Vim的强大,可见该功能的有多重要。查找、替换的核心内容其实就是正则表达式 (regular expression),它的功能非常强大,但是不容易掌握。幸好我们不用把正则表达式完全学会才能使用它,只要学点简单的皮毛,就受用无穷了。

在Vim自带的帮助文档(:help 03.9)里说道:

The Vim editor uses regular expressions to specify what to search for. Regular expressions are an extremely powerful and compact way to specify a search pattern. Unfortunately, this power comes at a price, because regular expressions are a bit tricky to specify.

目前我只收集了少量技巧,以后在使用Vim的过程中还要不断学习,不断增加。

建议初学者先学习:help 03.8:help 03.9 ,再学习:help usr_27

下面说一些实例。

/http://\f* 可以匹配一个普通的网址(不含 ? & 等符号的网址),所以:s%http://\f*%<a href="&">&</a> 可以把http://kikistar.com 替换成<a href="http://kikistar.com">http://kikistar.com</a>

如果网址中含有 ? & 等符号,例如http://www.newsmth.net/bbscon.php?bid=731&id=16603 ,把正则表达式稍微修改一下就行了: :s%http://\(?\|&\|\f\)*%<a href="&">&</a>

buffers -- 多文件操作

多文件操作(buffers) -- 精选命令
命令功能
:buffers
:ls
显示buffer列表
:bn转到下一个buffer
:bp转到上一个buffer
:b 3转到编号为 3 的buffer
:b index.html转到名为index.html的buffer
:sav另存为……
:set hidden切换buffer时不给出保存当前buffer的提示
CTRL-G查看当前buffer状态信息,如文件名、总行数、修改后未保存等。

在Vim里可以同时编辑多个文件,每个文件占用一个 buffer。

:buffers:ls 的作用是一样的,可以得到一个像下面那样的列表:

:ls
  1      "doc2xhtml.xsl"                line 1
  2 #    "document.css"                 line 1
  3 %a   "vimtips.xml"                  line 32

在各个buffer之间跳转有很多方法,可以用 :b 1 转到编号是 1 的buffer,也可以用 :b document.css 转到名为document.css的buffer。输入这个命令时,buffer名字可以用TAB键自动保全,很方便。此外还有两个我比较爱用的命令:

:bn		转到下一个buffer
:bp		转到上一个buffer

在buffer间跳转时,如果当前buffer内容编辑后未保存,Vim会要求你先保存。如果不保存,必须在命令后加 ! 强行跳转。

有一个命令可以使得在buffer间的跳转更方便,就是

 :set hidden 

这样设置后,在buffer之间跳转就不用先保存,也不用加 ! 了。但是,用了这个设置后使用:q! 时要加倍小心。我的建议是,用了:set hidden就不要用:q!,习惯了用:q!就不要用:set hidden了,数据永远比一时方便更重要。

 

 

参考资料:

补充:http://www.ibm.com/developerworks/cn/aix/library/au-speakingunix_vim/ 【操作更详细】

         http://hi.baidu.com/smilewwh/blog/item/2fd27baf445106fffaed5057.html[参数说明]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值