shell之vi分屏

xiaoxiao2021-02-28  40

最简单的打开新窗口命令是如下(vim已打开一个窗口的情况下):         :split 这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中:     这两个窗口允许你同时显示一个文件的两个部分。例如,你可以让上面的窗口显示 变量定义而下面的窗口显示使用这些变量的代码。 CTRL-W w 命令可以用于在窗口间跳转。如果你在上面的窗口,它会跳转到下面的窗口, 如果你在下面的窗口,它会跳转到上面的窗口。(CTRL-W CTRL-W 可以完成相同的功能 这是为了避免你有时按第二次的时候从 CTRL 键上缩手晚了。) 关 闭 窗 口 以下命令用于关闭窗口:         :close 实际上,任何退出编辑的命令都可以关闭窗口,象 ":quit" 和 "ZZ" 等。但 "close" 可以避免你在剩下一个窗口的时候不小心退出 Vim 了。 关 闭 所 有 其 它 窗 口 如果你已经打开了一整套窗口,但现在只想编辑其中一个,如下命令可以完成这个功能:         :only 这个命令关闭除当前窗口外的所有窗口。如果要关闭的窗口中有一个没有存盘,Vim 会 显示一个错误信息,并且那个窗口不会被关闭。 用另一个文件分割窗口 下面命令打开另一个窗口并用该窗口编辑另一个指定的文件:         :split two.c 要打开窗口编辑一个新文件,可以使用如下命令:         :new 你可以重复使用 ":split" 和 ":new" 命令建立任意多的窗口。 窗口大小 :split 命令可以接受个数前缀。如果指定了这个前缀,这个数将作为窗口的高度。例如 如下命令可以打开一个三行的窗口并编辑文件 alpha.c:         :3split alpha.c 对于已经打开的窗口,你可以用有几种方法改变它的大小。如果你有鼠标,很简单:把 鼠标指针移到分割两个窗口的状态栏上,上下拖动即可。 要扩大窗口:         CTRL-W + 要缩小窗口:         CTRL-W - 这两个命令接受个数前缀用于指定扩大和缩小的行数。所以 "4 CTRL-W +" 会使窗口增 高4行。 要把一个窗口设置为指定的高度,可以用这个命令:         {height}CTRL-W _ 就是先输入一个数值,然后输入 CTRL-W 和一个下划线(在美式英语键盘中就是 Shift 加上 "-")。     要把一个窗口扩展到尽可能大,可以使用无个数前缀的 CTRL-W _ 命令。 使 用 鼠 标 在 Vim 中,你可以用键盘很快完成很多工作。但很不幸,改变窗口大小要敲不少键。在 这种情况下,使用鼠标会更快一些。把鼠标指针移到状态条上,按住左键并拖动。状态 条会随之移动,这会使一个窗口更大一个更小。 选 项 'winheight' 选项设置最小的期望窗口高度而 'winminheight' 选项设置最小的 "硬性" 高度。     同样,'winwidth' 设置最小期望宽度而 'winminwidth' 设置为最小硬性宽度。     'equalalways' 选项使所有的窗口在关闭或者打开新窗口的时候总保持相同大小。 垂直分割 ":split"命令在当前窗口的上面建立窗口。要在窗口左边打开新窗口,用这个命令:         :vsplit 或者         :vsplit two.c 中间的竖线左右分割一个窗口。 还有一个 "vnew" 命令,用于打开一个垂直分割的新窗口。还有一种方法是:         :vertical new "vertical" 命令可以放在任何分割窗口的命令的前面。这会在分割窗口的时候用垂直 分割取代水平分割。(如果命令不分割窗口,这个前缀不起作用)。 在 窗 口 间 跳 转 由于你可以用垂直分割和水平分割命令打开任意多的窗口,你就能够任意设置窗口的布局。 接着,你可以用下面的命令在窗口之间跳转:         CTRL-W h        跳转到左边的窗口         CTRL-W j        跳转到下面的窗口         CTRL-W k        跳转到上面的窗口         CTRL-W l        跳转到右边的窗口         CTRL-W t        跳转到最顶上的窗口         CTRL-W b        跳转到最底下的窗口 你可能已经注意到这里使用移动光标一样的命令用于跳转窗口。如果你喜欢,改用方向 键也行。     还有其它命令可以跳转到别的窗口,参见:|Q_wi|。 移动窗口 你已经分割了一些窗口,但现在的位置不正确。这时,你需要一个命令用于移动窗口。 例如,你已经打开了三个窗口,象这样:         +----------------------------------+         |/* file two.c */                  |         |~                                 |         |~                                 |         |two.c=============================|         |/* file three.c */                |         |~                                 |         |~                                 |         |three.c===========================|         |/* file one.c */                  |         |~                                 |         |one.c=============================|         |                                  |         +----------------------------------+ 显然,最后一个窗口应该在最上面。移动到那个窗口 (用 CTRL-W w)并输入如下命令:         CTRL-W K 这里使用大写的 K。这样窗口将被移到最上面。你可以注意到,这里有用 K 表示向上 移动了。     如果你用的是垂直分割,CTRL-W K 会使当前窗口移动到上面并扩展到整屏的宽度。 还有三个相似的命令(估计你已经猜出来了):         CTRL-W H        把当前窗口移到最左边         CTRL-W J        把当前窗口移到最下边         CTRL-W L        把当前窗口移到最右边 对所有窗口执行命令 你打开了几个窗口,现在你想退出 Vim,你可以分别关闭每一个窗口。更快的方法是:         :qall 这表示 "quit all"(全部退出)。如果任何一个窗口没有存盘,Vim 都不会退出。同时 光标会自动跳到那个窗口,你可以用 ":write" 命令保存该文件或者 ":quit!" 放弃修改。 如果你知道有窗口被改了,而你想全部保存,则执行如下命令:         :wall 这表示 "write all"(全部保存)。但实际上,它只会保存修改过的文件。Vim 知道保 存一个没有修改过的文件是没有意义的。     另外,还有 ":qall" 和 "wall" 的组合命令:         :wqall 这会保存所有修改过的文件并退出 Vim 。    最后,下面的命令由于退出 Vim 并放弃所有修改:         :qall! 注意,这个命令是不能撤消的。 为 所 有 的 参 数 打 开 窗 口 要让 Vim 为每个文件打开一个窗口,可以使用 "-o" 参数:         vim -o one.txt two.txt three.txt "-o" 参数用于垂直分割窗口。     如果 Vim 已经启动了,可以使用 ":all" 命令为参数列表中的每个文件打开一个窗 口。":vertical all" 以垂直分割的方法打开窗口。 用 vimdiff 显示区别 有一种特殊的启动 Vim 的方法可以用来显示两个文件的区别。让我们打开一个 "main.c" 并插入一些字符。在设置了 'backup' 选项的情况下保存这个文件,以便产生 "main.c~" 备份文件。     在命令行中输入如下命令:(不是在Vim中)         vimdiff main.c~ main.c Vim 会用垂直分割的方式打开两个文件。你只能看到你修改过的地方和上下几行的地方。     那些没有修改的行会被折叠成一行,这称为 "关闭的折叠"(closed fold)。上图 中由 "<- 折起" 标记的行就是一个用一行表示123行的折叠。这些行在两个文件中完全 相同。     标记为 "<- 修改过的行" 被高亮显示,而增加的行被用另一种颜色表示。这可以 很清楚地表示出两个文件间的不同。     被删除的行在 main.c 窗口中用 "---" 显示,如图中用 "<- 删除的行" 标记的行。 这些字符并不是真的存在。它们只是用于填充 main.c,以便与另一个窗口对齐。 折 叠 栏 每个窗口在左边都有一个颜色略有不同的显示栏,图中标识为 "VV"。你会发现每个折叠 在那个位置都有一个加号。把鼠标移到那里并按左键可以打开那个折起,从而让你看到 里面的内容。     对于打开的折叠,折叠栏上会出现一个减号。如果你单击那个减号,折叠会被重新关 闭。     当然,这只能在你有鼠标的情况下使用。如果你没有,可以用 "zo" 打开一个折叠。 关闭使用 "zc"。 用 Vim 做 比 较 启动比较模式的另一种方法是从 Vim 内部开始:编辑 "main.c" 文件,然后分割窗口 显示区别:         :edit main.c         :vertical diffsplit main.c ":vertical" 命令使窗口用垂直的方式分割。如果你不写这个命令,结果会变成水平分 割。 如果你有一个当前文件的补丁或者 diff 文件,你可以有第三种方法启动比较模式: 先编辑这个文件,然后告诉 Vim 补丁文件的名称:         :edit main.c         :vertical diffpatch main.c diff 警告:补丁文件中必须仅包括为一个目标文件所做的补丁,否则你可能会得到一大堆错 误信息。还可能有些你没打算打补丁的文件被打了补丁。     补丁功能只改变你内存中的文件,不会修改你硬盘上的文件(除非你决定写入改动)。 滚 屏 绑 定 当文件中有很多改动时,你可以用通常的方式滚动屏幕。Vim 会尽可能保持两个文件对 齐,以便你可以并排看到文件的区别。     如果暂时想关闭这个特性,使用如下命令:         :set noscrollbind 跳 转 到 修 改 的 地 方 如果你通过某种方法取消了折叠功能,可能很难找到有改动的地方。使用如下命令可以跳 转到下一个修改点:        ]c 反向跳转为:         [c 加上一个个数前缀可以跳得更远。 消 除 差 异 你可以把文本从一个窗口移到另一个,并以此来消除差异,或者为其中一个文件中增加 几行。Vim 有时可能无法及时更新高亮显示。要修正这种问题,使用如下命令:         :diffupdate 要消除差异,你可以把一个高亮显示的块从一个窗口移动到另一个窗口。以上面的 "main.c" 和 "main.c~" 为例,把光标移到左边的窗口,在另一个窗口中被删除的行 的位置,执行如下命令:         :dp 这将把文字从左边拷到右边,从而消除两边的差异。"dp" 代表 "diff put"。     你也可以反过来做:把光标移到右边的窗口,移到被 "改动" 了的行上,然后执行 如下命令:         :do 这把文本从左边拷到右边,从而消除差异。由于两个文件已经没有区别了,Vim 会把所有 文字全部折叠起来。"do" 代表 "diff obtain"。
转载请注明原文地址: https://www.6miu.com/read-2624180.html

最新回复(0)