VIM和shell的切换

本章深入讨论如何让其它程序跟 Vim 混用。或者从 Vim 内部执行别的程序,或者暂时先
离开 Vim 而于执行了那个程序后再回来。而且,本章将进一步介绍如何记住 Vim 的当前0
状态,并在以后把它还原回来。

----

挂起和恢复在图形化里面大概就没什么用了。(作用等同鼠标的最小化)

简单的说一下:用CTRL-Z 挂起。这个动作把 Vim 停下来,并让你回
到那个你启动 Vim 的命令 shell 里。然后再用 "fg" 命令回到 Vim。

当你按 CTRL-Z 行不通时,你还可以用命令 ":suspend"。别忘了把 Vim 引导回前
台,否则你会失去你所有的修改!

----
执行 shell 命令

从 Vim 内部执行单个 shell 命令,用 ":!{command}"。

Vim 将执行该程序。当它结束时,你会得到提示,让你击打 <Enter>。这提示允许你 在回去编辑你的文本之前看一看该命令的输出。

字符 "!" 也用在其它有个程序被调用运行的场合。让我们看一看共有哪些:

        :!{program}             执行 {program}
        :r !{program}           执行 {program} 并读取其输出
        :w !{program}           执行 {program} 传送文本至其输入
        :[range]!{program}      经由 {program} 过滤文本

注意 "!{program}" 前面那个作用区产生的区别可大了。不附带作用区,这个程序就跟
通常一样被执行,而加了这个作用区,作用区内的文本行就经由该程序过滤而出。

用这种方法执行一系列命令也是可以的。但 shell 在此却更胜一筹。你可以用这种方法
启动一个新 shell:

        :shell 
这有点类似于用 CTRL-Z 来挂起 Vim。不同之处在于这种方法启动的是一个新 shell。
(经本人试验,在输入:shell以后是在vim内开启终端,相当的方便,不过也有问题是此时的vim和shell不能独立分开,返回vim的话只有关闭shell)

################################################################################

会话(此处的东西,看上去还是比较有用的,不过在图形话的今天,大概就没多大必要了.猜的~呵呵)


这是下面要将的方法的作用,各位先看下,如果觉得对你有用,就继续向下看:

假定你编着编着,编到那一天要结束了。你想放下手上的工作,而于第二天再从你停下来
的那地方继续编下去。你可以做到这一点,只要把你的编辑会话保存起来,第二天再把它
还原回来。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vim 会话存放着所有跟你的编辑相关的信息。这包括诸如文件列表、窗口布局、全局
变量、选项、以及其它信息。(究竟什么信息被记住,则由选项 'sessionoptions' 控
制,稍后叙述。)
   下面这个命令创建一个会话文件:

        :mksession vimbook.vim 
如果你以后要还原这个会话,你可以用这个命令:

        :source vimbook.vim 
如果你要启动 Vim 并还原某个特别的会话,你可以用下面这个命令:

        vim -S vimbook.vim 
这命令告诉 Vim 在启动时读取一个特定的会话文件。参数 'S' 指会话 (实际上,你可以
用 -S 运行任何 Vim 脚本,因而,你也不妨指其为运行脚本,"source")。

那个曾经打开的窗口就还原了,跟以前一样的位置和大小。映射和选项值也像以前一样。
   究竟还原了什么取决于 'sessionoptions' 选项。默认值为 "blank,buffers,curdir,
folds,help,options,winsize"。

        blank           保留空窗口
        buffers         所有缓冲区,而非仅仅一个窗口内的
        curdir          当前目录
        folds           折叠,包括人工创建的
        help            帮助窗口
        options         所有选项和映射
        winsize         窗口大小

你爱怎么改就怎么改。例如,除了上述项目以外,你还要还原 Vim 窗口大小:

        :set sessionoptions+=resize

你可能感兴趣的:(VIM和shell的切换)