<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>第 17 章 指随意动,移动如飞 (二)</title><link rel="stylesheet" href="http://easwy.com/blog/uploads/css/style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="vim使用进阶"><link rel="up" href="index.html" title="vim使用进阶"><link rel="prev" href="basic_movement.html" title="第 16 章 指随意动,移动如飞 (一)"><link rel="next" href="vimgdb.html" title="第 18 章 在vim中使用gdb调试"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">第 17 章 指随意动,移动如飞 (二)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="basic_movement.html">上一页</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="vimgdb.html">下一页</a></td></tr></table><hr></div><div class="chapter" lang="zh-CN"><div class="titlepage"><div><div><h2 class="title"><a name="advanced_movement"></a>第 17 章 指随意动,移动如飞 (二)</h2></div></div></div><p>
<span class="bold"><strong><< </strong></span><a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-catalog/">返回vim使用进阶: 目录</a>
</p><p>
本节所用命令的帮助入口:
</p><pre class="programlisting">
:help usr_03.txt
:help motion.txt
:help usr_29.txt
:help scroll.txt
:help folding </pre><p>
上一篇文章中我们介绍了一些<a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-basic-move-method/">常用的移动命令</a>,本篇将继续介绍更多的命令,使你在文档中自由穿梭。
</p><p>
<span class="bold"><strong>[ 利用跳转表 ]</strong></span>
</p><p>
在vim中,很多命令可以引起跳转,vim会记住把跳转前光标的位置记录到跳转表中,并提供了一些命令来根据跳转表进行跳转。要知道哪些命令引起跳转,参见"<span class="command"><strong>:help jump-motions</strong></span>"。
</p><p>
使用命令"<span class="command"><strong>''</strong></span>"(两个单引号)和"<span class="command"><strong>``</strong></span>"(两个反引号,在键盘上和"~"共用一个键)可以返回到最后跳转的位置。例如,当前光标位于文件中第1234行,然后我使用"<span class="command"><strong>4321G</strong></span>"命令跳转到第4321行;这时如果我按"<span class="command"><strong>''</strong></span>"或"<span class="command"><strong>``</strong></span>",就会跳回到1234行。
</p><p>
因为这两个命令也属于跳转命令,所以第4321行也被记入跳转表,如果你再次使用这两个命令,就会发现自己又跳回第4321行了。
</p><p>
这两个命令有一点不同,"<span class="command"><strong>``</strong></span>"在跳转时会精确到列,而"<span class="command"><strong>''</strong></span>"不会回到跳转时光标所在的那一列,而是把光标放在第一个非空白字符上。
</p><p>
如果想回到更老的跳转位置,使用命令"<span class="command"><strong>CTRL-O</strong></span>";与它相对应的,是"<span class="command"><strong>CTRL-I</strong></span>",它跳转到更新的跳转位置(<span class="command"><strong>:help CTRL-O</strong></span>和<span class="command"><strong>:help CTRL-I</strong></span>)。这两个命令前面可以加数字来表示倍数。
</p><p>
使用命令"<span class="command"><strong>:jumps</strong></span>"可以查看跳转表(<span class="command"><strong>:help :jumps</strong></span>)。
</p><p>
<span class="bold"><strong>[ 使用标记 ]</strong></span>
</p><p>
标记(mark)是vim提供的精确定位技术,其功能相当于GPS技术,只要你知道标记的名字,就可以使用命令直接跳转到该标记所在的位置。
</p><p>
vim中的标记都有一个名字,这个名字用单一的字符表示。大写和小写字母(A-Za-z)都可以做为标记的名字,这些标志的位置可以由用户来设置;而数字标记0-9,以及一些标点符号标记,用户不能进行设置,由vim来自动设置。
</p><p>
我们主要讲述字母标记的使用,对于数字标记和标点符号标记,请自行参阅帮助手册(<span class="command"><strong>:help mark-motions</strong></span>)。
</p><p>
小写字母标记局限于缓冲区,也就是说,每个缓冲区都可以定义自己的小写字母标记,各缓冲区间的小写字母标记彼此不干扰。如果我在文件A中设置一个标记t,然后在文件B中也可以设置一个标记t。那么在文件A中,可以用"<span class="command"><strong>'t</strong></span>"命令跳到文件A的标记t位置 ;在文件B中,可以用"<span class="command"><strong>'t</strong></span>"命令跳到文件B的标记t位置。如果文件在缓冲区列表中被删除,小写字母标记就丢失了。
</p><p>
大写字母标记是全局的,它在文件间都有效。如果在文件A中定义一个标记T,那么当使用命令"<span class="command"><strong>'T</strong></span>"时,就会跳到文件A的标记T位置,不管你当前处于哪个文件中。
</p><p>
设定一个标记很简单,使用命令"<span class="command"><strong>m{a-zA-Z}</strong></span>"就可以了。例如,命令"<span class="command"><strong>mt</strong></span>"在把当前光标位置设定为标记t;命令"<span class="command"><strong>mT</strong></span>"把当前光标位置设定为标记T。(<span class="command"><strong>:help m</strong></span>)
</p><p>
要跳转到指定的标记,使用命令"<span class="command"><strong>'{a-zA-Z}</strong></span>"或"<span class="command"><strong>{a-zA-Z}</strong></span>"。例如,命令"<span class="command"><strong>'t</strong></span>"会跳转到标记t;命令"<span class="command"><strong>'T</strong></span>"会跳转到标记T。( <span class="command"><strong>:help '</strong></span>)
</p><p>
单引号和反引号的区别和上面所讲的一样,"<span class="command"><strong>`</strong></span>"在跳转时会精确到列,而"<span class="command"><strong>'</strong></span>"不会回到跳转时光标所在的那一列,而是把光标放在第一个非空白字符上。
</p><p>
标记也可以被删除,使用命令"<span class="command"><strong>:delmarks</strong></span>"可以删除指定标记。命令"<span class="command"><strong>:marks</strong></span>"列出所有的标记。
</p><p>
关于标记,有两个非常有用的插件,一个是ShowMarks,另外一个叫marks browser。
</p><p>
<a class="link" href="http://www.vim.org/scripts/script.php?script_id=152">ShowMarks</a>是我最常用的插件之一,它使用vim提供的sign功能以及高亮功能显示出标记的位置。这样,你在设定了一个标记后,它就会在你的vim窗口中显示出标记的名字,并高亮这一行。
</p><p>
在你的$HOME/.vim目录把它解压,然后进行简单设置。 在我的vimrc中,对ShowMarks进行了如下配置:
</p><pre class="programlisting">
""""""""""""""""""""""""""""""
" showmarks setting
""""""""""""""""""""""""""""""
" Enable ShowMarks
let showmarks_enable = 1
" Show which marks
let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
" Ignore help, quickfix, non-modifiable buffers
let showmarks_ignore_type = "hqm"
" Hilight lower & upper marks
let showmarks_hlline_lower = 1
let showmarks_hlline_upper = 1 </pre><p>
首先,使能showmarks插件,然后定义showmarks只显示全部的大写标记和小写,并高亮这两种标记;对文件类型为help、quickfix和不可修改的缓冲区,则不显示标记的位置。
没有合适的资源?快使用搜索试试~ 我知道了~
Easwy大牛的高级VIM技巧网页版
共20个文件
html:20个
需积分: 34 15 下载量 28 浏览量
2010-01-18
21:16:05
上传
评论 1
收藏 91KB ZIP 举报
温馨提示
Easwy大牛的高级VIM技巧网页版,学习VIM的好教材,感谢easwy!
资源推荐
资源详情
资源评论
收起资源包目录
advanced_vim_skills_html.zip (20个子文件)
html
basic_movement.html 17KB
vimgdb.html 20KB
filetype_on.html 12KB
use_taglist_plugin.html 12KB
session_viminfo.html 9KB
vimrc_info.html 12KB
use_lookupfile_plugin.html 16KB
use_tag_file.html 12KB
catalog.html 14KB
file_buf_explorer.html 13KB
cscope.html 14KB
prologue.html 10KB
solve_compile_problem.html 6KB
syntax_on.html 14KB
index.html 4KB
use_sessionx.html 10KB
advanced_movement.html 21KB
quickfix.html 14KB
omin-complete.html 15KB
auto_complete.html 10KB
共 20 条
- 1
资源评论
hjihxb
- 粉丝: 3
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功