加载中…
正文 字体大小:

vi命令行历史及命令行窗口

(2008-10-08 11:59:10)
标签:

杂谈

我们曾经在第三章简单提到过历史记录功能。其基本用法就是你可以用 <Up> 键调用较
早的命令行。而 <Down> 键则让你回到较晚的命令行。

历史记录功能实际上共有四种。我们在这里要提到的是用于 ":" 冒号命令以及用于 "/"
和 "?" 搜索命令的历史记录功能. "/" 和 "?" 命令共享同一历史记录。因为两者同为
搜索命令。另外两种历史记录功能用于函数 input() 的表达式和输入行。
|cmdline-history|

假定你完成了一个 ":set" 命令,又键入了十个冒号命令,然后要再次执行那个 ":set"
命令。你本可以按一个 ":" ,然后按十次 <Up>. 更快捷的方法是:

        :se<Up>

你现在就回到以前执行过的,以 "se" 开头的命令。没准儿那就是你想找的 ":set" 命
令。至少你不至于按很多 <Up> 键 (除非你执行的都是 ":set" 命令)。

<Up> 键用你在命令行上已经键入的文本去跟历史记录里的命令作比较。只有匹配的命
令才被显示出来。
   如果你没找到你要找的命令,用 <Down> 回到你键入的文本作修改。或者用 CTRL-U
从头来过。

显示历史记录里所有的命令:

        :history

那是 ":" 冒号命令的历史记录。搜索历史记录用这个命令来显示:

        :history /

如果你不愿用光标方向键,CTRL-P 作用就跟 <Up> 一样。而 CTRL-N 跟 <Down> 一样。
CTRL-P 意指前一个,CTRL-N 意指下一个。



--------------------------------------------------------------------------------

*20.5*  命令行窗口

在命令行上键入文本跟插入模式下键入文本有所不同。许多修改文本的命令都不能用。对
大多数命令而言,那问题不大,但有时你必须键入一个复杂的命令。那样的场合用命令行
窗口就非常有用了.

用这个命令来打开命令行窗口:

        q:

Vim 现在就在屏幕底部打开了一个 (很小的) 窗口。它存放着命令行历史记录,以及一行
空行在末尾:

        +-------------------------------------+
        |other window                         |
        |~                                    |
        |file.txt=============================|
        |:e c                                 |
        |:e config.h.in                       |
        |:set path=.,/usr/include,,           |
        |:set iskeyword=@,48-57,_,192-255     |
        |:set is                              |
        |:q                                   |
        |:                                    |
        |command-line=========================|
                                            |
        +-------------------------------------+

现在你处于普通模式下。你可以用 "hjkl" 键来移动光标。例如,用 "5k" 上移至
":e config.h.in" 那一行。键入 "$h" 移到 "in" 的 "i" 字符上,并键入 "cwout"。
现在你把这一行改成了这样:

        :e config.h.out

现在按 <Enter> 执行这个命令。命令行窗口就关上了。
按 <Enter> 键执行光标下的那个命令。这跟 Vim 处于插入模式抑或普通模式无关。
   在命令行窗口内所作的修改不会被保存. 它们不会导致历史记录被修改. 唯一例外就
是你执行的命令将被加到历史记录的末尾,跟所有执行过的命令一样.

在你要总览历史记录时,命令行窗口十分有用,查找类似命令,修改一点点,然后执行它。
一个搜索命令可用来寻找某些东西。
   在前面那个例子中,搜索命令 "?config" 本来可以用来发现先前那个含有 "config"
的命令。这有点儿奇怪,因为你是在命令行窗口内用命令行作搜索。在键入搜索命令时,
你打不开另一个命令行窗口,命令行窗口是唯一的。

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有