分类: LINUX
2016-12-29 09:28:32
原文地址:VIM和shell的切换 作者:mailer3721
本章深入讨论如何让其它程序跟 Vim 混用。或者从 Vim 内部执行别的程序,或者暂时先
离开 Vim 而于执行了那个程序后再回来。而且,本章将进一步介绍如何记住 Vim 的当前0
状态,并在以后把它还原回来。
----
挂起和恢复在图形化里面大概就没什么用了。(作用等同鼠标的最小化)
简单的说一下:用CTRL-Z 挂起。这个动作把 Vim 停下来,并让你回
到那个你启动 Vim 的命令 shell 里。然后再用 "fg" 命令回到 Vim。
当你按 CTRL-Z 行不通时,你还可以用命令 ":suspend"。别忘了把 Vim 引导回前
台,否则你会失去你所有的修改!
----
执行 shell 命令
从 Vim 内部执行单个 shell 命令,用 ":!{command}"。
Vim 将执行该程序。当它结束时,你会得到提示,让你击打
字符 "!" 也用在其它有个程序被调用运行的场合。让我们看一看共有哪些:
:!{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