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 与 vi 编辑器的介绍 vi 是 Unix 及 Linux 系统标准的文本编辑器,具有强大的文本处理能力,它以命令行的方式操作,适合在字符界面下对文件进行编辑。Vim 是 vi 的增强版,即 Vi IMproved(增强的 vi),它在 vi 的基础上增加了很多新的功能,如语法高亮、可视化区块、多文件编辑、多窗口功能、关键词补全功能等,并且支持更多的配置选项,能更好地满足不同用户的需求。在 Linux 系统中,当输入 `vi` 命令时,实际上调用的可能是 Vim 编辑器,因为很多 Linux 发行版默认将 `vi` 链接到 `vim` [^1]。 ### Vim 与 vi 编辑器的使用方法 #### vi 的使用 - **命令模式**:启动 vi 编辑器后,默认进入命令模式。在该模式下,可以使用各种命令对文本进行操作,如光标移动、复制粘贴、查找替换等。常用命令如下 [^2]: - **光标移动**:使用 `h`(左)、`j`(下)、`k`(上)、`l`(右)键移动光标。 - **复制粘贴**:`yy` 复制光标所在整行,`5yy` 复制从光标处开始的 5 行;`p` 将之前删除(`dd`)或复制(`yy`)过的数据粘贴到光标后面。 - **查找替换**:`/字符串` 在文本中从上至下搜索该字符串,`?字符串` 在文本中从下至上搜索该字符串;`n` 显示搜索命令定位到的下一个字符串,`N` 显示搜索命令定位到的上一个字符串;`:s/one/two` 将当前光标所在行的第一个 `one` 替换成 `two`,`:s/one/two/g` 将当前光标所在行的所有 `one` 替换成 `two`,`:%s/one/two/g` 将全文中的所有 `one` 替换成 `two`。 - **删除操作**:`dd` 删除(剪切)光标所在整行,`5dd` 删除(剪切)从光标处开始的 5 行。 - **撤销操作**:`u` 撤销上一步的操作。 - **输入模式**:从命令模式切换到输入模式,可以按以下键 [^1]: - `i`:在当前光标前插入文本。 - `a`:在当前光标后插入文本。 - `o`:在当前行的下一行插入新行并进入输入模式。 - **底线命令模式**:从命令模式切换到底线命令模式,按 `:` 键,在该模式下可以执行保存、退出等命令 [^2] [^3]: - `:w` 保存文件。 - `:w filename` 另存为 `filename`。 - `:q` 退出编辑器。 - `:q!` 强制退出(放弃对文档的修改内容)。 - `:wq!` 强制保存退出。 - `:wq! filename` 以 `filename` 为文件名保存后退出。 - `:x` 保存并退出,功能 `:wq!` 相同。 - `:set nu` 显示行号,`:set nonu` 不显示行号。 - `:整数` 跳转到该行。 #### Vim 的使用 Vim 继承了 vi 的基本操作,同时还具有一些额外功能 [^1]: - **缓存、恢复与打开时的警告信息**:Vim 在编辑文件时会创建缓存文件,当意外中断编辑时,再次打开文件可能会出现警告信息,可根据提示进行恢复操作。 - **可视化区块**:可以通过 `v`(字符可视化)、`V`(行可视化)、`Ctrl + v`(块可视化)进入可视化模式,对选定的文本块进行操作。 - **多文件编辑**:可以使用 `vim file1 file2` 同时打开多个文件,使用 `:bn`(下一个文件)、`:bp`(上一个文件)在不同文件间切换。 - **多窗口功能**:使用 `:split` 或 `:vsplit` 分别创建水平垂直分割窗口,在不同窗口中编辑不同的文件或同一文件的不同部分。 - **关键词补全功能**:在输入代码时,按下 `Ctrl + n` 或 `Ctrl + p` 可以进行关键词补全。 此外,Vim 可以通过修改 `~/.vimrc` 文件进行环境设置,`~/.viminfo` 文件会记录用户的操作历史 [^1]。 ```bash # 示例:打开一个文件进行编辑 vim test.txt # 进入输入模式插入文本 i # 输入一些内容后按 Esc 回到命令模式 # 保存并退出 :wq ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值