vim里能开一个窗口执行vim shell 命令命令么

8299人阅读
shell(1)
vi中执行shell命令
&&& 在vi中也可以执行shell的命令。在line mode下执行指令!command, command 是 shell 命令。例如指令 !date 会把目前的时间和日期显示到屏幕上。
要是你想把 shell 命令的结果放到文件中,可以用 r !command。比如 r !date 会把现在的时间插入到游标所在行的下一行。可以指定行数,例如 20r !date 会把现在的时间放到第二十一行。
如果你想要执行一连串的的 shell命令但又不想离开vi,你可以在line mode下指令sh。这个指令会建立一个 shell,如果要离开,按【 ctrl-D 】,或者执行exit命令。
你也可以选择文档中的文字作为 shell 命令的输入。输出的结果会替换掉你输入的文字。例如 2,5!sort 会把第二列到第五列的文字依序排列,而原来的文字就会被覆盖。
#vi dosh.txt
&1&&&&& Love Ain’t Wait For You
&2&&&&& S Club 7
&3   Your heart beat's taking over
&4   And there's nowhere you can go
&5   And the love that you discover
&6   Is finally taking hold
&7   When it feels like the beginning
&8   And the story will unfold
&9   There's a time to take your chances
10   Don't be scared of the unknown
11   Cause you can't fight it
12   Don't deny it
13   Love is stronger than each other
14   Show me baby
15   What you're gonna do, do
16   Love ain't gonna wait for you
18   Love ain't gonna wait for you
&1&&&&& Love Ain’t Wait For You
&2&&&&& S Club 7
&3   And the love that you discover
&4   And there's nowhere you can go
&5   Your heart beat's taking over
&6   Is finally taking hold
&7   When it feels like the beginning
&8   And the story will unfold
&9   There's a time to take your chances
10   Don't be scared of the unknown
11   Cause you can't fight it
12   Don't deny it
13   Love is stronger than each other
14   Show me baby
15   What you're gonna do, do
16   Love ain't gonna wait for you
17   Don't run, don't hide
18   Love ain't gonna wait for you
1&&&&& Love Ain’t Wait For You
2&&&&& S Club 7
3 日 星期四 16时29分48秒 CST
4   And the love that you discover
5   And there's nowhere you can go
注:文件内容前的数组为行号(:set nu)。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:646060次
积分:8809
积分:8809
排名:第1888名
原创:216篇
转载:344篇
评论:41条
(6)(6)(8)(7)(2)(7)(3)(1)(2)(8)(3)(10)(3)(2)(1)(29)(22)(4)(8)(16)(7)(4)(2)(1)(18)(45)(1)(18)(13)(14)(15)(12)(9)(10)(9)(15)(16)(4)(12)(14)(28)(18)(14)(9)(7)(5)(7)(7)(37)(3)(11)(1)(4)(18)(8)博客访问: 1019521
博文数量: 215
博客积分: 10571
博客等级: 上将
技术积分: 2620
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
本章深入讨论如何让其它程序跟 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:
这有点类似于用 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
阅读(8023) | 评论(1) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。嵌入式linux(28)
在Vim编辑器中执行Shell命令
《Linux命令、编辑器与Shell编程》第11章Vi和Vim文本编辑器,本章将简单介绍如何使用Vi和Vim编辑器编辑文本。本节为大家介绍在Vim编辑器中执行Shell命令。
11.7.5& 在Vim编辑器中执行Shell命令
有时需要在Vim编辑器中执行Shell命令,例如需要验证一个Shell命令是否正确,以便写入脚本中;需要在文件中引用某个Shell命令的输入等。本小节将简单介绍如何在Vim编辑器中执行Shell命令。
(1)在Vim编辑器中执行单独的Shell命令时,需要在命令之前加上&:!&。例如在Vim命令模式中执行Shell命令&:!ls -l&,Vim编辑器将会显示命令的输出,如图11.27所示。
图11.27& 在Vim编辑器中执行Shell命令
从图11.27中可以看出,Vim将会显示命令的输出。如果用户需要返回编辑文件,可以按下Enter键。
(2)有时可能需要在编辑器编辑的文件中引用Shell命令的输出,这时可以配合命令&:r&。例如读取ls-l命令的输出到当前编辑的文件中,可以使用&:r !ls -l&。这时Vim编辑器会读取命令的输出,并将其插入到当前编辑的文件中。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:487932次
积分:5248
积分:5248
排名:第4575名
原创:138篇
转载:218篇
评论:64条
(6)(3)(2)(8)(7)(1)(2)(20)(5)(17)(1)(18)(21)(12)(7)(2)(21)(16)(12)(7)(8)(6)(10)(13)(13)(1)(9)(25)(26)(19)(5)(21)(1)(2)(1)(3)(2)(4)(1)(3)正文 vim中执行shell命令的方法介绍
vim中执行shell命令的方法介绍
发布时间: & 编辑:
如何在vim中执行shell命令呢,以使工作更轻松,本文为大家介绍了几种方法,有需要的朋友,可以参考下。

我要回帖

更多关于 vim 执行shell 的文章

 

随机推荐